1. 클라이언트 요청 수신 및 핸들러 결정

상위 맥락

03. Request Response Cycle < 02. MVC 아키텍처와 요청 흐름 < 01. Spring MVC1 기초와 아키텍처 < MVC < Spring < Web

핵심 정리

Spring MVC의 Request-Response Cycle은 클라이언트 요청이 DispatcherServlet으로 들어오면서 시작됩니다. 이 첫 단계의 핵심은 요청을 중앙에서 받고, 어떤 핸들러가 처리할지 결정하는 것입니다.

처리 흐름

  1. 클라이언트가 HTTP 요청을 보냄.
  2. DispatcherServlet이 요청을 가장 먼저 수신합니다.
  3. DispatcherServlet이 HandlerMapping에게 적절한 핸들러를 문의합니다.
  4. HandlerMapping이 URL, HTTP 메서드, @RequestMapping 정보를 기준으로 핸들러를 찾습니다.
  5. DispatcherServlet이 해당 핸들러를 실행할 HandlerAdapter를 준비합니다.

설계적 의미

DispatcherServlet은 프론트 컨트롤러로서 요청의 단일 진입점을 제공합니다. 그러나 직접 컨트롤러를 선택하거나 실행하지 않고, HandlerMapping과 HandlerAdapter에게 책임을 나눕니다.

이 구조는 검색과 실행을 분리합니다.

  • HandlerMapping: 누가 처리할지 결정합니다.
  • HandlerAdapter: 어떻게 실행할지 담당합니다.

이 분리 덕분에 스프링 MVC는 @Controller뿐 아니라 다양한 핸들러 타입을 지원할 수 있습니다.

AOP와 연결되는 의미

HandlerMapping이 반환하는 컨트롤러는 스프링 컨테이너가 관리하는 빈입니다. 따라서 AOP가 적용된 경우 실제 객체가 아니라 프록시 객체일 수 있습니다. DispatcherServlet과 HandlerAdapter를 통한 호출은 외부 호출이므로, 프록시 기반 AOP가 동작하기 좋은 구조가 됩니다.

한 문장 요약

요청 수신 및 핸들러 결정 단계는 DispatcherServlet이 요청을 받고 HandlerMapping을 통해 처리 대상을 찾는 Spring MVC 라우팅의 출발점입니다.

핵심 연결

AOP, 프록시, DispatcherServlet, HandlerMapping, HandlerAdapter와 함께 읽으면 좋습니다.