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