🍃 스프링

🍃 스프링

[Spring] 필터와 인터셉터의 차이 (Filter, Interceptor)

🟧 01. 필터(Filter)와 인터셉터(Interceptor) Filter와 Interceptor는 위치부터 차이가 있다. Filter는 서블릿 컨테이너(Servlet Container)가 관리하고 Interceptor는 스프링 컨테이너(Spring Container)가 관리하고 있다. 클라이언트의 요청이 들어왔을 때 DispatcherServlet에 들어가기 전과 들어간 후로 Filter와 Interceptor가 작업을 처리하는 것을 볼 수 있다. Filter와 Interceptor는 무슨 일을 하고 있으며 어떻게 사용할 수 있을지 알아보자. 🟧 02. 필터(Filter)는 어떻게 이용되고 있을까 ? 그림에서 볼 수 있듯이 필터(Filter)는 서블릿 컨테이너(Servlet Container)에서 관..

🍃 스프링

[Spring] 필터(Filter)란 뭘까?

🟧 01. 필터(Filter) 란? 필터(Filter)는 디스패처 서블릿에 요쳥이 전달되기 전/후로 작업을 처리해주는 기능이다. 그림을 보면 알 수 있듯이 스프링 컨테이너가 필터를 관리하지 않고 웹 컨테이너가 관리하고 있다. jakarta.servlet.Filter가 들어있는 것을 확인할 수 있다. 사실 필터를 봤을 때 궁금한 점이 많았다. 🤔 필터는 어디서 어떻게 사용하고 있는걸까 ? 인터셉터와 차이가 무엇이 있을까 ? 이제부터 하나하나 알아가보자. 🟧 02. 필터로 전/후로 작업을 처리하는게 뭐가 있을까 ? 먼저 필터가 연쇄적으로 동작할 수 있게 이루어져 있다는 것을 알고 진행하는 편이 좋을거 같다. 이 개념은 필터 체인(FilterChain)을 통해서 알 수 있고 간단하게 그림만 보고 넘어가자. 필..

🍃 스프링

[Spring MVC] 디스패처 서블릿(DispatcherServlet) 둘러보기

스프링을 사용하면 기본적으로 알아야할 DispatcherServlet에 대해서 알아보겠습니다. 🟧 01. 디스패처 서블릿 (DispatcherServlet)에 대해서 Spring MVC와 같은 많은 웹 프레임워크들은 Front Controller Pattern을 중심으로 설계됐다. DispatcherServlet은 요청 처리에 대한 알고리즘을 제공하고 있다. 즉, Http Protocol로 오는 모든 요청을 적절한 컨트롤러에게 위임해주는 프론트 컨트롤러(Front Controller)가 DispatcherSevlet이다. 🟧 02. 프론트 컨트롤러 (Front Controller)가 뭔데 ? 과거에는 클라이언트가 요청을 보내면 각 요청에 맞는 컨트롤러에서 처리한다. 때문에 공통 로직이 중복되는 단점이 있..

🍃 스프링

[Spring MVC - Exception] @ExceptionHandler와 ExceptionHandlerExceptionResolver로 예외 처리하기 (1/2)

스프링에서 예외 처리하기 위해서 @ExceptionHandler 어노테이션을 자주 사용했습니다. 컨트롤러A에 @ExceptionHandler와 @ControllerAdvice를 이용하면 다른 컨트롤러B, C에서 일어난 예외를 잡을 수 있었습니다. 이뿐만 아니라 @ResponseStatus, TypeMismatchException, 에러 페이지 렌더링, ... 등의 기능이 있었습니다. 이게 과연 어떻게 가능한걸까요 ? 🤔 검색해봤을 때 HandlerExcpetionResovler 인터페이스를 알게 되었습니다. 하나하나 알아볼까요 ? 🟧 01. Resolvers 예외 처리기 등록 Spring configuration에서 예외 처리기인 여러 HandlerExceptionResolver을 빈 체이닝으로 선언한다..

🍃 스프링

[Spring MVC - ArgumentResolver] ArgumentResolver를 이용해서 컨트롤러 메서드의 파라미터 받기

ArgumentResolver 🟧 01. ArgumentResolver와 HandlerMethodArgumentResolver ArgumentResolver는 Spring MVC에서 Controller에 들어온 HTTP Request를 가공하여 메서드의 파라미터 타입으로 만드는 역할이다. 이러한 ArgumentResolver는 HandlerMethodArgumentResolver를 줄여서 부른다. 🟧 02. HandlerMethodArgumentResolver 이 뭔데 ? HandlerMethodArgumentResolver는 스프링 프레임워크가 제공하는 인터페이스이다. @RequestParam, @ModelAttribute, @PathVariable, @RequestParam, ...와 같은 어노테이션..

hyena0608
'🍃 스프링' 카테고리의 글 목록