Computer Science
[CS] MVC Pattern
jyc_
2025. 1. 20. 15:01
Model - View - Controller Pattern
애플리케이션의 구성 요소를 세 가지 역할로 분리하여 코드의 유지보수성과 확장성을 높이는 데 사용하는 아키텍처 패턴
구성 요소
Model
- 데이터와 비즈니스 로직을 처리하는 부분
- DB, 상태 관리, 응용 프로그램의 핵심 로직을 포함한다.
- View나 Controller와는 독립적으로 동작하며, 데이터의 변경 사항을 View에 알려준다.
- e.g. DB에서 영화 정보를 가져오는 클래스
View
- UI를 담당
- 화면에 데이터를 출력하고, 사용자의 입력을 처리하기 위한 시각적 요소를 포함한다.
- Model에서 데이터를 가져와 화면에 출력하고, Controller와 협력하여 사용자 입력을 처리한다.
- e.g. HTML, JSP, XML layout file 등
Controller
- 사용자의 입력을 받아 처리한다.
- Model과 View 사이를 연결한다.
- 사용자 요청을 처리하고, Model의 데이터를 업데이트하며, 필요한 경우 View를 갱신한다.
동작 흐름
- 사용자 입력
- 사용자가 UI(View)를 통해 요청을 보낸다.
- Controller 처리
- Controller는 요청을 분석하여 적절한 Model 로직을 실행한다.
- Model 업데이트
- Controller가 Model에 데이터를 요청하거나 갱신한다.
- View 갱신
- Model에서 데이터를 가져와 화면(View)을 업데이트한다.
장단점
장점
- 모듈화를 통해 코드 수정 및 유지보수의 용이성을 높인다.
- 모델과 컨트롤러는 다양한 뷰와 함께 재사용이 가능하다.
- 역할 분담이 명확하여 팀 협업 시 효율적이다.
단점
- 작은 프로젝트에서는 불필요하게 복잡한 구조가 될 수 있다.
- 컴포넌트를 분리하고 설계하는데 시간과 노력이 필요하다. → 초기 설계 비용