핵심 요약
타다의 안드로이드 클라이언트에서 Reflection으로 Cursor를 POJO로 변환하던 성능 저하를 Dexmaker와 APT 코드생성으로 해결하고, 컴파일타임 코드 생성을 통해 유지보수성과 실행 효율을 크게 개선했습니다.
구현 방법
- Dexmaker를 이용한 바이트코드 생성으로 Reflection의 런타임 비용 감소
- Annotation Processor(APT) 기반 Accessor 생성으로 런타임 Reflection 제거 및 코드 인라이닝 촉진
- Velocity 템플릿으로 자동 생성 코드 관리, Binding 라이브러리로 JSON/Cursor/ContentValues 간 데이터 바인딩 추상화
주요 결과
- 50회 수행 비교에서 APT 기반 접근이 모든 환경에서 최적의 성능으로 확인
- 초기 실행 시 추가 코드 생성 없이 APK에 포함되어 시작 속도 개선
- 컴파일 타임 반영으로 모델 변화에 신속한 대응 가능
