| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 |
Tags
- spring security
- MST
- 운영체제
- 객체지향
- 최소 신장 트리
- proxy
- 프록시
- BOJ
- 모던자바
- OS
- CS
- Python
- Spring
- Deadlock
- 파이썬
- redis
- 자바
- 모던 자바 인 액션
- test
- 다이나믹 프록시
- 백준
- 스프링
- 약수
- Reflection
- 리플렉션
- Junit5
- java
- 스프링 시큐리티
- 문자열
- 알고리즘
Archives
- Today
- Total
Dev 달팽이 @_''
Java - 애노테이션 프로세서 본문
Java - 어노테이션 프로세서
Lombok(롬복)
- @Getter, @Setter, @Builder 등의 어노테이션과 어노테이션 프로세서를 제공하여 표준적으로 작성해야할 코드를 개발자 대신 생성해주는 라이브러리
- 아래 의존성을 추가해야 함
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
- IntelliJ lombok 플러그인 설치
- IntelliJ Annotation Processing 옵션 활성화
롬복 동작 원리
- 컴파일 시점에서 어노테이션 프로세서를 사용하여 소스코드의 AST(abstract syntax tree)를 조작
롬복의 논란 거리
- 공개된 API가 아닌 컴파일러 내부 클래스를 사용하여 기존 소스 코드를 조작
- 이클립스의 경우엔 java agent를 사용하여 컴파일러 클래스까지 조작하여 사용
- 해당 클래스들 역시 공개된 API가 아니다보니 버전 호환성에 문제가 생길 수 있고 언제라도 그런 문제가 발생하더라도 이상하지 않음
- 그럼에도 불구하고 엄청난 편리함 때문에 널리 쓰이고 있으며 대안이 몇 가지 있지만 롬복의 모든 기능과 편의성을 대체하진 못하는 현실
'Java&Spring > 더 자바, 코드를 조작하는 다양한 방법' 카테고리의 다른 글
| Java - 클래스의 프록시 (0) | 2022.01.09 |
|---|---|
| Java - 다이나믹 프록시 (0) | 2022.01.09 |
| Java - 프록시 패턴 (0) | 2022.01.09 |
| Java - 간단한 DI 프레임워크 만들기 (0) | 2022.01.09 |
| Java - 리플렉션(클래스 정보 수정 또는 실행) (0) | 2022.01.09 |