의존성 주입
의존성 주입(dependency injection
)은 객체 지향 프로그래밍에서 사용되는 디자인 패턴 중 하나로, 객체 간의 의존성(결합도)을 줄이고 유연성을 높이기 위해 사용됩니다.
원래 A 객체에서 B 객체를 사용하고자 할 때 보통은 B 객체를 직접 생성한다음 사용할 것 입니다. 즉 B 객체를 사용하는 A 객체가 '직접' 생성하는 주체가 됩니다.
의존성 주입 패턴은 위 같은 상황에서 A 객체에서 직접 B 객체를 생성하지 않고 '주입(inject
)'을 받아 A 객체에서 사용할 수 있도록 합니다.
의존성 주입 방법¶
의존성 주입 방법에는 크게 3가지가 있습니다.
- 생성자 주입 (권장)
- 필드 주입
- 메서드 주입
안드로이드에서는 Dagger나 Hilt와 같은 의존성 주입 라이브러리를 사용하여 의존성 주입을 손쉽게 구현할 수 있습니다.
물론 서버 프레임워크(스프링 부트 등)만큼 편리하지는 않지만, 기존에 불합리한 객체를 생성하기 위한 의존관계를 끊어내어 복잡성을 줄이는 데 큰 기여를 합니다.