Hilt 공부중인데.. 몇가지 좀 헷갈리는게 있어서 질문드립니다.
1. @HiltAndroidApp로 Hilt 코드를 트리거 하면 앱 레벨의 의존성을 제공하는 ApplicationComponent(현재는 SingletoneComponent로 변경됨)가 생성 된다고 합니다.
그리고 ApplicationComponent 생성후
@AndroidEntryPoint가 붙은 클래스를 통해 의존성을 제공하는 Component들을 생성한다고 하는데요,
여기서 ApplicationCompent도 의존성을 제공하고 그 하위 Sub Component도 종속성을 제공한다고 하는데
제 생각에는 Sub Component가 독자적으로 의존성을 제공하는게 아니라 Application Compnent에서 부터
상속개념?으로 의존성을 받아서 다시 Sub Component에서 받은 의존성을 제공하는 개념인것같은데..
맞나요?
2. Google Developers Korea Blog: MAD Skills 시리즈 - Hilt를 소개합니다 (googleblog.com)


위 링크 설명에서 '이 예제에서는 MusicPlayer를 PlayActivity에 주입합니다.' 라고 되어있는데요,
MusicPlayer가 주입'하는'게 아니라 PlayerActivity로부터 주입 '받는' 것아닌가요?
@AnroidEnryPoint가 의존성을 제공한다고 했으니까요..
3. https://www.youtube.com/watch?v=gkUCs6YWzEY
10:43 ~ 11:30 을 보시면 ApplicationComponent 내에 DataModule가 있고 그 내부에
MemoRepository가 있는데 DataModule 코드 내부에는 MemoRepository 관련 코드가 없는데 어떻게 존재 하는건가요?
4. @AnrdoidEntryPoint가 의존성을 제공한다고 했잖아요?
만약에 위 사진처럼 필드에 @Inject 어노테이션이 붙어있는 필드가 있을때,
의존성 주입 과정이 컴파일 과정에서 이 객체의 클래스의 @Inject 생성자 어노테이션을 보고
Hilt에 이 클래스의 객체 생성방법을 제공하고 Hilt는 이 클래스의 객체를 생성하고
@AnroidEntryPoint는 이 객체를 @inject 어노테이션이 붙어있는 필드에 의존성을 주입을 하는건가요?