DI는 Dependency Injection의 약자로 의존성 주입이라고 한다.
의존성이란?
의존성은 하나의 클래스에서 다른 객체를 참조하는 것을 말한다.
다음 예시를 보면
class A {
val B_Class = B()
}
class B {
...
}
클래스 A가 B를 참조하고 있다.
이때 우리는 클래스 A가 B를 의존하고 있다고 한다.
DI (의존성 주입)
의존성이 높으면 유지보수 및 테스트가 어려워진다.
따라서 클래스 내부에서 객체를 참조하는 것이 아닌 외부에서 참조시켜주는 것을 의존성 주입, DI라고 한다.
방법은 다음과 같다.
A, B 클래스 외의 새로운 매개체를 하나 생성한 뒤, 그 매개체를 통해서 의존성을 관리해주는 것이다.
이 매개체를 Inversion Of Control ( IOC ) 이라고 한다.
IOC에서는 의존성을 관리해주고, 인스턴스를 생성하여 주입시켜주며, 메모리를 해제를 수행한다.
안드로이드에서 사용하는 대표적인 DI 프레임워크는 Koin과 Hilt 등이 있다.
DI의 장점
DI를 사용하게되면 다음과 같은 장점이 있다.
- 의존성 감소 : IOC를 통한 의존성 관리로 객체간의 의존성이 감소한다.
- 유지보수 용이
- 재사용성 향상
- 변화에 유연하게 대처 가능
- 코드양 감소
- 테스트 용이
'안드로이드 > DI' 카테고리의 다른 글
[안드로이드] Hilt (0) | 2024.04.04 |
---|