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
- View와 Model을 연결하는 중간다리 역할
- Model(Repository)에서 데이터를 가져와 가공하고, View에 맞는 형태로 변환
MVVM은 플러터 기본 기능으로도 구현 가능하지만, 상태관리 라이브러리를 쓰면 더욱 편하게 구현 가능하다.
상태관리 라이브러리로는 RiverPod이 많이 사용됨