Flutter

[Flutter] MVVM 기본 개념 정리

mjjayce 2025. 4. 14. 15:27

MVVM 이란?

Model + View + ViewModel

 

Model, View, ViewModel로 계층을 나누어서 개발하는 방식

코드의 역할을 명확하게 나누어 사용하는 방식으로, 유지보수와 테스트가 용이함.

 

 

Model

  • 데이터를 관리하는 부분
  • 서버, 데이터베이스 같은 곳에서 데이터를 가져오는 역할
  • 데이터 클래스 자체도 Model로 봄
  • 서버에서 데이터를 가져오는 경우, Repository로 관리

 

View

  • 화면(UI)를 담당
  • 위젯들을 담고 있음
  • 직접 데이터를 다루지 않고, ViewModel로부터 데이터를 받아 사용함
  • ViewModel을 구독함 => ViewModel이 변경되면 바로 알 수 있고, 필요한 데이터를 받을 수 있음 

 

ViewModel

  • ViewModel을 연결하는 중간다리 역할
  • Model(Repository)에서 데이터를 가져와 가공하고, View에 맞는 형태로 변환

 

 

 

MVVM은 플러터 기본 기능으로도 구현 가능하지만, 상태관리 라이브러리를 쓰면 더욱 편하게 구현 가능하다.

상태관리 라이브러리로는 RiverPod이 많이 사용됨