inblog logo
|
DailyCoding
    Spring Boot

    12-5. Filter vs Interceptor vs AOP

    박은서's avatar
    박은서
    Feb 24, 2026
    12-5. Filter vs Interceptor vs AOP
    Contents
    1. Filter vs Interceptor vs AOP1️⃣ Filter2️⃣ Interceptor3️⃣ AOP (Aspect Oriented Programming)4️⃣ 핵심 차이점 비교5️⃣ 언제 무엇을 써야 할까?
    스프링의 3가지 관문(AOP, Filter, Interceptor).pdf
    3.8 MiB

    1. Filter vs Interceptor vs AOP

    1️⃣ Filter

    1) 개념

    • Servlet 스펙에 포함된 웹 컴포넌트
    • HTTP 요청/응답을 서블릿 진입 전·후에 가로챔
    • Spring과 무관하게 컨테이너(Tomcat 등) 레벨에서 동작

    2) 동작 위치

    Client ↓ Filter ↓ DispatcherServlet ↓ Controller

    3) 주요 특징

    • 모든 요청에 대해 동작 (정적 리소스 포함 가능)
    • HttpServletRequest / Response 직접 접근 가능
    • Spring Bean이 아님 (단, DelegatingFilterProxy로 연동 가능)

    4) 대표 사용 사례

    • 인증/인가 (JWT, 세션 검사)
    • CORS 처리
    • 인코딩 설정
    • XSS 필터링
    • 공통 Request/Response 래핑

    5) 핵심 인터페이스

    javax.servlet.Filter

    2️⃣ Interceptor

    1) 개념

    • Spring MVC에서 제공하는 요청 가로채기 기술
    • Controller 실행 전·후, View 렌더링 이후에 개입 가능

    2) 동작 위치

    Client ↓ Filter ↓ DispatcherServlet ↓ Interceptor ↓ Controller

    3) 주요 특징

    • Spring Context 내부에서 동작 (Spring Bean)
    • Controller 단위로 세밀한 제어 가능
    • HandlerMethod 정보 접근 가능
    • 정적 리소스는 기본적으로 제외

    4) 주요 메서드

    preHandle() // Controller 실행 전 postHandle() // Controller 실행 후 afterCompletion() // View 렌더링 후

    5) 대표 사용 사례

    • 로그인 체크
    • 권한 검사 (Role 기반)
    • 요청별 로깅
    • Locale, TimeZone 처리
    • 공통 모델 데이터 주입

    3️⃣ AOP (Aspect Oriented Programming)

    1) 개념

    • 비즈니스 로직과 공통 관심사(Cross-cutting Concern) 분리
    • 메서드 실행을 프록시 기반으로 가로챔

    2) 동작 위치

    Controller / Service / Repository ↳ Proxy ↳ Aspect

    3) 주요 특징

    • HTTP 개념과 무관
    • 메서드 호출 단위로 동작
    • Spring Bean에만 적용 가능
    • Pointcut 표현식으로 매우 정밀한 대상 지정 가능

    4) 대표 사용 사례

    • 트랜잭션 관리 (@Transactional)
    • 로깅
    • 성능 측정
    • 예외 처리
    • 보안 체크

    5) 주요 어노테이션

    @Aspect @Before @After @Around

    4️⃣ 핵심 차이점 비교

    구분
    Filter
    Interceptor
    AOP
    표준
    Servlet Spec
    Spring MVC
    Spring AOP
    동작 레벨
    웹 컨테이너
    DispatcherServlet
    메서드
    HTTP 의존성
    O
    O
    X
    적용 대상
    모든 요청
    Controller
    Spring Bean
    정적 리소스
    포함
    기본 제외
    해당 없음
    실행 시점
    가장 앞단
    Controller 전/후
    메서드 호출 시
    접근 정보
    Request/Response
    Handler, Model
    Method, Args
    주요 용도
    공통 웹 처리
    요청 흐름 제어
    비즈니스 관심사

    5️⃣ 언제 무엇을 써야 할까?

    ✔ Filter가 적합한 경우

    • Spring 진입 이전에 처리해야 할 로직
    • 인증 토큰 파싱
    • CORS / Encoding / 보안 헤더

    ✔ Interceptor가 적합한 경우

    • Controller 기준 공통 처리
    • 로그인 여부 검사
    • 권한/메뉴 접근 제어
    • 요청 단위 로깅

    ✔ AOP가 적합한 경우

    • 비즈니스 로직 공통화
    • 트랜잭션, 로깅, 성능 측정
    • 서비스/레포지토리 계층 관심사 분리
    Share article
    Contents
    1. Filter vs Interceptor vs AOP1️⃣ Filter2️⃣ Interceptor3️⃣ AOP (Aspect Oriented Programming)4️⃣ 핵심 차이점 비교5️⃣ 언제 무엇을 써야 할까?

    DailyCoding

    RSS·Powered by Inblog