개발 공부
AOP, Interceptor, Filter
이갑돌
2024. 1. 31. 19:53
AOP (Aspect-Oriented Programming)
- 개념: AOP는 관점 지향 프로그래밍으로, 애플리케이션의 핵심 로직에서 분리된 관심사( ex: 로깅, 보안, 트랜잭션 관리 등)를 모듈화하는 프로그래밍 패러다임.
- 역할: 메소드의 호출 전후, 예외 발생 등에 대한 공통 기능을 적용할 수 있다.
- 장점: 코드 중복을 줄이고, 핵심 로직과 공통 관심사를 분리하여 코드의 가독성과 유지보수성을 향상시킨다.
Interceptor
- 개념: Interceptor는 특정 코드 조각( ex: 컨트롤러 메소드)이 호출되기 전후에 추가적인 작업을 수행하는 객체.
- 역할: 주로 MVC 모델에서 컨트롤러의 액션 처리 전후에 사용되며, 로깅, 인증, 권한 검사 등에 사용.
- 장점: 특정 컨트롤러나 액션에 대한 세밀한 제어가 가능하고, 애플리케이션의 흐름을 관리할 수 있다.
Filter
- 개념: Filter는 서블릿 필터로, 요청과 응답을 처리하기 전후에 특정 작업을 수행.
- 역할: 서블릿이나 JSP가 실행되기 전후에 요청과 응답을 조작할 수 있다. ex) 인코딩 설정, 로깅, 요청의 사전 처리 등이 이에 해당.
- 장점: 어플리케이션의 전체 요청/응답 흐름에 영향을 줄 수 있으며, 서블릿 레벨에서의 전처리 및 후처리가 가능.
처리 순서
- Filter: 처음으로 요청을 가로채고, 필요한 전처리를 수행.
- Interceptor: Filter 처리 이후, 컨트롤러로 요청이 전달되기 전에 요청을 가로챈다. 이 단계에서 추가적인 처리를 할 수 있다.
- AOP: 메소드 호출의 전후, 예외 발생 시 등 메소드 레벨에서 더 세밀한 작업을 수행.