[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 공식 문서를 참조하시기 바랍니다.