Android

안드로이드 MVVM 패턴 - 개요

최데브 2021. 1. 24. 15:47

얼마전부터 공부하고 있는 MVVM 패턴에 대해 정리하기위해 포스팅을 하기로 마음먹었다.

 

사실 MVVM 패턴 자체만 두고보면 엄청 어렵고 그런 개념은 아닌데

제대로 만들기 위해서 들어가는 여러가지 따라오는것들이 어려운거 같다.

LiveData 라던지 RxJava 라던지.. 

 

이런것들도 다음 포스팅에 적을것이다.

 

일단 MVVM 패턴에 대해서 먼저 알아보자.

 

MVVM 패턴은 예전 MVP 포스팅에서도 언급했듯

MVP패턴의 View와 Presenter , Model 사이이 양방향 의존성이 심해서 이것을 해결하기 위해 만들어졌다.

 

MVVM 은 크게 View - ViewModel - Model 로 이루어져있고 단방향 의존성을 가진다.

VIew는 ViewModel 을 참조하지만  ViewModel 은 View 를 참조하지 않고

ViewModel 은 Model 을 참조하지만 Model 은 ViewModel 을 참조하지 않는다.

 

그림으로 설명하면 아래와 같다.

 

MVVM 패턴 구조도

그렇다면 ViewModel 은 View 에 자신의 바뀐 데이터를 어떻게 알려줄까?

그래서 사용하는 개념이 Binding 이다.

ViewModel 은 값을 바꾸기만 하고 View 는 그 변화를 관찰하고 있다가 변화하면 된다.

 

특징을 꼽자면

1. View, ViewModel, Model은 최대한 서로 간섭하지 않는다. -> 의존성이 적어지고 유지보수, 테스트가 쉬워진다.

2. VIew에서 유저가 행동을 취하면 ViewModel에서 비즈니스 로직을 실행한다.

3. ViewModel 은 Model 의 데이터를 수정, 업데이트한다.

4. ViewModel은 Binding 을 통해 View를 수정한다.

5. ViewModel 만 Model 에 접근가능하고 View는 Model에 접근하지 못한다.

 

엄청 간단하게 썼지만 대략적인 개요는 이렇다. 

 

반응형