반응형
# Dependency(의존성)
- 코드에서 두 모듈간의 연결
- 객체지향 언어에서는 두 클래스 간의 관계라고도 말함.
- 일반적으로 둘 중 하나가 다른 하나를 어떤 용도를 위해 사용함
# Dependency가 위험한 이유
- 하나의 모듈이 바뀌면 의존한 다른 모듈까지 변경이 이루어지기 때문
- 테스트 가능한 어플을 만들 때 의존성이 있으면 유닛테스트 작성이 어려움
# DI란?
Dependency Injection의 약자로 의존성 주입을 의미합니다.
특정 객체의 인스턴스가 필요한 경우 이를 외부에서 생성하여 전달하는 기법.
# Dependency Injection(의존성 주입)이 필요한 이유
- 위 Dependency가 위험한 이유를 해결하기 위해서 사용
# 클래스 외부에서 종속성을 제공하면 생기는 이점
- 유닛 테스트가 쉬워진다.
- 코드의 재활용성이 높아진다.
- 객체간의 의존성을 없애 유연한 코드를 작성할 수 있다.
- 보일러플레이트 코드를 줄일 수 있다.
- 스코프를 이용해 객체를 효율적으로 관리할 수 있다.
# 의존성 주입을 도와주는 라이브러리
- Dagger2
안드로이드 앱 뿐만 아니라 자바 앱에서도 동작되도록 디자인 되어 있음
build타임에 DI 관련 class파일을 generate함 - Hilt
Dagger를 기반으로 Dagger의 종속성 주입을 안드로이드 어플리케이션에 통합하는 표준 방법을 제공 (ex. SingletonComponent, ActivityComponent … 표준화된 방법을 제공)
build타임에 DI 관련 class파일을 generate함 - Koin
Kotlin DSL로 만들어짐
-> java 코드는 사용불가
runtime에 의존성 주입
참조 :
https://tony-programming.tistory.com/entry/Dependency-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%9D%B4%EB%9E%80
반응형
'안드로이드' 카테고리의 다른 글
소스 검색(?) (0) | 2022.06.30 |
---|---|
[Android] 힐트(Hilt)에 대해 알아보자 (0) | 2022.06.20 |
[Android] 바텀시트(BottomSheet) 한번에 닫히기 (0) | 2022.05.31 |
뷰 클릭효과 Ripple주기 (0) | 2022.05.31 |
TextView 2개 붙어있을 때 앞에 ...붙이기 (0) | 2022.05.31 |