Android - MVVM 패턴

유의선·2024년 6월 13일

MVVM 패턴

목록 보기
5/5

MVC 패턴

지금까지 몇가지 앱을 만들어봤는데 항상

  • Activity/Fragment에서 View들을 참조
  • View들의 Controller를 Activity/Fragment에 작성
  • Controller로 데이터(Model)를 처리, 결과를 View에 전달

하는 방식으로 코드를 작성하였다.

이러한 패턴을 MVC(Model-View-Controller) 패턴 이라고 한다.

이러한 방식은 구현도 간단하고 여러 장점도 가지고 있지만

컨트롤러의 역할이 커지게 되고, 컨트롤러 관련 코드를 Activity/Fragment에 작성하게 되면서 코드가 길어져 가독성이 나빠져 불편함을 느끼고 있었다.


MVVM 패턴

MVC 패턴의 한계를 극복하고, 코드의 구조를 더 명확하게 분리하기 위한 다양한 패턴들이 연구되었고 그중 하나가 MVVM(Model - View - ViewModel) 패턴이다.

  • Model : 데이터와 비즈니스 로직을 관리합니다.
  • View : UI를 담당하며, 데이터 표시와 사용자 입력을 처리합니다. Activity나 Fragment가 View에 해당한다.
  • ViewModel : View와 Model 사이의 중재자 역할을 합니다. View의 데이터 변경을 관찰하고 Model과 통신하여 데이터를 가져와 View에 전달한다.

주요 구성 요소

  • LiveData : 데이터의 변경을 관찰 가능하게 하고 View가 자동으로 업데이트되도록 해준다.
  • ViewModel: 데이터를 관리하고 LiveData를 사용하여 데이터 변화를 View에 알린다.
  • Data Binding: XML 레이아웃에서 ViewModel과 UI를 바인딩한다.

위의 구성요소의 사용법은 MVVM 패턴 시리즈로 학습하여 사용법을 익히고 정리해두었다.

MVVM 패턴의 장점

  • MVVM 패턴은 데이터 처리 (Model), 화면 표시 (View), 그리고 사용자 인터페이스와 상호작용하는 로직 (ViewModel)을 분리하여 각 부분의 역할이 명확히 구분되어 코드의 유지보수성이 높아지고, 코드를 이해하기 쉽게 해준다.

  • 데이터 바인딩을 사용하여 데이터와 UI 요소가 자동으로 동기화되어 UI 업데이트를 간편하게 만들어준다. 이는 코드의 반복 작성을 줄이고 실수를 방지시켜준다.

  • ViewModel은 수명 주기를 고려하여 데이터를 관리하므로 Activity나 Fragment가 재생성되더라도 데이터가 유지된다. 이는 메모리 누수를 방지하고 애플리케이션의 안정성을 높여준다.

MVVM 패턴은 Android 애플리케이션 개발에서 자주 사용하는 아키텍처 패턴이다.
앞으로는 MVVM 패턴을 사용해 코드를 작성해 해당 패턴 사용에 익숙해지려고 한다.

0개의 댓글