본문 바로가기
기타 CS

기술 면접 준비 - Dispatcher Servlet (디스패처 서블릿)

by 밝지 2023. 2. 27.
728x90
반응형

 

스프링 MVC(모델-뷰-컨트롤러)구조에서 Dispatcher Servlet (디스패처 서블릿)은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러입니다. 

 

  1. 클라이언트에서 요청이 오면 톰캣과 같은 서블릿 컨테이너가 요청을 받는다.
  2. 서블릿 컨테이너가 받는 요청은 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받는다. 
  3. 디스패처 서블릿은 공통 작업 처리 후에 해당 요청을 적합한 컨트롤러에 작업 위임 한다. 

 

 

디스패처 서블릿의 장점

이전에는 서블릿을 URL에 매핑하기 위해서는 web.xml에 모두 등록을 해주어야 했지만, 디스패처 서블릿이 해당 애플리케이션에 들어오는 모든 요청을 핸들링해주고 공통 작업을 처리해주면서 그럴 필요가 없어습니다. 컨트롤러를 구현하기만 하면 디스패처 서블릿이 알아서 적합한 컨트롤러로 위임해주는 구조가 되었습니다.

 

 

반응형

 

 

디스패처 서블릿이 정적 자원을 처리하는 방법

  • 정적 자원 요청과 애플리케이션 요청을 분리하는 방법

        예) /apps 로 접근하면 디스패처 서블릿이 담당, /resources 로 접근하면 담당 X

        하지만 이런 방식은 코드가 지저분해지고 직관적인 설계가 불가능하다.

  • 애플리케이션 요청을 탐색하고 없으면 정적 자원 요청으로 처리하는 방법 👍

        디스패처 서블릿이 요청을 처리할 컨트롤러를 먼저 찾고, 해당하는 컨트롤러가 없는 경우에 2차적으로 설정된 자원의 경로를 탐색하는 방법. 이렇게 분리하면 리소스 관리를 효율적으로 할 수 있고, 학장에도 용이하다. 

 

 

 

디스패처 서블릿의 동작 과정

  1. 클라이언트의 요청을 디스패처 서블릿이 받음
  2. 요청을 위임할 컨트롤러를 찾음
  3. 요청을 컨트롤러로 위임할 핸들러 어댑터를 찾아서 전달함
  4. 핸들러 어댑터가 컨트롤러로 요청을 위임함
  5. 컨트롤러에서 비즈니스 로직을 처리함
  6. 컨트롤러가 값을 리턴함
  7. 핸들러 어댑터가 리턴값을 처리함
  8. 서버의 응답을 클라이언트로 반환함

 

 

 

 

 

 

728x90
반응형