본문 바로가기
Android

Android Studio] MVVM 패턴

by 김마리님 2020. 8. 5.

기존 jsp나, 웹을 이용할때 가장 많이 사용하는 디자인 패턴은 MVC 패턴이다.

 

MVC 같은 경우는 뷰가 요청을 컨트롤러에 하고, 컨트롤러가 모델과 연결하여 데이터 통신을 하는 형태이다. 이 형태의 경우 뷰와 모델 사이의 의존성이 높다는 단점이 있다. 따라서 MVVM 패턴의 중요성이 강조된다.

 

MVVM 패턴의 경우 뷰에서 뷰모델에 요청을 한다. 이 때 뷰 모델은 뷰를 만들기 위한 모든 데이터를 가지고 있다. 혹시 데이터의 변경이 생길 경우, 뷰 모델이 모델과 상호작용 하고, 모델이 데이터 서버에 데이터의 영향을 준다.

그렇기 때문에, 데이터의 변경은 다음과 같은 순서로 진행된다.

 

1. DB의 데이터 갱신

2. View Model의 데이터 갱신

뷰 모델같은 경우 자기 데이터를 liveData에 넣는다. 이 liveData가 곧 react의 state의 역할을 하기 때문이다.

뷰는 이 liveData를 구독하면서 데이터의 변경을 감지하고 view를 변경한다.

3. 데이터를 liveData에 넣음. 이 때, 데이터모델을 구독하고 있기 때문에 뷰의 데이터 모델 변경이 이루어진다.

 

 

※ MVVM 모델보다 상위 모델은 Reactive Model이다. 이 모델의 경우 뷰 모델이 데이터베이스를 구독하며, 데이터베이스의 변경 시 바로 뷰 모델이 변화된다. (2번이 자동으로 이루어진다는 뜻임)

반응형