[Flutter] Model · View · ViewModel 구조 완벽 가이드

서연·2025년 10월 3일
post-thumbnail

📖 MVVM 패턴이란

🌿 MVVM 패턴

  • Model-View-ViewModel의 약자로 사용자 인터페이스(UI) 개발을 위한 소프트웨어 아키텍처 디자인 패턴이다.
  • 이 패턴의 핵심 목적은 UI 코드와 비즈니스 로직을 명확하게 분리해서 코드의 유지보수성과 테스트 가능성을 높이는 것이다.

🗂️ Model (모델)

  • 실제 데이터와 관련된 부분을 담당한다.
  • API 통신, 데이터베이스 접근, 로컬 저장소 관리 등 비즈니스 로직이 포함된 핵심 영역이다.
  • ViewViewModel에 의존하지 않으며 앱이 필요한 데이터를 가져오거나 저장하는 역할을 한다.
  • UI와 완전히 독립적으로 동작하고 화면에 어떻게 표시되는지는 전혀 모른다.

🖼️ View (뷰)

  • 사용자가 직접 보는 화면(UI) 부분이다.
  • 버튼, 이미지, 텍스트 같은 UI 요소가 여기에 포함된다.
  • ViewModel에 있는 데이터를 데이터 바인딩을 통해 받아와 화면에 표시하는 역할만 한다.
  • 복잡한 로직은 포함하지 않으며 Model을 직접 참조하지 않고 오직 ViewModel과만 상호작용한다.

⚙️ ViewModel (뷰모델)

  • ViewModel 사이의 중간 다리 역할을 한다.
  • Model로부터 데이터를 가져와 View에 표시하기 적합한 형태로 가공하고 사용자의 입력을 받아 Model을 업데이트하는 명령을 처리한다.
  • 즉 화면에 어떤 데이터를 보여줄지 결정하는 곳이다.

💎 MVVM의 장점

  • UI 코드와 로직이 분리되어 유지보수가 쉽다.
  • ViewModel만 따로 테스트하기 쉽다.
  • 코드 구조가 명확하고 협업에 유리하다.
  • 재사용성과 확장성이 높다.

👉 MVVM은 View와 Model을 분리하고 ViewModel이 그 둘을 연결하는 다리 역할을 하는 아키텍처 패턴이다.

0개의 댓글