

Dagger
Java 진영에서 Guice가 있었지만, 단점이 많아서 Dagger1('대걸, 대거' 라 부른다.)이 2012년 Square사에 의해 등장한다.
Dagger1는 Annotation을 기반으로 코드를 생성하고, API를 갖지만 Guice보다는 빨랐다.
이후, Dagger 최조 개발자와 구글의 코어 라이브러리 팀이 Dagger2를 만들고 현재까지 발전시키고 있다.
Dagger는 어렵다. 중도포기자가 많다.
- Annotation 기반의 코드 생성방식이 익숙하지 않다.
- 다른 DI(의존성주입) 라이브러리보다 공부양이 많다.
- Dagger에서만 사용하는 용어로 혼란을 준다.
But, Dagger는 장점이 더 많기에 사용한다.
- 자원 공유 단순화되어 있고, 지정 범위내에 생명주기에서는 동일 인스턴스를 제공한다.
- 복잡한 의존성을 단순하게 해준다. ( 이부분에서 앱이 커질 수록 Dagger로 통제하기 유용하다. )
- 유닛 테스트를 할 수 있게 도와준다.
- 자동 코드 생성, 생성된 코드는 명확하고 디버깅이 가능하다.
- 코드 난독화 문제가 없다. ( Dagger1에서는 있었음. )
- 라이브러리가 작다. ( 상대적으로 )
사용방법
Gradle 을 선언해준다.
// 코트린
dependencies{
자료참고 주석
블로그 : m.blog.naver.com/dragond7/221032606344
Dagger2 User's Guide (한글 번역)
의역 및 편의로 줄인 부분이 있으니 원본을 참고하시면서 봐주세요. 미진한 번역의 경우 지적해주시면 반영...
blog.naver.com
대거 공식 페이지 : dagger.dev/dev-guide/android
Dagger & Android
One of the primary advantages of Dagger 2 over most other dependency injection frameworks is that its strictly generated implementation (no reflection) means that it can be used in Android applications. However, there are still some considerations to be ma
dagger.dev
728x90
반응형
'Programming > Android' 카테고리의 다른 글
| [Ad] 광고 도구 (0) | 2020.12.25 |
|---|---|
| 🥋 2. JetPack & Flutter Widget (0) | 2020.10.27 |
| Shortcut 단축키 모음 (0) | 2020.06.12 |