본문 바로가기
IT/Knowledge

Dispatcher Servlet 이란? (feat. FrontController 패턴)

by 성준하이 2024. 1. 18.
반응형

Dispatcher 을 직역하면 동사로 보내다 라는 의미를 담고 있다.

 

그전에 앞서서 FrontController 패턴에 대해서 잠깐 알고 가야한다.

 

 

Front Controller

 

다른 자바 패턴들을 공부할때 나왔던 이름이 아니라서 생소할순 있지만,

FrontController 패턴은 

사용자의 요청을 Servlet 에 전달하기 위해 web.xml 에 Servlet 을 등록하고 mapping 하는 과정을 진행하게 된다.

그럴때마다 수많은 요청을 계속해서 올때마다 이 mapping 작업을 해야하기에 이때 FrontController 패턴이 생겨났다.

 

Front controller 는 각 요청에 맞는 컨트롤러를 찾아서 호출을 시킨다.

만약 그게 url일수도 있고 메서드일수도 있고 다양하다.

 

아래 그림을 보면

 

클라이언트가 만약 front controller 가 없었다면 각 controller 로 가기 위해서는 각각의 controller를 통해서 갔어야할텐데 

그림처럼 중간 다리 bridge 역할을 만들어주면서 패턴이 생겨나게 되었다.

 

다시 본론으로 돌아와

Dispatcher Servlet 은 Spring framework 에서만들어둔 Front Controller 패턴으로 이해하면 된다.

 

그럼 흐름을 보면

  1. 사용자가 서버로 요청을 한다.
  2. 서버에서는 처음 dispatcher servlet 에서 받아서 분기 처리를 한다.
  3. 분기 처리된 요청을 각 호출에 맞는 controller 로 연결되어 호출이 된다.
  4. 결과를 return해준다.

의 순서가 된다.

반응형

'IT > Knowledge' 카테고리의 다른 글

샤딩(Sharding) 이란?  (21) 2024.02.04
파티셔닝 이란?  (22) 2024.01.24
SPA / MPA 에 대해서  (23) 2024.01.16
HTTP Method (종류 및 상태코드)  (24) 2024.01.12
Service Mesh 란?  (34) 2024.01.09

댓글