IT/Android
[Android] DI (1) | DI, Hilt, Dagger
ttoogi
2023. 4. 3. 21:32
DI (Dependency Injection) 의존성 주입
https://www.youtube.com/watch?v=1vdeIL2iCcM
class A & class B
A 코드가 B 를 사용한다면 A는 B에 의존성있다. 고 할 수 있음.
의존성 있는 코드, 객체를 넣어준다.
A에서 B 를 직접 생성하는게 아니라 외부에서 B 인스턴스를 생성해서 주입해준다.
제어의 역전(Inversion of Control)
class A -> class B 가 직접 제어하는게 아니라,
중간에 매개체를 사용하여 제어권을 일임하는 것. -> IoC Container
주로 IoC Conainer는 프레임워크가 담당한다.
의존성 주입은, 매개체를 두고 모듈을 등록하고 모듈을 주입한다.
모든 과정은 IoC Container 에게 제어권이 있다.
장점
- 코드 재사용 가능
- 리팩터링 편의성
- 테스트 편의성
-----
참고
https://developer.android.com/training/dependency-injection?hl=ko]
https://www.youtube.com/watch?v=1vdeIL2iCcM