[Spring] Filter, Interceptor 그리고 AOP
개요프로그램을 개발할 때 공통적인 기능(예: 로깅, 인증, 트랜잭션 관리)을 분리하여 코드의 유지보수성을 높이는 개념이관심사 분리(Separation of Concerns, SoC)입니다. 예를 들어, 로그를 출력하기 위해 객체의 메소드 내부에 직접 로깅 코드를 추가할 수 있지만,이 방식은 모든 객체에서 중복된 로직을 반복적으로 작성해야 하는 문제가 있습니다. 또한, 세션 관리, 트랜잭션 처리, 인증/인가(Authorization) 체크 등 다양한 공통 기능도 동일한 문제를 가지며,이러한 코드가 객체 내부에 쌓이면 핵심 비즈니스 로직보다 보일러 플레이트 코드가 많아지는 문제가 발생합니다. 이를 해결하기 위해 Spring에서는 Filter, Interceptor, AOP를 통해 관심사를 분리할 수 있도록 ..