우선 스프링 공식 래퍼런스에는, AOP를 설명하기 위해 '프록시'라는 단어를 사용하고 있다. 프록시란, 간단히 추상적으로 설명하자면, 핵심기능을 제외한 공동의 기능을 한데 묶어서 코드의 변경 없이 사용할수 있도록 만든 클래스이다. 이런 말로하면 이해가 잘 되지 않을테니, 코드로서 설명하겠다. 우선, 정수 num이 주어졌을때, num의 팩토리얼을 를 구하는 기능을 가진 클래스를 2개 만들어 보자. 그런데 다형성을 사용하여 프록시를 통한 공통의 기능을 구현해야 하니, Calculator라는 인터페이스를 만들어서 상속시키자. public interface Calculator { public long factorial(long num); } 다형성 사용을 위해서 인터페이스를 만들어줌. public class I..