안드로이드 앱을 개발할 때 UI 컨트롤러에서 비즈니스 로직을 분리하여 유지보수를 용이하게 하기 위해 뷰모델을 사용할 수 있습니다. 이 글에서는 안드로이드 뷰모델의 사용 사례와 간단한 예제 코드를 살펴보겠습니다.
뷰모델이란?
뷰모델(ViewModel) 은 안드로이드 아키텍처 컴포넌트 라이브러리에서 제공하는 클래스로, UI 관련 데이터를 관리하고 UI 컨트롤러(Activity 또는 Fragment)와 데이터 소스(Repository 등) 사이의 이동을 처리합니다. 이를 통해 UI와 비즈니스 로직을 분리하여 코드의 재사용성을 높이고 유닉스 프로그램 방식으로 개발할 수 있습니다.
뷰모델의 사용 사례
-
화면 회전 시 데이터 보존: 안드로이드의 화면 회전은 액티비티가 다시 생성되는데, 이때 뷰모델을 사용하면 데이터를 보존할 수 있습니다.
-
데이터 공유: 여러 프래그먼트 또는 액티비티에서 동일한 데이터를 사용할 때 뷰모델을 활용하여 데이터를 공유할 수 있습니다.
-
비즈니스 로직 처리: 네트워크 요청, 데이터베이스 액세스, 파일 입출력 등의 비즈니스 로직을 뷰모델 안에서 처리하여 UI 컨트롤러를 깔끔하게 유지할 수 있습니다.
뷰모델 예제 코드
다음은 안드로이드에서 코틀린을 사용하여 뷰모델을 정의하는 간단한 예제 코드입니다.
import androidx.lifecycle.ViewModel
import androidx.lifecycle.MutableLiveData
class MyViewModel : ViewModel() {
val data = MutableLiveData<String>()
fun fetchData() {
// 비즈니스 로직 처리
val result = "데이터 가져오기 완료"
data.value = result
}
}
위의 예제 코드에서 MyViewModel
은 데이터를 관리하는 뷰모델 클래스이며, fetchData()
함수를 통해 비즈니스 로직을 수행하고 결과를 MutableLiveData
를 통해 UI에 업데이트합니다.
이렇게 뷰모델을 활용하면 UI와 비즈니스 로직을 분리하여 안드로이드 앱의 유지보수성을 향상시킬 수 있습니다.
위의 예제 코드는 안드로이드에서 코틀린을 사용한 뷰모델 예제입니다. 더 자세한 내용은 Android Developers 공식 문서를 참고해 주세요.