IT recording...
[Android] MVVM패턴이란? 본문
MVVM패턴이란?
- View , ViewModel, Model 로 이루어진 아키텍쳐 패턴으로 큰 프로젝트에서 많이 쓰이는 개발 패턴이다.
장점 : 객체 지향적인 문제 해결 + 복잡한 프로그램의 유지 보수 + Unit Test 가능 + 재사용성 높음
단점 : 클래스가 많아지고 코드의 양이 많아짐
간단히 말하자면
1. View는 ViewModel의 상태변화를 Observing (model에 변화가 생기면 ViewModel단에서 데이터를 가공하여 View에 전달 해준다. -> View는 그 데이터를 받아서 UI에 적용만 ==> 화면이 변경되어도 뷰모델은 바뀌지 않아도 된다.)
2. ViewModel은 데이터의 변경을 Model에게 알려주어 업데이트를 요청
3. Model은 데이터 그 자체. |
라고 할 수 있다.
ex)
1. View - adapter로 화면 구성을 바꿈, ViewModel observe하여 LiveData받아오기 (View와 연결된 Activity들)
2. ViewModel - View가 사용할 method 구현, 뷰에게 상태 변화 알리기
3. Model - 도메인 모델 생성
따라서 ViewModel은 화면이 어떻게 생긴지를 모른다. 그냥 블랙박스에 데이터를 전달해준다고 생각하면 된다.
다음 포스팅에서 MVVM패턴을 가지고 전화번호부를 만들어 볼 것이다.
구성은 다음과 같다.
1) View가 변경되는 MainActivity/AddActivity
2) 데이터의 상태 변화를 알려주는 ViewModel
3) 데이터 그 자체 @Entity
4) DB를 조작하는 트랜잭션 @Dao
5) Database공간을 생성하는 @Database
6) Entity, Dao, Database를 묶어주는 @Repository
'Android' 카테고리의 다른 글
[Android] Cannot resolve symbol 'R' 오류 (0) | 2021.03.15 |
---|---|
[Android] Fragment NullException 오류 해결방법 (0) | 2020.09.21 |
[Android] values/strings.xml 에서 다른 xml 파일 참조하고 싶을때 (0) | 2020.09.14 |
[Android] 안드로이드 블루투스 (2) - Discoverable / Find device (0) | 2020.09.09 |
[Android] 안드로이드 블루투스(1) - Bluetooth on/off (0) | 2020.09.09 |