필터는 서블릿이나 정적 콘텐츠에 대한 요청 또는 응답을 필터링하는 객체이다. 필터는 doFilter 메서드에서 필터링 작업을 수행하며, 초기화 매개변수를 얻을 수 있는 FilterConfig 객체와 ServletContext에 대한 참조를 통해 필요한 리소스를 로드할 수 있다. 필터는 웹 애플리케이션의 배포 설명자에서 구성된다.
https://javaee.github.io/javaee-spec/javadocs/javax/servlet/Filter.html
Filter (Java(TM) EE 8 Specification APIs)
A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or both. Filters perform filtering in the doFilter method. Every Filter has access to a FilterConfig
javaee.github.io
필터는 웹 애플리케이션에서 요청과 응답을 처리하는 중요한 구성 요소로, 다양한 기능을 수행하며, 초기화 및 종료 메서드를 통해 생명주기를 관리한다. 필터를 통해 인증, 로깅, 데이터 변환 등 다양한 작업을 수행할 수 있다.
인터셉터는 사용자 정의 핸들러 실행 체인을 허용하는 워크플로 인터페이스이다. 애플리케이션은 특정 핸들러 그룹에 대해 기존 또는 사용자 정의 인터셉터를 원하는 수만큼 등록하여 각 핸들러 구현을 수정하지 않고도 공통적인 전처리 동작을 추가할 수 있다.
HandlerInterceptor (Spring Framework 6.2.2 API)
postHandle Interception point after successful execution of a handler. Called after HandlerAdapter actually invoked the handler, but before the DispatcherServlet renders the view. Can expose additional model objects to the view via the given ModelAndView.
docs.spring.io
인터셉터는 기본적으로 Servlet Filter와 비슷하지만, 핸들러 자체의 실행을 금지하는 옵션과 사용자 정의 사후 처리가 있는 사용자 정의 사전 처리만 허용한다. 반면, 필터는 더 강력하며 요청 및 응답 객체를 교환할 수 있다. 필터는 web.xml에서 구성되고, 애플리케이션 컨텍스트의 HandlerInterceptor에 구성된다.
인터셉터는 주석이 달린 컨트롤러 경로 매칭과 불일치할 가능성이 있기 때문에 보안 계층으로 적합하지 않다. 일반적으로 Spring Security를 사용하거나 Servlet 필터 체인과 통합된 유사한 접근 방식을 사용하고 가능한 한 일찍 적용하는 것이 좋다.
이와 같이 인터셉터는 요청 처리 과정에서 전처리 및 후처리 작업을 수행할 수 있는 유용한 도구이다.
AOP는 프로그램의 핵심 비즈니스 로직과는 별개로 공통적인 관심사를 모듈화하는 프로그래밍 패러다임이다. 이를 통해 코드의 재사용성을 높이고, 유지보수를 용이하게 하며, 코드의 가독성을 향상시킬 수 있다.
Aspect Oriented Programming with Spring :: Spring Framework
Aspect Oriented Programming with Spring :: Spring Framework
Aspect-oriented Programming (AOP) complements Object-oriented Programming (OOP) by providing another way of thinking about program structure. The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect. Aspects enabl
docs.spring.io
AOP는 공통 관심사를 모듈화하여 코드의 재사용성과 유지보수성을 높이는 프로그래밍 패러다임이다. 이를 통해 개발자는 비즈니스 로직에 집중할 수 있으며, 공통 기능은 별도로 관리할 수 있다. AOP는 특히 로깅, 보안, 트랜잭션 관리와 같은 기능을 구현하는 데 유용하다.
[CS] PRD, ERD, UCD 및 API 명세서: 제품 개발과 디자인 문서의 이해 (3) | 2025.02.02 |
---|---|
[CS] 엔터티 연관관계: 1:1, 1:N, N:M 관계의 이해와 데이터베이스 설계 (0) | 2025.02.02 |
[CS] 즉시 로딩과 지연 로딩: ORM에서의 데이터 처리 전략 (2) | 2025.02.02 |
[CS] HTTP의 기본 특징: 무상태성(Stateless)과 연결 비의존성(Connectionless) (0) | 2025.02.02 |
[CS] Hibernate의 더티 체킹과 영속성 컨테이너: 데이터베이스와의 효율적 상호작용 (1) | 2025.02.02 |