공간정보아카데미

Filter vs Interceptor vs AOP

minjava 2025. 9. 6. 21:54

 

Interceptor vs AOP vs Spring Filter 모두 공통 기능을 끼워넣는 기술이라 헷갈려서 쓰는 글임 ~-~

동작 시점, 범위, 사용 목적이 다르다고 한다.

 

Filter (비유 : 건물 입구 보안 게이트)

- 웹 애플리케이션 전역 / 서블릿, 정적자원까지 포함해서 가로 챔

- DispatcherServlet 진입 전 후 / 서블릿 컨테이너 레벨에서 동작 / 즉, 스프링 MVC에 들어오기 전에 요청 응답 가로챔

- 스프링 밖의 자원 JSP, 이미지, CSS, JS 등 모든 요청, 응답

- 주로 인코딩 처리(UTF-8), 보안(권한 체크), CORS 설정, XSS 필터링, 공통헤더 추가 등에 사용

 

Interceptor (사무실 문 앞 보안 체크)

- 스프링 MVC 컨트롤러 전용 가로채기

- DispatcherServlet과 Controller 사이에서 동작 / preHanle 컨트롤러 실행 전, postHandle 실행 후, afterCompletion 뷰 렌더링 후 제어 가능

- 스프링 MVC 컨트롤러로 들어오는 요청만 적용 (정적 리소스 제외)

- 주로 로그인 세션 체크, 권한 검사, 실행 시간 측정, 로깅, 공통 데이터 모델 추가 등에 사용

 

AOP (회의실 안 누군가가 말할 때 자동으로 녹음기 작동)

- 스프링 Bean 메서드 호출 자체를 가로채서 공통 기능 삽입

- 스프링 컨테이너가 관리하는 Bean 메서드 실행 전후 동작

- 프록시 패턴 기반 (메서드 호출을 가로챔.)

- 스프링 빈 (주로 Service, Repository 계층) 에서만 동작

- 주로 트랜잭션 관리, 로깅, 성능 모니터링, 공통 예외 처리, 보안 체크 등에 사용

실행 순서 : Filter - Intercepotr - AOP - Interceptor - Filter

'공간정보아카데미' 카테고리의 다른 글

Spring - Bean 주입 / XML vs JavaConfig  (0) 2025.09.06
Spring Boot - REST API  (0) 2025.09.06
Spring AOP - LogAdivce 구현 예제  (0) 2025.09.06
MyBatis - Logging  (0) 2025.09.04
Spring MVC  (0) 2025.09.03