Hilt EntryPoint 주입이란? (Feat. Perplexity)

Philipy (윤상필)·2025년 11월 26일

EntryPoint 주입은 특수한 상황에서만 사용되고, 일반적인 화면(Activity/Fragment) 코딩에선 자주 쓰이지 않습니다.


EntryPoint 주입이 필요한 경우

  • Hilt가 직접 관리하지 않는 안드로이드 컴포넌트(예: BroadcastReceiver, ContentProvider, WorkManager 등)에서
    DI 객체를 받아야 할 때 사용합니다.
  • 예를 들어, 시스템에서 직접 인스턴스화하는 클래스에서는
    생성자·필드·메서드 주입이 불가능하므로
    EntryPoint 인터페이스를 명시해서 DI 객체를 “수동으로” 받을 수 있습니다[1][2][3].
  • WorkManager, AlarmManager, 백그라운드 동작, 앱 외부 진입점 등에서 실무적으로 활용됩니다.

사용 예시

@EntryPoint
@InstallIn(ApplicationComponent.class)
public interface MyEntryPoint {
    MessageHelper getHelper();
}

// 시스템 컴포넌트에서 객체 추출
MyEntryPoint entryPoint = EntryPoints.get(applicationContext, MyEntryPoint.class);
MessageHelper helper = entryPoint.getHelper();

실무적 빈도

  • 일반적인 Activity/Fragment/ViewModel에서는 거의 사용하지 않음
  • 앱 구조가 복잡해져서 시스템/라이브러리 컴포넌트까지 DI 통합 관리가 필요할 때만 활용
  • "이 컴포넌트는 왜 DI가 안되지?"라고 느끼는 특수 상황,
    또는 Hilt 공식 예제에서 아주 제한적으로 등장

결론:
EntryPoint 주입은 “필요할 때만”, “특수 상황에서” 쓰는 실무 보조 기술이며,
일반적인 화면·비즈니스 코드 외부에서만 주로 사용됩니다[1][2][3].
대부분의 프로젝트에서는 생성자/필드 주입이 표준입니다!

출처
[1] Hilt를 사용한 종속 항목 삽입 | App architecture - Android Developers https://developer.android.com/training/dependency-injection/hilt-android?hl=ko
[2][Android] 안드로이드에서 hilt로 의존성 주입 구현하기 https://onlyfor-me-blog.tistory.com/1024
[3][Android 심화] 5주차 스터디 - 의존성 주입(DI), Hilt, Room https://dsc-sookmyung.tistory.com/620

profile
Tech Phase-smith, Karax wannabe

0개의 댓글