MVVM 패턴에 대해서 알아보기

신정훈·2023년 1월 4일
0

회사를 다녔을때 MVVM 패턴에 맞춰서 프로젝트를 개발했었지만 최근 RN으로 개발을 하며 안드로이드 개발에 대한 기억이 가물가물 하여(정확히 모르고 어렴풋이 알아서 그런듯..하..) 공부한 내용을 기록으로 남겨두기로 결정하였다.
MVVM패턴이 무엇인지 알아보자!

MVVM 패턴이란?

MVVM 패턴은 Model, View, ViewModel 세가지 영역으로 나눠 어플리케이션을 개발하는 것을 말한다.
각각 계층의 결함도를 줄이고 응집도는 높힘으로써 유지보수의 용이함을 위해 사용한다.

위의 그림에서 Activity/Fragment는 View에 속하는 부분이다.
즉, 사용자가 버튼을 클릭하거나 하는 모든 화면에 대한 상호작용을 말한다.
이러한 상호작용을 처리하는 부분은 Model이다. API 호출을 하여 응답 데이터를 받아오거나, DB에서 데이터를 가져오는 등 실제 데이터와 관련된 모든 작업은 이 Model에서 처리한다.
ViewModel은 UI를 담당하는 View와 데이터와 관련된 일을 담당하는 Model 두 사이를 이어주는 역할을 한다.

이러한 구조가 된다면 View와 Model은 서로 참조하지 않게되고 ViewModel을 통해 통신한다.

구글에서는 이러한 MVVM 패턴을 쉽게 구현하도록 Android Jetpack 의 구성요소 AAC를 제공한다.
ViewModel, Live Data, Databinding등 여러가지 기능들을 제공한다.

중요한건 AAC의 ViewModel과 MVVM의 ViewModel은 서로 다르다는 것이다.

AAC의 ViewModel은 Android의 수명 주기를 고려하여 UI 관련 데이터를 저장하고 관리하는 요소이고 MVVM의 ViewModel은 MVVM ViewModel은 View에 필요한 데이터를 관리하여 바인딩 해주고, 비즈니스 로직을 담당해 데이터를 처리하는 요소이다.

AAC의 ViewModel은 안드로이드 생명주기에 근거하여 데이터를 저장하고 관리해주는 역할을 하는것이지 MVVM의 ViewModel의 역할과는 다르다는 것을 알수있다.
즉, AAC의 ViewModel 사용했다고 해서 MVVM 패턴을 구현한 것은 아니다!

참고자료/출처
https://leveloper.tistory.com/216

안드로이드 공식 홈페이지 아키텍쳐 다이어그램

profile
주니어 안드로이드 개발자

0개의 댓글