[Java] 롬복의 원리
1. Lombok(롬복)이란?
- 컴파일 시점에 바이트코드를 조작하여 원하는 코드를 주입해주는 라이브러리
스프링 필수 템- 공개된 API가 아닌 Compiler 내부 class를 사용하여 코드를 수정한다는 문제점이 있음
- 어노테이션 형식으로 동작
- ex)
@Getter
,@Setter
,@RequiredArgsConstructor
- ex)
2. 동작 과정
- 자바 컴파일러(javac)가 소스파일을 파싱하여 AST 트리를 만듦
- 롬복은 AnnotationrProcessor에 따라서 AST 트리를 동적으로 수정하고 새 소스코드와 바이트 코드를 분석 및 생성
- 자바 컴파일러는 수정된 AST를 기반으로 바이트 코드를 생성
3. Annotation Processor
- 자바 컴파일러 플러그인의 일종
- 어노테이션에 대한 코드베이스를 검사, 수정, 생성
- Annotation을 처리하기 위한 것
4. AST 트리
- Abstract Syntax Tree
- 주로 컴파일러에서 사용되는 자료 구조
- 컴파일러가 구문 분석을 하면 AST트리 형태로 결과가 나온다.
※ 참조
- [Java]Lombok의 동작과정
- Lombok의 동작원리
- [추상 구문 트리
'LANGUAGE > [JAVA]' 카테고리의 다른 글
[Java] JVM - Garbage Collector (2) | 2023.03.12 |
---|---|
[Java] JVM - 메모리 구조 (4) | 2023.02.28 |
[JAVA] JVM (0) | 2022.06.04 |
정규식이란? (0) | 2022.04.05 |
Chapter11 컬렉션 프레임웍 Collections Framework (0) | 2021.08.28 |