Hilt와 관련된 설명에서 "컨테이너"라는 용어는 종속 항목(의존성)을 관리하고 저장하는 구조를 의미합니다. 쉽게 말해, Hilt를 사용하는 Android 애플리케이션에서 컨테이너는 앱의 다양한 부분(예: 액티비티, 프래그먼트, 서비스 등)이 필요로 하는 객체들을 생성하고, 저장하며, 필요한 곳에 제공하는 역할을 합니다.
Hilt 컨테이너의 역할
- 객체 생성: 필요한 객체를 생성하는 공장 같은 역할을 합니다.
- 객체 저장: 생성된 객체를 저장하여, 같은 객체를 여러 곳에서 재사용할 수 있도록 합니다.
- 객체 제공: 저장된 객체를 필요한 곳에 자동으로 제공합니다.
@HiltAndroidApp 주석의 역할
- @HiltAndroidApp은 애플리케이션의 시작점에 붙는 주석으로, Hilt를 사용하기 위한 초기 설정을 의미합니다. 이 주석을 Application 클래스에 추가하면, Hilt는 앱 전체에 걸쳐 종속 항목을 관리할 수 있는 "최상위 컨테이너"를 생성합니다.
- 이 최상위 컨테이너는 애플리케이션의 생명 주기와 연결되어 있으며, 앱 전체에서 필요한 객체들을 제공합니다. 다시 말해, 애플리케이션의 다른 부분에서 필요한 종속 항목(객체)을 이 컨테이너를 통해 받을 수 있습니다.
간단한 예로, 앱에서 HTTP 통신을 담당하는 HttpClient 객체가 필요하다고 가정해 보겠습니다. Hilt를 사용하면, HttpClient 객체를 생성하고 관리하는 코드를 작성할 필요 없이, 필요한 곳에 자동으로 HttpClient 객체를 주입받을 수 있습니다. 이러한 과정은 모두 Hilt가 관리하는 컨테이너를 통해 이루어집니다.
결론적으로, Hilt와 같은 종속 항목 주입 라이브러리를 사용하는 주된 목적은 애플리케이션의 코드를 더 깔끔하게 유지하고, 객체 간의 의존성 관리를 쉽게 하며, 테스트가 용이하도록 하는 것입니다.
반응형
'Android > Hilt' 카테고리의 다른 글
[Android/Hilt] @Provides vs @Binds: Hilt에서 객체를 주입하는 두 가지 방식 (0) | 2025.03.07 |
---|---|
[Android/Hilt] @Qualifier와 @Named 이해하기: 같은 타입의 여러 의존성을 구별하여 주입 (0) | 2025.03.07 |
[Android/Hilt] @Inject와 @Module, @Provides 이해하기 (0) | 2025.03.07 |