본문 바로가기
728x90

코드생성2

[신입 개발자의 세 번째 라이브러리]실제 프로젝트 적용과 회고 : persistence-code-generator 개발기(fin) 들어가며이번 글은 어느덧 persistence-code-generator 개발기의 마지막 편입니다.지금까지 라이브러리의 설계와 구현을 살펴보았는데요.이번 편에서는 실제 프로젝트 적용을 통해 달성한 정량적인 생산성 향상과 그 과정에서 느낀 것들을 공유하고자 합니다.생산성 향상 효과보일러 플레이트 코드 감소(feat. 정량적 분석)persistence-code-generator의 가장 큰 성과는 영속성 계층의 보일러플레이트 코드를 94% 감소시킨 것입니다.실제 수치로 살펴보겠습니다:도메인 엔티티 1개당 (칼럼 다섯개의 가벼운 엔티티 예시):어노테이션 포함 개발자가 작성하는 코드: 20줄 (전체의 6.25%)자동 생성되는 코드: 300줄 (전체의 93.75%)전체 필요한 코드: 320줄예시를 통해 살펴보겠습니.. 2024. 12. 14.
[신입 개발자의 세 번째 라이브러리] 컴파일 타임에 클래스의 FQCN 알아내기 - persistence-code-generator 개발기(4) 들어가며이전 편에서는 ValuedEnum 처리와 타입 안전성 확보에 대해 다뤘습니다.이번 편에서는 @WithConverter 구현 과정에서 마주친 문제와 그 해결 방법을 공유하고자 합니다.@WithConverter(converter: Kclass)를 통해 받은 클래스 리터럴을 통해 메타데이터에 접근할 수 없는 문제@WithConverter는 다음과 같이 구현된 간단한 어노테이션입니다:@Target(AnnotationTarget.PROPERTY)@Retention(AnnotationRetention.RUNTIME)annotation class WithConverter( val converter: KClass>)하지만 이 간단한 어노테이션의 구현 과정에서 한 가지 어려운 점에 직면했습니다.컴파일 타임 .. 2024. 12. 7.
728x90