🛠 AnnotationProcessor

정의

AnnotationProcessorJava 컴파일 시점에 애너테이션을 분석하고 추가 코드를 생성하거나 검증하는 처리기이다. 소스 코드가 컴파일될 때 동작하는 컴파일 타임 Hook으로 볼 수 있다.

🧩 역할

  • 애너테이션을 분석한다
  • 컴파일 시점에 코드 생성을 수행한다
  • 유효성 검사를 한다
  • Lombok, Querydsl 같은 도구의 기반이 된다

🛠 사용 예시

코드 생성

  • Querydsl의 Q타입 생성
  • Lombok의 getter/setter 생성

검증

  • 애너테이션 사용 규칙 확인
  • 필수 속성 누락 여부 검사

🧩 특징

  • 소스코드가 실행되기 전에 동작한다
  • IDE가 아니라 컴파일러 단계에서 처리된다
  • 코드 반복을 줄이고 보일러플레이트를 감소시킨다
  • 잘못 설정되면 생성 코드가 나오지 않을 수 있다

⚠️ 주의사항

  • 컴파일 설정에 따라 동작 여부가 달라질 수 있다.
  • IDE에서 인식하지 못하면 Annotation Processing 설정을 확인해야 한다.
  • Querydsl처럼 생성 코드가 필요한 경우 빌드 단계와 소스 생성 경로를 맞춰야 한다.
  • 애너테이션이 많다고 모두 처리되는 것은 아니므로 각 프로세서 역할을 구분해야 한다.

📌 정리

  • AnnotationProcessor는 컴파일 시점에 애너테이션을 처리하는 도구다.
  • 코드 생성과 규칙 검증에 사용된다.
  • Lombok, Querydsl 같은 라이브러리의 핵심 기반이다.

연결문서

댓글남기기