[Flutter] MVVM 패턴

만들면서 배우는 플러터 앱 프로그래밍
최재원's avatar
Jul 30, 2025
[Flutter] MVVM 패턴
notion image

✅ MVVM 패턴 설명

1. 개요

  • Model: 비즈니스 로직, 데이터 처리 (API, DB, Repository 등)
  • View: 사용자 인터페이스(UI) → 화면 자체 (버튼, 텍스트 등)
  • VM (ViewModel): View와 Model 사이의 중재자 → 상태 관리, UI 데이터 제공

2. 역할별 책임

계층
책임
예시
Model
데이터 처리, API 요청, DB 접근
User, UserRepository
View
UI 표시, 사용자 입력 처리 (ViewModel에 위임)
UserPage, StatelessWidget
ViewModel
UI 상태 관리, 비즈니스 로직 호출, notifyListeners()
UserViewModel, ChangeNotifier
  1. 뷰에 응답을 하지 않는다
  1. 상태를 관리한다

3. 장점

✅ UI와 로직 분리 → 테스트 용이
✅ ViewModel에서 상태 관리 → UI 재사용 가능
✅ 유지보수 편리, 구조 명확

4. 단점

⚠️ 초기 구조 설계가 복잡할 수 있음
⚠️ 작은 앱에는 과한 구조일 수 있음
Share article

jjack1