목록 보기
뱅크샐러드 안드로이드 앱에서 Koin 걷어내고 Hilt로 마이그레이션하기
프론트엔드

뱅크샐러드 안드로이드 앱에서 Koin 걷어내고 Hilt로 마이그레이션하기

뱅크샐러드
뱅크샐러드
2022년 4월 9일

두줄요약

Koin의 런타임 DI 문제와 크래시를 해결하기 위해 Android 앱을 Hilt로 마이그레이션했습니다. PoC와 가이드라인으로 의존성 그래프를 정비하고 공존·동적 주입 제약을 점검했습니다.

문제 상황

  • Koin의 koin.get() 기반 런타임 주입으로 멀티모듈 의존성 경로와 인스턴스 생성 시점 추적의 어려움
  • 코드 클린업 뒤 누락된 Koin 컴포넌트로 발생한 DI 크래시와 수백 개 화면에 따른 수동 QA 한계

선택 이유

  • 컴파일 타임 의존성 검증과 명확한 Dependency Graph 확보 필요
  • Dagger의 Android DI 설정을 단순화한 Hilt의 어노테이션 기반 구성 채택
  • KAPT 기반 빌드 시간 증가보다 런타임 안정성과 테스트 개선 효과를 우선시한 판단

해결 방법

  • PoC, 1-Pager, 가이드라인, 모듈별 작업 티켓을 기반으로 Koin에서 Hilt로 단계적 전환
  • @HiltAndroidApp, @AndroidEntryPoint, @HiltViewModel, @Module, @Provides, @Binds 기반 DI 구성
  • 모듈·주입 대상별 명명 규칙과 di 패키지 기준 수립, 109개 PR과 의존성 그래프 정비

주의할 점

  • Koin과 Hilt 공존 시 중복 인스턴스와 부작용 가능성
  • Fragment Context와 Activity Context 차이, 생성자 기본값 미지원, 동적 파라미터 주입 제약
  • 동적 주입 코드와 기존 테스트 수준을 고려한 Hilt 도입 여부 판단 필요

다음 읽기

#Android 주제를 다룬 다른 회사 글

도도카트 안드로이드 앱 개선 여정

복잡해진 안드로이드 앱을 모듈화하고 Kotlin DSL, Hilt, Coroutine·Flow 기반으로 정비했습니다. GraphQL 모델 분리와 테스트 확대를 후속 과제로 남겼습니다.

spoqa
spoqa
프론트엔드
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...