뱅크샐러드 안드로이드, Koin 버리고 Hilt로 DI 개선!
by DD
4년 전
조회수 11
Koin의 런타임 성능 저하 및 테스트 어려움을 해결하기 위해 Hilt로 전환
Hilt 도입을 위한 구체적인 마이그레이션 계획 수립 및 PoC 진행
2개월간의 노력 끝에 Hilt 마이그레이션 성공, 코드 중복 문제 해결
Koin vs Hilt: DI 프레임워크 비교 분석
Koin은 런타임에 의존성을 주입하는 반면, Hilt는 컴파일 타임에 주입을 검증한다. 따라서 Hilt는 빌드 시간 증가라는 단점이 있지만, 런타임 성능 저하 문제를 해결한다. 구체적으로 Hilt는 Dagger를 기반으로 하여, Annotation Processing을 통해 코드 생성을 자동화한다.
Hilt 마이그레이션 과정에서의 문제점 및 해결
마이그레이션 과정에서 중복 인스턴스 생성 문제와 Fragment Context 관련 크래시가 발생했다. @Provides 어노테이션을 활용하여 중복 문제를 해결하고, FragmentContextWrapper를 통해 Activity Context를 정확하게 가져오는 방식으로 문제를 해결했다. 따라서 Hilt 사용 시, Context 관리에 주의해야 한다.
Hilt 도입 시 고려사항 및 뱅크샐러드 교훈
Hilt 도입 전, 서비스 규모와 동적 주입 여부를 신중히 고려해야 한다. 동적 주입이 많다면 Hilt 사용을 재고해야 하며, 멀티 모듈 환경에서는 의존성 그래프를 명확히 설정해야 한다. 따라서 테스트 코드가 잘 갖춰져 있다면, Hilt가 필수적인 선택은 아니다.
댓글 0
첫 번째 댓글을 남겨보세요!