토픽 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 패턴