FrontController 패턴 특징
- FrontController 서블릿 하나로 클라이언트의 요청을 받음
- FrontController가 요청에 맞는 컨트롤러를 찾아서 호출
- !! 중요 입구를 하나로
- 공통 처리 기능
- FrontController를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다.
- FrontController (문지기)를 도입해 공통되는 로직을 모으고, Controller A, B, C 각자 처리하게 한다.

private Map<String, ControllerV1> controllerMap = new HashMap<>();
public FrontControllerServletV1() {
controllerMap.put("/front-controller/v1/members/new-form", new MemberFormControllerV1());
controllerMap.put("/front-controller/v1/members/save", new MemberSaveControllerV1());
controllerMap.put("/front-controller/v1/members", new MemberListControllerV1());
}
- Map에 담아 URI정보에 따라 Controller를 매핑해준다 (다형성)
정리
- 스프링 웹 MVC와 프론트 컨트롤러
- 스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴으로 구현되어있다.