September
12th,
2021
Filter, Interceptor, AOP의 차이점
Filter
- 서블릿 2.3 규약에 새롭게 추가되었음
- HTTP 요청과 응답을 변경할 수 있는 재사용 가능한 코드
- 객체의 형태로 존재
- 클라이언트로 부터 오는 요청과 최종자원(서블릿/JSP 등) 사이에 위치
Filter Chain
- 여러개의 필터가 존재
- 필터를 거쳐서 나오는 요청은 다음 필터의 요청으로 본다
- 응답도 마찬가지로 필터를 거친 응답이 다음 필터에서 처리된다
Interceptor
- 컨트롤러에 들어오는 HttpRequest와 응답하는 HttpResponse를 가로채는 역할
- 쿠키, 세션 등의 용도로 사용한다
AOP
- 관점 지향 프로그래밍을 말함(Aspect Oriented Programming)
- 객체지향 프로그래밍에서 중복부분을 줄이기위해 종단면 관점에서 바라보면서 처리
- 메소드의 실행전, 실행후, 실행중 등 시점에 따라 수행함
셋의 차이
유형 | Filter | Interceptor | AOP |
---|---|---|---|
호출 시점 | DispatcherServlet이 실행되기 전 | DispatcherServlet이 컨트롤러를 호출하기 전 | 특정 메소드 시점 전후에 사용 |
구현 방식 | 보통 web.xml에 등록 | servlet-context에 등록 | servlet-context에 등록 |
용도 | 인코딩 변환, XSS 방어 등 | 로그인 체크, 권한 체크, 실행시간 계산작업 등 | 로깅, 트랜잭션, 에러처리 등 |
출처
[갓대희의 작은공간 :: Spring] Filter, Interceptor, AOP 차이 및 정리 (tistory.com)
[Spring] Interceptor (1) - 개념 및 예제 :: victolee (tistory.com)
[[Spring]필터(Filter)란 무엇인가 | 두발로걷는개 (twofootdog.github.io)](https://twofootdog.github.io/Spring-%ED%95%84%ED%84%B0(Filter)%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80/) |