- 명확한 역할 분리
- Model: 데이터 소스 및 비즈니스 로직을 처리한다. 데이터베이스나 네트워크 통신과 같은 작업을 담당한다.
- View: 사용자 인터페이스(UI)를 담당한다. 사용자 입력을 처리하고 데이터를 화면에 표시한다.
- ViewModel: View와 Model 간의 중개자 역할을 하며 UI 관련 로직을 포함한다. 데이터 변화를 감지하여 View를 업데이트한다.
- 단위 테스트 용이성
- View와 비즈니스 로직이 분리되어 있으므로 ViewModel과 Model을 쉽게 테스트할 수 있다. ViewModel은 안드로이드 프레임워크에 의존하지 않기 때문에 단위 테스트 작성이 용이하다.
- 유지보수 및 확장성
- 코드가 잘 구조화되어 있어 유지보수가 용이하며, 새로운 기능을 추가할 때 기존 코드를 수정하지 않고 확장할 수 있다. 모듈화된 코드 구조로 인해 특정 부분의 변경이 다른 부분에 영향을 미치지 않는다.
- 코드 재사용성 증가
- ViewModel과 Model의 로직은 여러 View에서 재사용할 수 있다. 동일한 ViewModel을 여러 Activity나 Fragment에서 사용할 수 있어 코드 재사용성이 높다.
- 데이터 바인딩을 통한 간결한 코드
- 데이터 바인딩을 사용하면 UI 업데이트 로직을 간결하게 작성할 수 있다. XML 레이아웃 파일에서 직접 데이터를 바인딩하여 UI를 업데이트할 수 있다.
- 비동기 작업의 간소화
- ViewModel에서 비동기 작업을 관리하여 UI 스레드와 백그라운드 스레드 간의 통신을 간소화할 수 있다. LiveData와 같은 데이터 홀더 클래스를 사용하여 UI 업데이트를 쉽게 처리할 수 있다.
- 라이프사이클 관리
- ViewModel은 액티비티나 프래그먼트의 라이프사이클에 안전하게 통합된다. ViewModel 인스턴스는 화면 회전과 같은 구성 변경 시에도 유지되므로 상태를 안전하게 보존할 수 있다.
728x90
'앱 개발 > Kotlin_Android' 카테고리의 다른 글
무한 스크롤 기능 구현 (0) | 2024.06.19 |
---|---|
Process, Thread (0) | 2024.06.13 |
Android 4대 컴포넌트 (0) | 2024.06.07 |
API 사용하여 동영상 가져오기 (0) | 2024.06.05 |
Hilt & ViewModel (0) | 2024.05.31 |