Learning
토픽 53 / 192·소프트웨어 설계와 아키텍처

MVC / MVP / MVVM

MVC / MVP / MVVM

UI 구조를 분리하여 관심사를 나누는 아키텍처 패턴군

MVC (Model-View-Controller)

  • Model(데이터/로직) ↔ View(화면) ↔ Controller(입력 처리)
  • View가 Model을 직접 참조, Controller가 Model 갱신
  • 적용: Spring MVC, Rails, Django

MVP (Model-View-Presenter)

  • View ↔ Presenter ↔ Model, View와 Model 완전 분리
  • Presenter가 View 인터페이스를 통해 화면 갱신
  • 적용: Android (초기), Win Forms

MVVM (Model-View-ViewModel)

  • View ↔ ViewModel ↔ Model, 데이터 바인딩으로 자동 동기화
  • ViewModel이 Model 변환, View는 바인딩으로 반영
  • 적용: WPF, SwiftUI, Vue.js, React (유사)

비교표

연관: 디자인 패턴, 소프트웨어 아키텍처, Observer 패턴