ecsimsw

Dispatcher servlet의 역할, FrontController 패턴이란 본문

Dispatcher servlet의 역할, FrontController 패턴이란

JinHwan Kim 2021. 5. 3. 17:08

FrontController 패턴이란

기존 서블릿 개발에선 처리 내용 당 서블릿을 정의해줘야하고, 핸들러의 공통 로직들이 매번 중복된다는 문제가 있다.

 

 

  

 

예를 들면 카페에서 메뉴마다 담당하는 직원이 있다고 생각하자.

 

아메리카노를 요청하면 아메리카노만을 담당하는 직원이 나와 주문을 받고, 음료를 만들고 포장하고, 카페모카를 요청하면 카페모카만을 담당하는 직원이 나와 주문을 받고, 음료를 만들고 포장해 전달해주고...

 

 

 

 

매번 반복되는 처리 패턴에서 음료 레시피만 변하고 있다. 반복되는 작업을 전면에서 처리하고, 음료를 만드는 것은 각자 따로 관리되면 어떨까?

 

매니저는 앞에서 주문받고 계산만하고, 요청 음료를 만들 수 있는 직원에게 음료 제작을 맡기고 음료가 나오면 다시 포장해서 전달하는 즉, 손님의 요청을 '앞'에서 처리하는 일을 전담하는 거다.

 

이렇게 1번과 3번의 매번 공통되었던 일들을 따로 분리하여 음료를 만드는 레시피에 집중할 수 있게 될 것이다.

 

 

이렇게 전면에 모든 요청을 처리할 수 있는 매니저(컨트롤러)를 두는 패턴을 Front Controller 패턴이라고 한다.

 

 

Spring MVC는 이 Front controller 패턴을 따르고, 모든 요청을 받는 전면 컨트롤러(서블릿)을 Dispatcher Servlet이라고 부른다. 

 

개발자는 Servlet 를 다루기 위한 내용들을 Spring MVC, Dispatcher servlet 에게 맡기고 개별 처리 로직, Handler 개발에 더 집중할 수 있도록 한다. 

 

Comments