IT recording...

[Android] MVVM패턴이란? 본문

Android

[Android] MVVM패턴이란?

I-one 2021. 4. 7. 20:53

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

 

 

Comments