728x90
반응형
DI... DI ..DI..DI..DI
하다보면 Android 개발자라면 Dagger2, Koin, Hilt라는 것을 들어봤을 ( 봤을 ) 것이다.
그럼 뭘써야할까... ㅠㅠ 일딴 차이를 비교해보고 특성을 알아보려고 한다.
1. Dagger2
- java, Kotlin
- Dagger2 적용을 위해 환경을 세팅해야하는 과정과 원활한 적용에 필요한 러닝커브가 크다.
- 컴파일 시 애노테이션을 읽고 scope에 맞는 DI container와 주입할 class파일을 generate하여 의존성을 주입한다.
- 컴파일 시간 증가 , 문제가 있을 경우 Compile 시점에서 에러
2. Koin
Kotlin DSL(Domain Specific Language, 도메인 특화 언어)로 만들어졌다.
- Kotlin
- Dagger2에 비해 사용법이 쉽다
- DSL을 활용하여 runtime에 의존성을 주입한다.
- runtime error가 발생할 수 있고 compile시점에서 오류 확인이 어려울 수 있다.
( 단위테스트로 어느정도 보완이 가능하지만, 단위테스트도 결국 사람이 짜는거... )
3. Hilt
Dagger를 기반으로 만들어진 DI Framework로 Dagger2와 비슷한 동작방식을 가지고 있다.
- Hilt를 적용할 때 가장 걱정하는 부분은 안정성 보장과 현재 개발 환경과의 충돌이 될 수 있다.
- 구글 문서도 빠르게 업데이트 중이고, 낮은 러닝커브와 Dagger의 장점을 모아 구글에서 만들어지고 있는 Framework
Dagger2 공부 방법을 잘설명한 링크
728x90
반응형
'Android 공부 > DI ( 의존성 주입 )' 카테고리의 다른 글
Hilt ? (0) | 2022.05.16 |
---|---|
DI ) Dagger2의 5가지 필수 개념 (0) | 2022.04.26 |
DI ) Dagger2 란? (0) | 2022.04.25 |
[Android] DI ?? (0) | 2022.04.18 |