이번 포스팅에서는 Spring의 3대 요소 중 하나인 AOP에 대해서 다룹니다. AOP를 이해하기 위해서는 프록시라는 개념을 알아야 합니다. 프록시란 핵심 기능의 실행은 다른 객체에 위임하고 부가적인 기능을 제공하는 객체입니다. 실제로 핵심 기능을 실행하는 객체는 대상 객체입니다. 쉽게 말하자면 은행에서 입출금 기능을 구현한다고 가정해 보겠습니다. 대상 객체: 입출금의 기능 구현 (핵심 기능) 프록시 객체: 대상객체를 생성해 로깅, 보안 검사, 캐싱 같은 부가적인 기능 구현 AOP의 핵심은 프록시처럼 공통 기능과 핵심 기능의 구현을 분리하는 것입니다. AOP란 Aspect Oriendted Programming의 약자로 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 ..