MVC란?
- 모델 - 뷰 - 컨트롤러(Model - View - Controller, MVC)의 약자이다.
- 소프트웨어 디자인 패턴이다.
- 웹 애플리케이션을 기능별로 나누어 처리한다.
- 화면 처리
- 요청 처리
- 비즈니스 로직 처리
- 모델2 방식이다.
MVC 구성요소
- Controller
- Model의 상태를 변경할 수 있다.
- View에 Model의 결과를 표현할 방식을 선택할 수 있다.
- Model
- 데이터와 비즈니스 로직을 수행한다.
- View가 렌더링하는데 필요한 데이터이다.
- DAO나 VO클래스로 이루어져 있다.
- View
- Model의 결과를 Controller에서 받아서 화면에 표현한다.
MVC 장점
- 기능이 분리되어 있어 개발 및 유지보수가 편하다.
- 각 기능의 재사용성이 높아진다.
Spring MVC 동작 과정
DispatcherServlet
이 클라이언트의 요청을 받는다.DispatcherServlet
은 적절한 컨트롤러를 선택하는 작업을HandlerMapping
에 전달한다.HandlerMapping
은 들어오는 요청 URL에 매핑된Handler
(Controller
)를 선택하고, 선택된Handler
(Controller
)를DispatcherServlet
으로 반환한다.DispatcherServlet
은Controller
의 비즈니스 로직을 실행하는 작업을HandlerAdapter
로 전달한다.HandlerAdapter
는Controller
의 비즈니스 로직 프로세스를 호출한다.Controller
는 비즈니스 로직을 실행하고 그 결과를Model
에 설정하고,View
의 논리 이름을HandlerAdapter
에 반환한다.DispatcherServlet
은 View이름에 해당하는View
를 확인하는 작업을ViewResolver
에 전달한다.ViewResolver
는 View이름에 매핑된View
를 반환한다.DispatcherServlet
은 렌더링 프로세스를 반환된View
로 전달한다.View
는Model
의 데이터를 렌더링하고 응답을 반환한다.