[kotlin] 코틀린에서 안드로이드 뷰모델 패턴 적용하기
안드로이드 앱을 개발하다 보면 사용자 인터페이스와 비즈니스 로직을 분리하는 것이 중요합니다. 안드로이드 개발에서 이 목적을 달성하는 한 가지 방법은 뷰모델 패턴을 사용하는 것입니다. 뷰모델을 사용하면 UI 관련 데이터를 저장하고, 구성 변경과 같은 수명주기 이벤트에 따라 일관된 방식으로 처리할 수 있습니다.
뷰모델 패턴 소개
뷰모델 패턴은 안드로이드 아키텍처 컴포넌트 라이브러리에서 지원하는 디자인 패턴으로, ViewModel
및 LiveData
를 사용하여 구현됩니다. ViewModel
은 화면 회전 및 다른 구성 변경 중에도 데이터를 유지하고 UI를 업데이트하는 데 사용됩니다. LiveData
는 관찰 가능한 데이터 홀더로, 데이터 변경 시 알림을 수신하는 방법을 제공합니다.
코틀린에서 뷰모델 패턴 사용하기
의존성 추가
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
뷰모델 생성
import androidx.lifecycle.ViewModel
class MainViewModel : ViewModel() {
// 뷰모델에서 관리할 데이터 및 로직을 정의
}
액티비티 또는 프래그먼트에서 뷰모델 사용
class MainActivity : AppCompatActivity() {
private lateinit var viewModel: MainViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProvider(this).get(MainViewModel::class.java)
}
}
결론
뷰모델 패턴을 사용하면 화면 관리 및 비즈니스 로직을 효과적으로 분리할 수 있습니다. 이를 통해 유지보수성이 향상되고 안정적인 앱을 만들 수 있습니다.
이상적으로는 뷰모델에는 UI 관련 로직을 포함하고, 뷰 레이어는 뷰모델에 의존해야 합니다. 이렇게 함으로써 UI와 비즈니스 로직이 서로 독립적으로 유지되며, 테스트 가능한 코드를 작성할 수 있게 됩니다.
참고문헌: