From dedeecc7414b2bf5c02e230f60ea596718fdba2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=BC=ED=98=81?= Date: Wed, 3 Jun 2026 15:19:43 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20Retrofit=20=EC=84=9C=EB=B9=84?= =?UTF-8?q?=EC=8A=A4=20=EC=83=9D=EC=84=B1=20=EC=8B=9C=20Kotlin=20Reified?= =?UTF-8?q?=20Type=20Parameter=20=ED=99=9C=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `retrofit.create(Service::class.java)` 형식을 Kotlin 확장 함수인 `retrofit.create()`로 변경 - `AfternoteServiceModule`, `MindRecordServiceModule`, `TimeLetterModule`, `ServiceModule` 내 모든 API 서비스 정의 수정 - 불필요한 `.java` 클래스 참조를 제거하여 코드의 간결성 및 가독성 개선 --- .../com/afternote/core/network/di/ServiceModule.kt | 11 ++++++----- .../afternote/data/di/AfternoteServiceModule.kt | 10 +++++----- .../mindrecord/data/di/MindRecordServiceModule.kt | 11 ++++++----- .../feature/timeletter/data/di/TimeLetterModule.kt | 3 ++- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/core/network/src/main/kotlin/com/afternote/core/network/di/ServiceModule.kt b/core/network/src/main/kotlin/com/afternote/core/network/di/ServiceModule.kt index be0553cb5..66c5bea95 100644 --- a/core/network/src/main/kotlin/com/afternote/core/network/di/ServiceModule.kt +++ b/core/network/src/main/kotlin/com/afternote/core/network/di/ServiceModule.kt @@ -15,6 +15,7 @@ import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient import retrofit2.Retrofit import retrofit2.converter.kotlinx.serialization.asConverterFactory +import retrofit2.create import javax.inject.Named import javax.inject.Singleton @@ -24,7 +25,7 @@ object ServiceModule { // 반환 타입 생략하면 오류 남? @Provides @Singleton - fun provideAuthApiService(retrofit: Retrofit): AuthApiService = retrofit.create(AuthApiService::class.java) + fun provideAuthApiService(retrofit: Retrofit): AuthApiService = retrofit.create() @Provides @Singleton @@ -38,17 +39,17 @@ object ServiceModule { .client(refreshClient) .addConverterFactory(json.asConverterFactory(contentType = "application/json".toMediaType())) .build() - .create(TokenApiService::class.java) + .create() @Provides @Singleton - fun provideAccountApiService(retrofit: Retrofit): AccountApiService = retrofit.create(AccountApiService::class.java) + fun provideAccountApiService(retrofit: Retrofit): AccountApiService = retrofit.create() @Provides @Singleton - fun provideUserApiService(retrofit: Retrofit): UserApiService = retrofit.create(UserApiService::class.java) + fun provideUserApiService(retrofit: Retrofit): UserApiService = retrofit.create() @Provides @Singleton - fun provideImageApiService(retrofit: Retrofit): ImageApiService = retrofit.create(ImageApiService::class.java) + fun provideImageApiService(retrofit: Retrofit): ImageApiService = retrofit.create() } diff --git a/feature/afternote/data/src/main/kotlin/com/afternote/feature/afternote/data/di/AfternoteServiceModule.kt b/feature/afternote/data/src/main/kotlin/com/afternote/feature/afternote/data/di/AfternoteServiceModule.kt index 309e229b1..2f556b964 100644 --- a/feature/afternote/data/src/main/kotlin/com/afternote/feature/afternote/data/di/AfternoteServiceModule.kt +++ b/feature/afternote/data/src/main/kotlin/com/afternote/feature/afternote/data/di/AfternoteServiceModule.kt @@ -9,6 +9,7 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import retrofit2.Retrofit +import retrofit2.create import javax.inject.Singleton @Module @@ -16,18 +17,17 @@ import javax.inject.Singleton object AfternoteServiceModule { @Provides @Singleton - fun provideAfternoteApiService(retrofit: Retrofit): AfternoteApiService = retrofit.create(AfternoteApiService::class.java) + fun provideAfternoteApiService(retrofit: Retrofit): AfternoteApiService = retrofit.create() @Provides @Singleton - fun provideMusicApiService(retrofit: Retrofit): MusicApiService = retrofit.create(MusicApiService::class.java) + fun provideMusicApiService(retrofit: Retrofit): MusicApiService = retrofit.create() @Provides @Singleton - fun provideReceiverAfternoteApiService(retrofit: Retrofit): ReceiverAfternoteApiService = - retrofit.create(ReceiverAfternoteApiService::class.java) + fun provideReceiverAfternoteApiService(retrofit: Retrofit): ReceiverAfternoteApiService = retrofit.create() @Provides @Singleton - fun provideReceiverAuthApiService(retrofit: Retrofit): ReceiverAuthApiService = retrofit.create(ReceiverAuthApiService::class.java) + fun provideReceiverAuthApiService(retrofit: Retrofit): ReceiverAuthApiService = retrofit.create() } diff --git a/feature/mindrecord/data/src/main/kotlin/com/afternote/feature/mindrecord/data/di/MindRecordServiceModule.kt b/feature/mindrecord/data/src/main/kotlin/com/afternote/feature/mindrecord/data/di/MindRecordServiceModule.kt index 7c27ab934..ad0e1c16b 100644 --- a/feature/mindrecord/data/src/main/kotlin/com/afternote/feature/mindrecord/data/di/MindRecordServiceModule.kt +++ b/feature/mindrecord/data/src/main/kotlin/com/afternote/feature/mindrecord/data/di/MindRecordServiceModule.kt @@ -10,6 +10,7 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import retrofit2.Retrofit +import retrofit2.create import javax.inject.Singleton @Module @@ -17,22 +18,22 @@ import javax.inject.Singleton object MindRecordServiceModule { @Provides @Singleton - fun provideDailyQuestionApiService(retrofit: Retrofit): DailyQuestionApiService = retrofit.create(DailyQuestionApiService::class.java) + fun provideDailyQuestionApiService(retrofit: Retrofit): DailyQuestionApiService = retrofit.create() @Provides @Singleton - fun provideDiaryApiService(retrofit: Retrofit): DiaryApiService = retrofit.create(DiaryApiService::class.java) + fun provideDiaryApiService(retrofit: Retrofit): DiaryApiService = retrofit.create() @Provides @Singleton - fun provideDeepThoughtApiService(retrofit: Retrofit): DeepThoughtApiService = retrofit.create(DeepThoughtApiService::class.java) + fun provideDeepThoughtApiService(retrofit: Retrofit): DeepThoughtApiService = retrofit.create() @Provides @Singleton fun provideMindRecordReceiverApiService(retrofit: Retrofit): MindRecordReceiverApiService = - retrofit.create(MindRecordReceiverApiService::class.java) + retrofit.create() @Provides @Singleton - fun provideWeeklyReportApiService(retrofit: Retrofit): WeeklyReportApiService = retrofit.create(WeeklyReportApiService::class.java) + fun provideWeeklyReportApiService(retrofit: Retrofit): WeeklyReportApiService = retrofit.create() } diff --git a/feature/timeletter/data/src/main/kotlin/com/afternote/feature/timeletter/data/di/TimeLetterModule.kt b/feature/timeletter/data/src/main/kotlin/com/afternote/feature/timeletter/data/di/TimeLetterModule.kt index 77d433631..b0c6d6910 100644 --- a/feature/timeletter/data/src/main/kotlin/com/afternote/feature/timeletter/data/di/TimeLetterModule.kt +++ b/feature/timeletter/data/src/main/kotlin/com/afternote/feature/timeletter/data/di/TimeLetterModule.kt @@ -12,6 +12,7 @@ import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import retrofit2.Retrofit +import retrofit2.create import javax.inject.Singleton @Module @@ -19,7 +20,7 @@ import javax.inject.Singleton object TimeLetterModule { @Provides @Singleton - fun provideTimeLetterApiService(retrofit: Retrofit): TimeLetterApiService = retrofit.create(TimeLetterApiService::class.java) + fun provideTimeLetterApiService(retrofit: Retrofit): TimeLetterApiService = retrofit.create() @Provides @Singleton