반응형

HandlerAdapter 3

3편. HandlerMapping과 HandlerAdapter - Controller는 어떻게 선택되는가?

DispatcherServlet이 모든 HTTP 요청의 진입점이라는 사실을 이해했다면, 다음으로 궁금해지는 것은 Spring이 수많은 Controller 중에서 어떤 기준으로 하나를 선택하고, 어떤 방식으로 실행하는가이다.이 역할을 담당하는 핵심 구성 요소가 HandlerMapping과 HandlerAdapter다.이 글에서는 이 두 컴포넌트가 Spring Web MVC 요청 처리 과정에서 어떤 책임을 가지고 협력하는지 정리한다.1. 역할 분리가 필요한 이유HTTP 요청을 처리하기 위해서는 크게 두 단계가 필요하다.이 요청을 처리할 대상은 누구인가?그 대상을 어떤 방식으로 실행할 것인가?Spring Web MVC는 이 두 책임을 HandlerMapping과 HandlerAdapter로 명확하게 분리한다...

2편. DispatcherServlet - 요청은 어디서 시작되는가?

Spring Web MVC에서 모든 HTTP 요청은 DispatcherServlet을 통해 처리된다. Controller가 직접 요청을 받는 것처럼 보이지만, 실제로는 DispatcherServlet이 요청의 시작점이자 중심이다.이 글에서는 DispatcherServlet이 어떤 역할을 하는지, 그리고 HTTP 요청이 들어온 뒤 어떤 순서로 처리되는지를 Spring 공식 문서의 흐름에 따라 정리한다.1. DispatcherServlet의 정체DispatcherServlet은 Spring Web MVC의 핵심 구성 요소로, Front Controller 패턴을 구현한 서블릿이다.Front Controller 패턴이란, 모든 요청을 하나의 진입점에서 받아 공통 처리 로직을 거친 뒤 적절한 핸들러로 위임하는 ..

[Spring 공식문서 정리] 14. HandlerAdapter는 왜 필요한가 – 실행 전략의 분리

13편에서는 HandlerMapping이 요청 정보를 기준으로 어떤 컨트롤러가 이 요청을 처리할지 결정하는 과정을 살펴봤습니다.하지만 컨트롤러를 “찾았다”고 해서 곧바로 메서드를 실행할 수 있는 것은 아닙니다.찾은 컨트롤러를 어떤 방식으로 실행해야 할까? 이 질문에 대한 Spring MVC의 해답이 바로 HandlerAdapter입니다.1. HandlerAdapter의 역할HandlerAdapter는 한 문장으로 정리할 수 있습니다.HandlerMapping이 선택한 핸들러를 실제로 실행할 수 있게 “연결”해주는 역할 즉,누가 처리할지는 HandlerMapping어떻게 실행할지는 HandlerAdapter로 역할이 명확히 분리되어 있습니다.2. 왜 DispatcherServlet이 직접 실행하지 않을까D..

반응형