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

간단 소개
뱅크샐러드 안드로이드 앱의 Koin에서 Hilt로의 DI 마이그레이션 과정, 문제 해결, 그리고 얻은 교훈을 담고 있습니다.
AI Summary
- Koin에서 Hilt로의 전환 배경
- 뱅크샐러드 안드로이드 앱은 클린 아키텍처 기반으로, Koin을 DI 도구로 사용했으나, 모듈 간 의존성 관리의 어려움과 런타임 성능 저하 문제가 발생했습니다.
koin.get()남용으로 의존성 파악이 어려워지고, QA에서 잡히지 않는 크래시가 빈번하게 발생했습니다.
- Hilt 도입 과정 및 장점
- Hilt는 Dagger를 Wrapping하여 사용성을 개선한 Android용 DI 라이브러리로, 컴파일 타임 검증, 보일러플레이트 감소, 쉬운 설정 등의 장점을 제공합니다.
- PoC를 통해 Hilt 적용 가능성을 확인하고, 마이그레이션 가이드라인을 작성하여 팀원들과 함께 모듈별로 Hilt로 전환했습니다.
- 마이그레이션 중 발생한 문제 및 해결
- Koin 인스턴스의 다중 사용으로 인한 추적 어려움, Fragment Context 문제, Hilt의 동적 파라미터 주입 제한 등의 문제 발생했습니다.
@Provides어노테이션 활용, ContextWrapper 사용, lateInit 필드 사용 등의 방법으로 해결했습니다.- 2개월간의 노력 끝에 Koin 의존성을 제거하고 Hilt로 성공적으로 마이그레이션했습니다.
Next Feeds

TypeScript 쓰면서 OpenAPI Generator 는 안 쓴다고?
TypeScript 환경에서 OpenAPI Generator를 사용하여 RESTful API의 타입 정의를 자동화하고, 개발 효율성을 향상시키는 방법을 소개합니다.
TypeScriptOpenAPI GeneratorSwaggerRESTful APIGraphQL
2022. 4. 7.
매드업

선형 모델과 회귀분석의 직관적 이해 (1)
선형 모델의 정의, 장점, 그리고 회귀분석을 통한 데이터 예측의 당위성을 설명합니다.
선형 모델회귀분석선형변환조건부 기댓값분산
2022. 4. 5.
매드업

asyncio 뽀개기 2 - Future의 활용
asyncio Future를 활용하여 비동기 프로그래밍에서 흐름을 제어하고, 콜백 등록 및 Future 발행을 통해 효율적인 코드 작성 방법을 제시합니다.
asyncioFuture비동기 프로그래밍콜백Semaphore
2022. 4. 4.
버즈빌

Redshift DW에서 PG DM을 만드는 여정
Redshift DW의 성능 문제 해결을 위해 PostgreSQL DM을 구축하고, DBLINK, 프로시저 자동 생성, Vacuum 설정 등을 통해 효율적인 데이터 관리 시스템을 구축한 여정.
RedshiftPostgreSQLData MartDBLINKVacuum
2022. 4. 1.
매드업
고객의 불편함이 제품으로 되기까지 - Airbridge API 팀의 개발 프로세스
Airbridge API 팀의 고객 중심 개발 프로세스를 소개하고, 각 단계별 개발자의 역할과 자동화 시스템을 통한 효율성 향상을 설명합니다.
Airbridge개발 프로세스API테스트 자동화코드 리뷰
2022. 3. 30.
AB180

asyncio 뽀개기 1 - Coroutine과 Eventloop
asyncio의 Eventloop과 코루틴 개념 설명 및 이를 활용한 동시성 구현 방법을 제시하고, Future 객체의 역할 강조.
asyncioEventloop코루틴Future동시성
2022. 3. 30.
버즈빌