반응형

Controller 3

4편. ArgumentResolver와 HttpMessageConverter - 파라미터는 어떻게 주입되는가?

Spring Web MVC의 Controller 메서드를 보면, 요청 데이터가 별다른 코드 없이도 메서드 파라미터로 자연스럽게 전달되는 것처럼 보인다.@PathVariable, @RequestParam, @RequestBody 같은 어노테이션이 자동으로 동작하는 이유는, Spring Web 내부에서 ArgumentResolver와 HttpMessageConverter가 역할을 나누어 처리하기 때문이다.이 글에서는 요청 데이터가 Controller 메서드의 파라미터로 변환되는 전체 과정을 두 컴포넌트 중심으로 정리한다.1. Controller 메서드 파라미터는 누가 채우는가?HandlerAdapter가 Controller를 실행할 때, 가장 먼저 해결해야 할 문제는 다음이다.이 메서드의 파라미터들은 어디서..

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

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

1편. Spring Web이란 무엇인가?

Spring Web은 Spring Framework에서 HTTP 요청을 애플리케이션 코드로 연결하는 웹 계층을 담당한다.이 글에서는 Spring Web이 무엇을 책임지는지, 그리고 Spring이 웹 요청을 처리하기 위해 어떤 구조와 실행 모델을 선택했는지를 공식 문서의 관점에서 정리한다.1. Spring Web의 역할Spring Web의 가장 핵심적인 역할은 클라이언트로부터 들어오는 HTTP 요청(Request)을 애플리케이션 내부의 코드 흐름으로 전달하고, 그 처리 결과를 다시 HTTP 응답(Response)으로 변환하는 것이다.이를 위해 Spring Web은 다음과 같은 책임을 가진다.URL과 HTTP 메서드를 기준으로 요청을 처리할 핸들러(Controller)를 선택한다요청 파라미터, 경로 변수, ..

반응형