본문 바로가기
Android

[Android] Hilt를 활용한 Android 의존성 주입: @HiltAndroidApp으로 애플리케이션 컨테이너 설정하기

by quessr 2024. 5. 21.

 

Hilt와 관련된 설명에서 "컨테이너"라는 용어는 종속 항목(의존성)을 관리하고 저장하는 구조를 의미합니다. 쉽게 말해, Hilt를 사용하는 Android 애플리케이션에서 컨테이너는 앱의 다양한 부분(예: 액티비티, 프래그먼트, 서비스 등)이 필요로 하는 객체들을 생성하고, 저장하며, 필요한 곳에 제공하는 역할을 합니다.

Hilt 컨테이너의 역할

  • 객체 생성: 필요한 객체를 생성하는 공장 같은 역할을 합니다.
  • 객체 저장: 생성된 객체를 저장하여, 같은 객체를 여러 곳에서 재사용할 수 있도록 합니다.
  • 객체 제공: 저장된 객체를 필요한 곳에 자동으로 제공합니다.

@HiltAndroidApp 주석의 역할

  • @HiltAndroidApp은 애플리케이션의 시작점에 붙는 주석으로, Hilt를 사용하기 위한 초기 설정을 의미합니다. 이 주석을 Application 클래스에 추가하면, Hilt는 앱 전체에 걸쳐 종속 항목을 관리할 수 있는 "최상위 컨테이너"를 생성합니다.
  • 이 최상위 컨테이너는 애플리케이션의 생명 주기와 연결되어 있으며, 앱 전체에서 필요한 객체들을 제공합니다. 다시 말해, 애플리케이션의 다른 부분에서 필요한 종속 항목(객체)을 이 컨테이너를 통해 받을 수 있습니다.

간단한 예로, 앱에서 HTTP 통신을 담당하는 HttpClient 객체가 필요하다고 가정해 보겠습니다. Hilt를 사용하면, HttpClient 객체를 생성하고 관리하는 코드를 작성할 필요 없이, 필요한 곳에 자동으로 HttpClient 객체를 주입받을 수 있습니다. 이러한 과정은 모두 Hilt가 관리하는 컨테이너를 통해 이루어집니다.

결론적으로, Hilt 같은 종속 항목 주입 라이브러리를 사용하는 주된 목적은 애플리케이션의 코드를 깔끔하게 유지하고, 객체 간의 의존성 관리를 쉽게 하며, 테스트가 용이하도록 하는 것입니다.