• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

필터 질문 드립니다.

21.09.21 23:59 작성 조회수 218

0

스프링에서는 필터말고 인터셉터라는 기능도 제공하는 것으로 알고 있는데 

인터셉터가 더 제공하는 기능이 많고 편리하다고 하더라구요. 

필터와 인터셉터중에 어ㄷ느 것을 사용할 지는 그냥 개발하는 사람의 선택인가요?

답변 2

·

답변을 작성해보세요.

2

안녕하세요, 이도원입니다. 

스프링에서 공통된 처리를 위해 Filter, Interceptor, AOP를 사용하실 수 있습니다. 이들은 실행되는 순서 및 위치에 따라 용도가 달라지게 됩니다. Interceptor와 Filter는 Servlet 단위에서 실행되면, AOP는 Spring 내에서 Proxy 형태로 실행됩니다. 실행 순서도 아래의 이미지와 같이 Filter가 가장 바깥쪽에 위치하고 AOP가 가장 안쪽에 위치합니다. Filter는 Request/Response에 대해 필요한 처리를 할 수 있으며, Interceptor는 Request에 대한 사전처리와 사후처리를 담당할 수 있습니다. 말씀하신 것 처럼 서로 처리할 수 있는 업무가 비슷할 수 있지만, 요청에 대한 자체를 필터링 하는 것과 요청을 처리하면서 필요한 사전 작업과 또는 사후 작업을 처리하는 것은 다른 용도로 구분할 수 있습니다. 예를 들어, 어떤 요청 중 유료 회원에 대한 요청만 처리하도록 Filter를 거친 다음, 요청 처리가 끝난 다음, 공통된 로그를 출력하는 작업을 (사후 작업) Interceptor에서 처리할 수 있을 것 같습니다. 

https://www.baeldung.com/spring-mvc-handlerinterceptor-vs-filter

감사합니다. 

wisehero님의 프로필

wisehero

질문자

2021.09.22

감사합니다. 도원님 좋은 강의 잘 듣고 있습니다. 혹시 깃허브 코드 말고 

강의 내용을 정리한 pdf 파일이나 강의하실 때 사용하시는 ppt를 배포하실 계획이 있으신 지 여쭙고 싶습니다.

0

tree님의 프로필

tree

2022.01.12

해당 강의에서 사용하는 SimpleBeanPropertyFilter는 jackson 라이브러리가 응답을 만드는 과정에서 사용하는 객체로 이름이 필터로 끝나지만 질문자님이 궁금해하시는 필터와는 다른 개념이 아닌가요 ??