spring 5

[Spring Boot] Spring의 전체 흐름 알아보기 - 5. DispatcherServlet 내부의 HandlerMapping 과 HandlerAdapter 동작 원리

앞선 글들에서 정리했다시피 DispatcherServlet에서 요청이 전달되는 흐름을 따라가다 보면 자연스럽게 ``HandlerMapping``과 ``HandlerAdapter``라는 개념을 만나게 된다. 이전 글에서는 전체 요청 흐름을 중심으로 살펴보았기 때문에 DispatcherServlet 내 코드 역시 단순히 "Handler를 실행하기 위한 Adapter를 찾는 과정" 정도로 이해하고 넘어갔을 수 있다. 실젤 ``DispatcherServlet`` 내부에서의 흐름을 살펴보면, `doService` 메서드 내에서 `doDispatch()` 라는 메서드를 호출하게된다. `doDisptach()` 메서드 내 흐름은 다음과 같다. 실행할 Handler를 찾는다. 클라이언트 요청이 들어오면 먼저 어떤..

[Spring Boot] Spring의 전체 흐름 알아보기 - 4. Servlet (HttpServlet, FrameworkServlet, DispatcherServlet)

이전 글에서는 Interceptor를 중심으로 요청 처리 흐름과 실행 구조를 살펴보았다.이를 통해 Spring MVC에서 요청이 어떻게 전·후 처리되는지 전반적인 흐름을 이해할 수 있었다. 하지만 해당 흐름을 보다 깊이 이해하기 위해서는 그 기반이 되는 Servlet에 대한 이해가 필요하다.Spring MVC는 결국 Servlet 위에서 동작하는 구조이며, DispatcherServlet을 중심으로 요청을 처리한다. 이번 글에서는 Servlet이 무엇인지 살펴보며 Spring MVC의 내부 동작 구조를 한 단계 더 깊이 이해해보려 한다. Servlet 이란 ?클라이언트의 요청을 받아 처리하고, 그 결과를 응답으로 반환하는 자바 기반의 웹 컴포넌트이다. 서블릿은 서버에서 대기하고 있다가 클라이언트 (브라우..

[Spring Boot] Spring의 전체 흐름 알아보기 - 3. Interceptor

이전 글에서는 Filter를 통해 요청이 DispatcherServlet에 도달하기 전에 어떻게 가로채지고 처리되는지 살펴보았다.Spring을 공부하다 보면 Filter와 함께 자주 등장하는 개념이 하나 더 있는데, 바로 Interceptor 이다. Interceptor 역시 요청을 가로채 처리한다는 점에서 Filter와 비슷해 보이지만,실제로는 동작 위치와 역할에서 분명한 차이를 가진다. 이번 글에서는 Interceptor가 무엇인지, 어떻게 동작하는지, 그리고 Filter와는 어떤 차이가 있는지 중심으로 살펴보려 한다. Interceptor 란 ?웹 애플리케이션 내에서 특정한 URI 호출을 가로채는 역할을 한다. Interceptor를 활용하면 기존 컨트롤러의 로직을 수정하지 않고도, 사전이나 사후..

[Spring Boot] Spring의 전체 흐름 알아보기 - 02. Filter

이전 글에서는 Spring MVC의 전체적인 요청 처리 흐름을 중심으로, 요청이 어떻게 Controller까지 전달되고, 어떤 과정을 거쳐 응답이 생성되는지에 대해 살펴보았다. 하지만 흐름을 따라가다 보니Spring MVC와 함께 자주 듣게 되는 Filter에 대해서도 공부해봐야겠다는 생각이 들었다. 또한 이전에 Figma로 그려본 Spring MVC 구조를 기준으로,이 요소가 실제로 어느 위치에서 동작하는지도 함께 정리해보고 싶었다.Filter 란 ?Servlet에 도달하기 전, 요청을 가로채 로직을 수행하는 객체를 말한다. 서버로 요청이 들어오는 경우, `Dispatcher Servlet`을 거치기 전에 요청 사항에 대한 공통 관심사를 처리하기 위한 필터 로직을 수행한다. 대표적으로 `Spring ..

[Spring Boot] Spring의 전체 흐름 알아보기 - 01. MVC 패턴과 Spring MVC 구조

Spring Boot로 웹 개발을 해보면, Controller를 만들고, API를 구현하는 과정은 생각보다 빠르게 익힐 수 있다. 하지만, 이면에서 요청이 어떤 흐름을 거쳐처리되는지, DispatcherServlet이 어떤 역할을 하는지 는 정확히 이해하지 못한 채 사용하는 경우가 많다. (특히, 나 ...... ) 그래서 휴학도 했다 ! , Spring 워크북도 하고 있다 ! 이 참에 이 과정에 대해서 깊게 정리해보려고 한다. 그 과정에서 가장 먼저 짚고 넘어가야 할 개념이 바로 MVC 패턴이다.MVC는 단순히 Spring MVC에서만 사용하는 개념이 아니라, Spring을 처음 공부할 때 반드시 이해하고 넘어가야 하는 핵심 개념이다. 이번 글에서는 Spring MVC의 흐름을 이해하기 위한 첫 단계로..