[kotlin] 의존성 주입(Dependency Injection) 적용하기
의존성 주입을 위해 먼저 Koin
이라는 라이브러리를 프로젝트에 추가합니다. build.gradle
파일의 dependencies 블록에 아래의 의존성을 추가합니다.
dependencies {
implementation 'org.koin:koin-android:2.2.1'
implementation 'org.koin:koin-android-viewmodel:2.2.1'
}
다음으로, 의존성을 주입할 클래스에 module
을 정의합니다. 이 예제에서는 MyModule
이라는 이름의 모듈을 만들었습니다.
val myModule = module {
single { UserRepository() }
viewModel { MyViewModel(get()) }
}
이제 MyViewModel
클래스를 생성하고, 필요로 하는 객체를 의존성 주입을 통해 받을 수 있도록 변경합니다.
class MyViewModel(private val userRepository: UserRepository) : ViewModel() {
// View Model 코드
}
마지막으로, 뷰나 액티비티에서 viewModel()
함수를 사용하여 ViewModel을 가져올 수 있습니다.
val myViewModel: MyViewModel by viewModel()
의존성 주입을 적용하면, 코드의 가독성이 개선되고, 테스트하기 쉬운 구조를 갖출 수 있습니다. 이를 통해 어플리케이션의 유지보수성과 확장성을 향상시킬 수 있습니다.
의존성 주입은 안드로이드 앱뿐만 아니라 다른 플랫폼에서도 중요한 디자인 원칙 중 하나이므로, 다른 프로젝트에도 응용해 볼 수 있습니다.
이렇게 Koin
을 사용하여 Kotlin에서 의존성 주입을 적용하는 방법을 간단히 알아보았습니다. 더 자세한 내용은 Koin 공식 문서를 참조하시기 바랍니다.