피드로 돌아가기
OpenAPI, ORM, SVG and Lottie
Dev.toDev.to
Infrastructure

Build-time Codegen 기반 Reflection 제거를 통한 네이티브 성능 최적화

OpenAPI, ORM, SVG and Lottie

Shai Almog2026년 6월 8일21advanced

Context

런타임 Reflection과 Service Loader 사용으로 인한 성능 저하 및 난독화 처리 시의 위험성 존재. 모바일 및 데스크톱 멀티플랫폼 환경에서 런타임 오버헤드와 메모리 할당 비용을 줄여야 하는 제약 상황 분석.

Technical Solution

  • Maven-plugin 기반의 Build-time Codegen 파이프라인을 구축하여 런타임 Reflection 전면 제거
  • OpenAPI 3.x Spec 기반의 Typed Client 자동 생성으로 네트워크 계층의 Type Safety 확보
  • ASM 라이브러리를 활용한 Bytecode 분석으로 소스 텍스트 정규식 매칭의 한계를 극복한 정밀한 코드 생성
  • Stub-link 패턴 적용을 통해 컴파일 타임의 심볼 참조 해결과 최종 패키징 시 실제 구현체 교체 구조 설계
  • SVG 및 Lottie 파일을 빌드 단계에서 Transcoding 하여 런타임 연산 비용 최소화
  • Annotation 기반의 SQLite ORM 구현을 통해 PreparedStatement에 직접 값을 매핑하는 Typed DAO 생성

- 런타임 Reflection 비용이 높은 환경에서 Build-time Codegen 도입 검토 - API 명세서(OpenAPI)와 클라이언트 코드 간의 동기화를 위한 자동화 파이프라인 구축 - 소스 코드 분석보다 정확한 Bytecode 레벨의 분석을 통한 정적 최적화 적용 - 컴파일 타임에 타입을 확정하여 IDE의 정적 분석 기능을 통한 런타임 에러 사전 방지

원문 읽기