목록 보기
java 코드는 어떻게 자동으로 만들어질까(1/2)
백엔드

java 코드는 어떻게 자동으로 만들어질까(1/2)

야놀자클라우드
야놀자클라우드
2022년 3월 10일

두줄요약

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 구조에 대한 코드 생성 도구 탐색

다음 읽기

#Java 주제를 이어서 읽기

java 코드는 어떻게 자동으로 만들어질까(2/2)

Lombok이 AST를 수정해 getter를 class 파일에 반영하는 과정을 설명했습니다. ASM 기반 바이트코드 조작과 Spring AOP·JaCoCo 활용 사례를 소개합니다.

야놀자클라우드
야놀자클라우드
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...