이 글에서는 자동 코드 생성을 위해 사용해 본 JavaPoet
라이브러리 활용 경험을 공유한다. 이 라이브러리를 사용하여 공통 모델 클래스를 특정 도메인에서 복제하고 자동화 한 과정을 설명한다. 자바 포엣 라이브러리의 기본적인 소개와 간단한 사용 방법에 대해서도 다룬다.
사내에서 개발 프로세스 개선을 위한 자동화 툴을 개발하면서 두가지 추가 요구사항이 발생했다. 첫째, 기존에 A 도메인에서 사용되던 프로세스 검증 자동화 Tool이 B 도메인에서도 활용될 수 있도록 확장해야 할 것. 문제는 공통 모델에 커스터마이징이 필요했다는 점이다. 이 확장 작업은 기존 도메인에서 사용되던 로그와 새로운 도메인에서 사용되는 로그 간의 호환성을 유지하면서 진행되어야 했다.
둘째, B 도메인에서 사용되는 페이로드가 A 도메인에 비해 약 8-10배 많았고, 로그량 또한 훨씬 많은 상황에서 효율적으로 개선을 해야한다는 것이다. 많은 차이로 수작업의 부담과 변경에 따른 유지보수성을 고려해 페이로드 작성은 자동화로서 구현되어야 했다.
이 두 가지 요구사항을 충족시키기 위해 공통 모듈에서 사용되는 클래스를 프로젝트에 맞도록 커스텀화하고 복사하는 일련의 과정을 자동화하는 솔루션을 생각해보았다.
JavaPoet
은 Java 코드를 프로그래밍 방식으로 생성하는 라이브러리이다. 주로 코드 생성 라이브러리로 사용되며, 어노테이션 처리, 소스 코드 생성 및 컴파일 등에 활용된다.
JavaPoet
은 클래스, 메서드, 필드 등의 구조를 정의하는 데 사용되는 Spec
객체를 제공한다. 이 객체들을 사용하여 원하는 코드 구조를 생성할 수 있다.