MVC, MVP, MVVM 패턴 비교development2024. 10. 23. 11:32
Table of Contents
주요 특징
MVC
- Controller가 View를 직접 선택/업데이트
- View가 Model 직접 참조 가능
- 하나의 Controller로 다수 View 관리
- View 의존성으로 단위 테스트 어려움
- 장점: 단순하고 직관적인 구조
MVP
- View-Presenter가 1:1 관계
- View를 Interface로 추상화
- View는 Model 직접 접근 불가
- 독립적인 화면 단위 테스트 용이
- 장점: 화면 단위 테스트 용이성
MVVM
- ViewModel-View 데이터 바인딩
- View/Model 변경 시 자동 동기화
- UI 로직은 ViewModel에서 처리
- View와 독립적인 단위 테스트 용이
- 장점: 자동화된 데이터 바인딩
데이터 바인딩 방식
MVC
- Controller를 통한 단방향 바인딩
- Controller가 Model을 이용해 View를 직접 조작
- View → Controller → Model → View 흐름
MVP
- Presenter를 통한 View-Model 분리
- View ↔ Presenter ↔ Model (Interface 기반)
MVVM
- ViewModel을 통한 양방향 바인딩
- View ↔ ViewModel → Model 자동 동기화
활용 케이스
MVC - SSR
- 단순하고 직관적한 구조 필요 시
- 다수 View 통합 관리 필요 시
- 서버 사이드 렌더링 웹 애플리케이션
- 예시: Spring MVC
MVP - 모바일
- 화면 단위 테스트 중요 시
- 독립적인 화면 단위 관리 필요 시
- 모바일 애플리케이션
- 예시: Android
MVVM - CSR
- 복잡한 양방향 데이터 바인딩 필요 시
- UI 상태 관리가 중요한 경우
- 클라이언트 사이드 렌더링
- 예시: Vue.js, Angular
'development' 카테고리의 다른 글
Python FastAPI 개념 정리 (1) _ 프로젝트 세팅 & 패키지 구조 (1) | 2024.09.28 |
---|---|
국가법령정보 API 사용 방법 (0) | 2024.09.27 |
@뽀글뽀글 개발자 :: 뽀글뽀글 개발 일지
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!