[Spring] MVC, 동작원리, 개발순서
이전 게시글에 이어서 MVC 패턴에 대해서 더 상세하게 기술
1. MVC 패턴
Model, View, Controller의 합성어로 소프트웨어 공학에서 사용되는 소프트웨어 디자인패턴 |
- Model : 프로그램의 내부 상태, 즉, 프로그램의 정보(데이터)를 말하는 것
- View : 사용자가 보게 될 결과화면 출력 (사용자 인터페이스 요소)
- Controller : 사용자의 입력 처리와 흐름 제어를 담당 (데이터와 비즈니스 로직간의 상호작용을 담당)
1.1. MVC2
MVC1 구조와 달리 웹 브라우저의 요청을 하나의 Servlet이 받게 됨. 그리고 Servlet은 웹 브라우저의 요청을 처리 후
그 결과를 jsp로 포워딩
- Client의 요청 처리와 응답처리, 비즈니스 로직을 처리하는 부분을 모듈화 시킨 구조로, 처리작업의 분리로 인해
유지보수와 확장이 용이하지만, 구조 설계를 위한 시간이 많이 소요되므로 개발기간이 증가
1.2. Spring MVC 구성 요소 및 처리 흐름
구성요소 | 설명 |
DispatcherServlet | Client의 요청을 전달받아 요청에 맞는 Controller가 반환한 결과값을 View에 전달하여 알맞는 응답을 생성 |
HandleMapping | Client의 요청 URL을 어떤 Controller가 처리할지 결정 |
Controller | Client의 요청을 처리한 뒤, 결과를 DispatcherServlet에게 반환 |
ModelAndView | Controller가 처리한 결과정보 및 View 선택에 필요한 정보를 담고 있음 |
ViewResolver | Controller의 처리 결과를 생성할 View를 결정 |
View | Controller의 처리 결과 화면을 생성, jsp 등으로 사용 |
Client의 Web Browser에서 요청한 URL을 DispatcherServlet이 전달 받아 HandlerMapping을 통해서 요청된 URL과
매핑 되는 Controller를 검색하여 리턴 함
그리고 Controller는 요청받은 것을 처리하고, 그 결과를 ModelAndView를 Dispatcher Servlet에게 리턴
DispatcherServlet은 결과값을 가지고 실행 결과를 Client에게 보여줄 View를 전달해주기 위해 View Resolver에게 요청
실행 결과를 보여줄 View를 리턴 받은 DispatcherServlet은 View를 통해 Client의 요청에 대한 응답을 출력해주기를 요청하고 View는 jsp를 생성하여 Client에게 결과 값 을 보여줌
1.3. Spring MVC 개발 순서
➀ Client에 요청을 받을 DispatcherServlet을 web.xml 파일에 설정 |
[이전 포스팅] bogyum-uncle.tistory.com/34