백엔드
java 코드는 어떻게 자동으로 만들어질까(1/2)
두줄요약
Java annotation processor로 컴파일 단계에서 DTO 코드를 자동 생성하는 원리를 소개했습니다. JavaPoet과 AbstractProcessor 기반 예제로 반복 코드 감소 방식을 설명합니다.
구조와 흐름
- Java 컴파일 단계에서 특정 애너테이션 기반 코드 검사·조작·생성을 지원하는 annotation processor
AbstractProcessor구현체로@Dto가 붙은 클래스를 탐색하고 DTO 소스 생성- 컴파일 시 generated 경로에 생성되고 clean 시 함께 삭제되는 DTO 파일
선택 이유
- Lombok, QueryDSL 등 반복 코드 생성 라이브러리의 기반 기능
- getter·setter·생성자 같은 boilerplate code 감소
- JavaPoet을 통한 클래스·필드·메서드·애너테이션 등 소스 코드 구성
주의할 점
- 실무에서 직접 processor를 제작하기보다 기존 라이브러리 활용이 일반적
- 직접 구현 시 설정·수정 비용이 기능 이점을 넘을 가능성
- Lombok의 바이트코드 수준 조작 방식은 다음 글에서 별도 설명 예정
적용해볼 점
- 자동 코드 생성 라이브러리의 annotation processing 설정과 빌드 구성 확인
- 반복적인 DTO 구조에 대한 코드 생성 도구 탐색


