![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bO9LeW/btsrqB1E63p/JaKe5h4MYA8OgGKeVuWa8K/img.png)
애노테이션 프로세서 일반적으로 애노테이션에 대한 코드를 검사, 수정 또는 생성하는데 사용된다. 본질적으로 애노테이션 프로세서는 java 컴파일러의 플러그인의 일종이다. 애노테이션 프로세서를 적재적소에 잘 사용한다면 개발자의 코드를 단순화할 수 있다. 애노테이션 프로세스의 대표적인 예로 Lombok이 있다. Lombok은 @Getter, @Setter, @Builder 등의 애노테이션과 애노테이션 프로세서를 제공하여 표준적으로 작성해야할 코드를 개발자 대신 생성해주는 라이브러리이다. Lombok(롬복)은 어떻게 동작하는 걸까? @Getter @EqualsAndHashCode @RequiredArgsConstructor public class Member { private final String name; ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/diHXnS/btsq1EwB1Pe/nQUKCYwsVgjgvNXVaGvuY0/img.png)
Reflection JVM은 클래스 정보를 클래스 로더를 통해 읽어와서 해당 정보를 JVM 메모리에 저장한다. 그렇게 저장된 클래스에 대한 정보가 마치 거울에 투영된 모습과 닮아있어, 리플렉션이라는 이름을 가지게 되었다. 리플렉션을 사용하면 생성자, 메서드, 필드 등 클래스에 대한 정보를 아주 자세히 알아낼 수 있다. 리플렉션을 사용한 애노테이션은 여러 라이브러리, 프레임워크에서 많이 사용된다. 스프링에서는 의존성 주입, MVC 뷰에서 넘어온 데이터를 객체에 바인할 때, 하이버네이트에서는 @Entity 클래스에 Setter가 없다면 리플렉션을 사용한다. 그리고 클래스 로더에 대한 개념에 대해 어느정도 이해할 필요가 있어 아래 블로그 글을 정리하였다. JVM 메모리 구조 JVM 성능에 관심이 있다면 기본적..
- Total
- Today
- Yesterday
- spring webflux
- sql
- Java
- pessimistic lock
- TDD
- 비관적 락
- mysql
- 구름톤챌린지
- NeXTSTEP
- annotation
- socket
- 넥스트스탭
- transaction
- 람다
- Kafka
- 구름톤 챌린지
- mdcfilter
- 스프링 네티
- spring session
- redis session
- 네티 스레딩 모델
- nginx configuration
- nginx
- 카프카
- 분산 락
- Synchronized
- postgresql
- 트랜잭션
- 자바 네티
- jvm 메모리 구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |