CS
[CS] MVC, MVP, MVVM 패턴에 대해 알아보자
jordancancode
2024. 7. 13. 15:46
MVC 패턴
정의
Model, View, Controller로 이루어진 디자인 패턴, 잘사용하면 시각적 요소와 비즈니스 로직을 분리하여 쉽게 고칠 수 있는 어플리케이션을 만들 수 있다!
- 모델 : 어플리케이션의 데이터 (데이터베이스, 상수, 변수 등 정보를 모두 가지고 있음)
- 뷰 : inputbox, checkbox, textarea 등 사용자 인터페이스 요소 (정보 X, 화면에 표시하는 정보만)
- 컨트롤러 : 하나 이상의 모델과 하나 이상의 뷰를 잇는 다리 (이벤트 등 메인 로직)
출처 : 위키피디아
MVP 패턴
정의
MVC 패턴으로부터 파생된, MVC에서 컨트롤러 Controller가 프레젠터 Presenter로 교체된 패턴.
- Model : 정보를 담음
- View : 어플리케이션 인터페이스
- Presenter : 다리 역할
MVC 패턴과 다른 점?
뷰와 프레젠터가 1:1 관계 → MVC 패턴보다 더 강한 결합을 지닌 디자인 패턴이다.
MVVM 패턴
MVC의 컨트롤러 Controller가 뷰 모델 View Model로 바뀐 패턴. ViewModel이 각각의 View에 맞춰 대응하는 게 아니라, View들에서 필요로 하는 데이터, 기능을 ViewModel이 처리하고 이를 실시간으로 View가 알아서 가져가서 쓰는 방식이다. UI를 별도의 코드 수정 없이 재사용 가능하고, 단위 테스팅이 쉽다는 장점이 있다.
- View : 사용자가 화면에서 보는 모든 것
- View Model : 뷰를 더 추상화한 계층, 커맨드와 바인딩을 가지고 있음 -> 생명주기는 얘가 관리
- Model : 실제 내용을 표현하는 부분. 데이터를 접근하는 부분
반응형