Spring MVC - DispatcherServlet 이란?

devdo·2024년 11월 13일
0

Spring

목록 보기
5/11
post-thumbnail

DispatcherServlet에 대해 자세히 정리해봅니다.

DispatcherServlet이란?

DispatcherServlet은 Spring 프레임워크의 핵심 구성 요소 중 하나로, 프론트 컨트롤러(Front Controller) 패턴을 구현한 서블릿입니다. 이 서블릿은 애플리케이션의 모든 요청을 받아서 적절한 핸들러로 전달하고, 응답을 생성하는 중요한 역할을 합니다.


주요 역할 및 기능

요청 수집 및 분배: DispatcherServlet은 애플리케이션으로 들어오는 모든 HTTP 요청을 수집합니다. 그리고 요청을 적절한 컨트롤러나 핸들러로 전달합니다.

  • 핸들러 매핑: 요청 URL과 매칭되는 핸들러(컨트롤러)를 찾습니다. 이를 위해 핸들러 매핑(Handler Mapping) 전략을 사용합니다.

  • 핸들러 어댑터: 찾은 핸들러가 요청을 처리할 수 있도록 핸들러 어댑터(Handler Adapter)를 통해 중재 역할을 합니다.

  • 뷰 리졸버(View Resolver): 핸들러가 처리한 결과를 바탕으로 응답할 뷰(View)를 찾습니다. 보통 JSP, 타임리프(Thymeleaf) 등의 뷰 템플릿을 사용합니다.

  • 응답 반환: 최종적으로 뷰를 렌더링하여 클라이언트에게 응답을 반환합니다.

☑️ 그럼 REST Controller 를 통해 REST API를 만들때도 DispatchServlet을 사용했던 거에요?

네! Spring MVC 애플리케이션에서는 모든 HTTP 요청이 DispatcherServlet을 통해 처리되기 때문에 REST Controller 역시 예외가 아니에요!


작동 흐름

  • 클라이언트 요청: 클라이언트가 URL을 통해 애플리케이션에 요청을 보냅니다.

  • DispatcherServlet 수신: 모든 요청은 DispatcherServlet에 의해 수신됩니다.

  • 핸들러 매핑: DispatcherServlet은 URL과 매칭되는 적절한 컨트롤러를 찾습니다.

  • 핸들러 실행: 핸들러 어댑터를 통해 찾은 컨트롤러가 요청을 처리합니다.

  • 뷰 리졸버: 처리 결과를 바탕으로 뷰를 결정하고 렌더링합니다.

  • 응답 반환: 최종적으로 렌더링된 뷰를 클라이언트에게 응답으로 반환합니다.


요약

간단히 말해, DispatcherServlet은 Spring MVC 애플리케이션의 중심에서 모든 요청을 처리하고 응답을 조정하는 핵심 역할을 합니다. 이를 통해 개발자는 각 요청에 대한 로직을 쉽게 관리하고 구현할 수 있습니다

profile
배운 것을 기록합니다.

0개의 댓글