Front Controller 패턴과 spring의 DispatcherServlet

ssongkim·2021년 12월 26일
1
post-thumbnail

프론트 컨트롤러 패턴이란


다시 서블릿으로 돌아가보자. [서블릿 설명하는 이전 게시글 확인]
요청 경로마다 서블릿을 정의해주는 것은 핸들러마다 공통된 로직을 중복 작성한다는 비효율적인 측면이 있다. (공통된 로직이라 하면 한글인코딩처리 등등이 있다)
서블릿을 개별적으로 다루어 공통된 로직을 여러번 작성하지 말고 공통된 로직을 하나의 서블릿만으로 앞단에 두어 모든 클라이언트의 요청을 처리하면 어떨까

공통된 로직을 매번 작성하지 않아도 되서 개발자는 핵심 로직에만 집중할 수 있을 것이다. 이러한 디자인 패턴을 프론트 컨트롤러 패턴이라고 한다.

프론트 컨트롤러 패턴을 통해 여러 이점을 얻을 수 있다.

1. 컨트롤러를 구현할 때 직접 서블릿을 다루지 않아도 된다.
2. 공통 로직 처리가 가능하다.

우리가 스프링을 이용해 개발을 해오면서 서블릿을 직접 다룬 적이 없었던 이유도 프론트 컨트롤러 패턴을 따르기 때문이다.

스프링는 프론트 컨트롤러 패턴을 따르고 이를 DispatcherServlet이 담당한다.
DispatcherServlet은 클라이언트의 요청을 먼저 받아 필요한 처리를 한 뒤, 개발자가 구현한 요청에 맞는 핸들러에게 요청을 Dispatch하고 해당 핸들러의 실행 결과를 Response형태로 만드는 역할을 한다.

스프링MVC를 이해하기 위한 사전 배경지식을 모두 얻었다.

마무리

스프링은 프론트 컨트롤러 패턴을 따르고 이를 DispatcherServlet이 담당한다는 것을 알게 되었다. 다음은 Tomcat와 Spring MVC의 동작과정에 대해 알아보려고 한다.

참고자료

1. 우아한 테코톡
https://www.youtube.com/watch?v=2pBsXI01J6M&t=185s
https://www.youtube.com/watch?v=calGCwG_B4Y&t=2s

2. 웹프로그래밍 수업자료

profile
鈍筆勝聰✍️

0개의 댓글