(spring) Filter, Interceptor, AOP 차이와 DispatcherServlet(간단간단)

전성영·2022년 8월 11일
0

spring

목록 보기
28/31

면접 준비를 하고있다.
진짜 엄청 많이 부족하다는 것을 느꼈고, 그 중에서 하나를 정리해보려고 한다.

웹 개발을 하다보면 비즈니스 로직 앞, 뒤로 공통적으로 처리해야 될 기능들이 존재한다. ex) 로그, 인증, 인가 등등

공통으로 빼서 따로 관리를 하는 것이 AOP라고 생각했다.

하지만 Filter와 Interceptor도 있다는 것을 알게 되었고, 그 부분을 정리하려고한다!!

보시는 것과 같이 호출되는 시점이 다르다.

DispatcherServlet이란?
HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러이다.

Filter는 DispatcherServlet이 실행되기 전에 수행이 된다.
일반적으로 스프링과 무관하게 전역적으로 처리해야 하는 작업들을 처리할때 사용한다고 한다.

  • 보통 web.xml에 등록한다.

Interceptor는 스프링의 DistpatcherServlet이 컨트롤러를 호출하기 전, 후로 끼어들기 때문에 스프링 컨텍스트(Context, 영역) 내부에서 Controller(Handler)에 관한 요청과 응답에 대해 처리한다.

  • 스프링의 모든 빈 객체에 접근 할 수있다.

AOP객체 지향의 프로그래밍을 했을 때 중복을 줄일 수 없는 부분을 줄이기 위해 사용한다.

  • '로그', '트랜잭션', '에러 처리'등 비즈니스단의 메서드에서 조금 더 세밀하게 조정하고 싶을 때 사용한다.

filter는 웹 컨테이너에서 관리가 되고 Interceptor는 스프링 컨테이너에서 관리가 된다!!

profile
Slow and Steady

0개의 댓글