-
MVC 패턴
📌 MVC는 Model, View, Controller의 약자로, 하나의 프로젝트를 구성할 때 관심사를 분리한 세 가지의 역할로 구분한 패턴이다. 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 둔다.
- Model : 데이터와 비즈니스 로직을 관리
- View : 레이아웃과 화면을 처리
- Controller : 사용자의 입력 처리와 흐름 제어 담당하며 화면과 Model, View를 연결해주는 역할
- MVC 패턴을 사용함으로써 비즈니스 로직과 UI 로직을 분리하여 유지보수를 독립적으로 수행할 수 있고, Model과 View가 다른 컴포넌트들에 종속되지 않아 확장성과 유연성에 유리하지만 애플리케이션이 복잡해 질수록 모델과 뷰의 관계도 복잡해지는 단점이 있음.
Spring Framework의 MVC2 패턴
-
MVP 패턴
📌 MVC 패턴의 파생. C가 프레젠터(presenter)로 교체된 패턴.
- 뷰와 프레젠터가 일대일 관계로써, MVC 패턴 때보다 더 강한 결합을 지닌다.
-
MVVM 패턴
📌 MVC 패턴의 파생. C가 뷰모델(view model)로 교체된 패턴.
- 뷰모델은 뷰를 더 추상화한 계층이며, MVC 패턴과 다르게 커맨드와 데이터 바인딩을 가지는 것이 특징임. 뷰와 뷰모델 사이의 양방향 데이터 바인딩을 지원하며 UI를 별도의 코드 수정 없이 재사용할 수 있고 단위 테스팅하기 쉽다는 장점이 있음.
참고자료
면접을 위한 CS 전공지식 노트
[Spring] Spring의 MVC 패턴과 MVC1과 MVC2 비교