반응형
Spring Boot에서 클라이언트의 요청이 비즈니스 로직(Service)에 도달하기까지의 흐름은 계층별로 명확히 구분됩니다. 요청은 외곽(Servlet Container)에서 시작하여 중심(AOP)으로 들어가는 구조입니다.
1. 요청 처리 흐름 도식화
클라이언트의 요청이 들어오고 나가는 전체적인 흐름은 아래와 같습니다.
| 순서 | 구성 요소 | 소속 레이어 | 특징 |
| 1 | Filter (필터) | Web Container | DispatcherServlet 도달 전/후 동작 |
| 2 | Interceptor (인터셉터) | Spring Context | DispatcherServlet과 Controller 사이 동작 |
| 3 | AOP (Aspect) | Spring Context | Proxy를 통해 비즈니스 로직 전/후 동작 |
2. 단계별 상세 비교 표
각 기술이 실행되는 시점과 주요 목적을 정리한 표입니다.
| 구분 | Filter (필터) | Interceptor (인터셉터) | AOP (Aspect) |
| 관리 주체 | 서블릿 컨테이너 (Tomcat 등) | 스프링 컨테이너 | 스프링 컨테이너 |
| 실행 시점 | HTTP 요청 최전방 / 최후방 | 컨트롤러 호출 전/후 | 메서드 호출 전/후 (주로 Service 레이어) |
| 접근 정보 | Request, Response (Low-level) | HttpServletRequest, Handler 등 | 메서드 파라미터, 반환값 등 |
| 주요 역할 | 인코딩, 보안(XSS), 로깅, 인증 | 로그인 체크, 권한 관리, 컨트롤러 공통 데이터 | 로깅, 트랜잭션(@Transactional), 성능 측정 |
| 예외 처리 | 서블릿 내에서 처리 불가 | 컨트롤러 예외 처리 가능 | 비즈니스 로직 예외 처리 최적화 |
3. 요약 및 흐름 이해
- Filter: 스프링 프레임워크와는 무관한 웹 애플리케이션의 공통 기능입니다. 주로 전역적인 보안이나 데이터 압축을 처리합니다.
- Interceptor: 스프링 내부로 들어온 후, 컨트롤러가 실행되기 전후에 처리됩니다. Spring MVC 구조에 특화되어 있으며, 로그인 여부 확인 등에 주로 쓰입니다.
- AOP: 객체 지향 프로그래밍(OOP)을 보완하기 위해 만들어졌습니다. 주로 비즈니스 로직(Service) 단위에서 중복되는 코드(트랜잭션 관리 등)를 분리하는 데 최적화되어 있습니다.
728x90
반응형
'IT > 프로그래밍' 카테고리의 다른 글
| Builder 와 Record 비교 (0) | 2026.03.29 |
|---|---|
| [JPA/Hibernate] IN 절 파라미터 패딩(Parameter Padding) (0) | 2026.02.06 |
| @Transactional의 동작 (0) | 2025.12.13 |
| 상태 변수 이름 state, status 차이 (0) | 2025.10.23 |
| Offset Pagination과 Cursor Pagination (0) | 2024.03.27 |