- 기존 내 서비스에서 구성되어 있던 API 호출 구조는 매번 Api Task Class를 만들어 Base를 통해 Retrofit 객체를 생성하고 호출하는 과정이었다.- 각종 초기화 및 고정 Header 값 추가 등의 코드가 난잡하게 구성되어 있어 가독성 및 관리에 좋지 않았다. - 의존성 자동 주입을 위해 Hilt와 이참에 MVVM 패턴까지 적용해 봤다.Network Module- 일단 기존에는 Api Task Class 내부에 매번 API 인터페이스를 다르게 생성했는데, 전반적인 모든 API func을 담을 ApiService를 구성했다.interface ApiService { @GET("api/test") suspend fun getTest( @Query("zoneId") z..
- Hilt 기반으로 Network Module을 구성했는데, 갑자기 제목과 같은 오류가 발생했다. - 다음 함수가 문제였다.@Provides@Singletonfun provideApiService(retrofit: Retrofit, service: Class): T = retrofit.create(service)- Hilt는 DI 그래프를 컴파일 타임에 생성하기 때문에, 어떤 타입을 주입할지 명확히알아야 한다.그런데 위처럼 로 제네릭을 쓰면 어떤 타입인지 컴파일 시점에 알 수 없기 때문에 에러가 발생한 것. - 아래처럼 Api 호출 관련 함수가 하나로 정리된 Interface를 지정해 주면 된다.@Provides@Singletonfun provideApiService(retrofit: Retro..
- 의존성 주입이라는 개념이 있다. 객체가 필요한 의존 객체를 외부에서 주입받아 사용하는 설계를 말한다. - 보통 일반적으로 수동적 의존성 주입 처리가 진행된다. 하지만 지연 초기화, nullable 처리, 코드 중복량 증가에 대한 문제점들이 시간이 지날수록 드러난다. - 이런 문제점들을 줄이기 위해 DI를 컴파일 시점에서 처리해 런타임 성능을 최적화하고, 어노테이션으로 객체 간 의존 관계를 관리할 수 있는 라이브러리 Hilt가 있다.https://developer.android.com/training/dependency-injection/hilt-android?hl=ko Hilt를 사용한 종속 항목 삽입 | App architecture | Android Developers이 페이지는 Cloud..