-Hilt는 Annotation을 기반으로 동작을 한다.
-@HiltAndroidApp
-@AndroidEntryPoint
-@Module
-@InstallIn
-@HiltViewModel
-JDK1.5부터 사용되기 시작하였으며 소스코드를 해치지 않으면서 컴파일러에게 부가적인 정보를 제공하기 위해서 사용되었다. 클래스 , 필드 내부 , 메서드 등등에 선택적으로 선언이 가능하고 런타임 동안에도 참조가 가능하다는 특징이 존재한다.
-하지만 Hilt는 Annotation을 컴파일에서만 참조한다.
-컴파일 타임에 Annotation을 스캔하고 소스코드를 검사하거나 생성한다.
-소스코드에 포함된 어노테이션을 처리하면 새로운 어노테이션이 생성 될 수 도 있고 , 또 다른 타입의 어노테이션을 처리해야 할 수 도 있다. 이렇게 하나의 어노테이션을 처리하는 과정을 라운드라고 하는데 소스코드의 모든 어노테이션이 처리 될 때까지 몇번의 라운드를 거치면서 어노테이션 프로세서가 코드를 스캔한다.
-Hilt 전용 어노테이션을 활용해서 컴파일 타임에 어노테이션을 적절하게 처리한다. 만약 이 과정에서 의존성 그래프에 문제가 있다면 예외를 발생시키고 빌드를 중단시킨다. 이렇게 컴파일 단에서 에러 검증이 가능하므로 개발 및 테스트에 소요되는 시간을 절약 할 수 있다.