[Spring] MVC 패턴이란? Controller / View / Model
by 우와한개발자
[ MVC 패턴 ]
1. MVC 패턴이란
- Model, View, Controller의 약어로, 어플리케이션을 구성하는 요소를 역할에 따라 세가지로 분리하는 설계방식
- 관심사를 분리해 유지보수와 확장 용이

1) Controller
- 요청을 받아 검증하고, 비즈니스 로직을 수행(Service호출만 하고 Dao를 직접 호출하지는 않음.)
- 요청 파라미터를 분석하고 어떤 Model(Service)을 호출할지 결정
- Model로부터 결과를 받아 어느 View(JSP)로 전달할지 결정 (forward 또는 redirect)
2) View
- Controller로부터 전달받은 데이터를 화면(HTML)으로 렌더링
- 사용자가 화면에 무엇을 어떻게 볼것인지를 결정
- 자체적으로 모델의 정보를 보관하지 않음
- JSP의 EL(${...})을 사용해 데이터를 출력
- Java 로직을 최소화하는 것이 좋은 설계
3) Model
- 실제 데이터 처리와 비즈니스 규칙을 담당
- 동작을 수행하는 코드
- Service : 비즈니스 로직 처리
- DAO (Data Access Object) : DB와 직접 통신
- DTO (Data Transfer Object) : 계층 간 데이터 전달 객체
| 구분 | 좁은 의미 | 넓은 의미 |
| 설명 | Controller ↔ View 사이에서 데이터를 전달하는 객체 | Service, DAO, DTO를 포함한 데이터 처리 계층 전체 |
| 범위 | 데이터 전달 객체 | 비즈니스 레이어 전체 |
| 포함 | DTO, VO | Service, DAO, DTO, VO |
| 사용 예 | model.addAttribute() | MVC 패턴 설명 시 |
2. Model1 vs Model2 아키텍처
| 구분 | Model1 | Model2 |
| 구조 | View + Controller 혼합 (JSP 안에 Java 코드) | Model / View / Controller 완전 분리 |
| 특징 | 구조가 단순하고 개발이 빠름 | 유지보수와 확장에 유리 |
| 적합한 규모 | 소규모 웹 개발 | 중·대규모 웹 개발 (Spring MVC 등) |
'프레임워크 > Spring' 카테고리의 다른 글
블로그의 정보
우와한개발자 님의 블로그
우와한개발자