MVC, MVP, MVVM 많이 들어보셨을 텐데요.

오늘은 MVVM에 대해서 정리해 보도록 하겠습니다.

 

1. MVVM 의 특징

A. 비지니스 로직과 View 컴포넌트가 분리되어 있다.

B. 그리고 비지니스로직은 DB로부터 분리되어 집니다.

C. 라이프사이클에 대해서 걱정을 덜 해도 된다.

 

아래는 구글에서 제공한 도표인데요.

MVVM에 대해 잘 설명해 주고 있습니다.

이들에 대해서 하나씩 보면서 MVVM에 대해서 이해해 보도록 하겠습니다.

 

MVVM은 Model, View, ViewModel로 구성되어 있는데요.

유저와 가장 가까운 View부터 보도록 하겠습니다.

 

1. View

Activity나 Fragment이지요.

LiveData인 ViewModel을 Observe하면서,

데이터가 갱신되면 그것을 UI에 반영합니다.

또한 User의 이벤트를 받아들이는 곳이기도 하구요.

이렇게 유저 인터랙션이나 UI를 그리는 일만 하므로서,

데이터에 관련된 일은 ViewModel에게 위임한 것이지요.

 

2. ViewModel

UI 데이터의 홀더로서, UI컴포넌트에 데이터를 제공해 주고,

Lifecycle상 처음에 intialize되 있다가 onDestroy될 때 clear되므로,

모든 라이프사이클 변화에도 계속 살아 있습니다.

앞단에 Repository를 두어서,

직접 DB나 Rest API에 접근하지 않고,

Repository로부터 데이터를 가져옵니다.

 

이곳이 앱의 핵심인 비즈니스 로직이 들어가 있는 곳이구요.

데이터를 필요한 로직에 따라서 핸들링 해 줍니다.

Repository가 DB와 데이터를 주고 받는 센터 같은 곳이라면,

여기는 데이터를 가공하는 주요 로직이 들어가 있는 곳이라고 할 수 있지요.

 

3. Repository

이 영역이 Model영역이구요.

앱에서 이용하는 데이터를

이미지 좌측하단과 같이 SQLite같은 로컬DB에서 가져오거나

이미지 우측하단과 같이 RestAPI같은 WebService로부터 데이터를 받아오기도 합니다.

 

728x90

+ Recent posts