[Spring] MVC-FrontController

Manx·2022년 4월 29일
0

spring

목록 보기
10/24


스프링의 MVC 패턴은 기본적으로 FrontController 패턴을 사용하고 있다.

FrontController 패턴

기존의 MVC 패턴을 사용하면 각 요청마다 공통으로 처리해야 하는 부분도 일일이 다 처리해줘야 한다.
ex)

RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
dispatcher.forward(request, response);

그래서 공통으로 처리하는 부분을 하나로 만들 수 있는 방법이 있는데, 이것이 FrontController 패턴이다.

FrontController 도입 전

FrontController 도입 후

FrontController 서블릿 하나로 요청을 받아, 공통 처리가 가능하게 되고 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다.

스프링 MVC 구조

DispatcherServlet이 HttpServlet을 상속받아 요청에 맞는 핸들러와 핸들러 어댑터를 찾아 실행시켜준다.

동작 순서

  1. 핸들러 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러를 조회한다.
  2. 핸들러 어댑터 조회 : 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다.
  3. 핸들러 어댑터 실행 : 핸들러 어댑터를 실행한다.
  4. 핸들러 실행 : 핸들러 어댑터가 실제 핸들러를 실행한다.
  5. ModelAndView 반환 : 핸들러 어댑터는 핸들러가 반환하는 정보를 ModelAndView로 변환해서 반환
  6. viewResolver 호출 : viewResolver를 찾고 실행한다.
  7. View반환 : viewResolver는 뷰의 논리 이름을 물리 이름으로 바꾸고, 렌더링 역할을 담당하는 뷰 객체를 반환
  8. 뷰 렌더링 : 뷰를 통해서 렌더링 한다.

직접 구현해 보는 포스트는 이어서 할 예정이다.


'스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 -김영한 님' 강의 내용을 정리한 것입니다.

profile
백엔드 개발자

0개의 댓글