AOP는 IoC/DI , 서비스 추상화와 함께 스프링의 3대 기반 기술 중 하나이다. 스프링이 DI를 사용하는 이유가 무엇이었나 한번 생각을 해보자. 만약 Client쪽에서 어떠한 클래스를 직접 참조하게 되면 그 클래스의 비즈니스 로직을 수정이 수정되면 client쪽 서비스가 정상 작동하지 않을 수 있다. 그렇기 때문이 이 두 오브젝트의 결합도를 낮추기 위해 인터페이스를 사용하여 의존관계를 주입해주고, 오브젝트간의 결합도를 낮춘다고 했다. AOP에서도 이러한 DI가 중요하게 사용되는데, 기존에 Client가 UserService라는 객체를 직접 참조했다고 가정해보자. 이는 강한 결합도를 띄고 있는 상태이므로 Client