Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

mooni

[Design Pattern] MVC & MVP & MVVM 본문

etc.

[Design Pattern] MVC & MVP & MVVM

mooni_ 2025. 4. 6. 21:12

MVC(Model View Controller) : 애플리케이션의 구성 요소를 세가지 역할로 구분하여 개발하여 재사용성과 확장성이 용의함

 

Model : 애플리케이션의 데이터인 DB, 상수, 변수 등

View : inputbox, checkbox 등 사용자 interface 요소

Controller : 하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 역할, event 등 메인 로직을 담당하며 모델과 뷰의 생명 주기를 관리함

=> 대표적인 MVC 패턴은 Spring이 있음

 


MVP(Model View Presenter) : View와 Presenter는 1:1 관계이므로 MVC 패턴보다 더 강한 결합을 가짐

 

 


MVVM(Model View ViewModel) : Controller대신 View Model을 사용

View Model : View를 더 추상화 한 계층, 커맨드와 데이터 바인딩을 가져 View와 View Model 사이의 양방향 데이터 바인딩을 지원

> 커맨드 : 여러가지 요소에 대한 처리를 하나의 액션으로 처리할 수 있게 하는 기법

> 데이터 바인딩 : 화면에 보이는 데이터와 웹 브라우저의 메모리 데이터를 일치시키는 기법(View Model을 변경하면 View가 변경됨)

=> 대표적인 MVVM 패턴은 Vue.js가 있음

 

패턴 구성 요소 View 역할 Model과의 연결 특징
MVC Model, View, Controller 사용자 입력만 처리 (로직 없음) Controller가 Model 업데이트 View와 Controller 간 양방향
MVP Model, View, Presenter 사용자 입력 전달 + UI 업데이트 Presenter가 Model과 통신 View와 Presenter 간 명확한 분리, 테스트 용이
MVVM  Model, View, ViewModel 데이터 바인딩 (자동 반응) ViewModel이 Model을 감시 View와 ViewModel 간 양방향 바인딩, React/Vue와 유사