AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)은 스프링에서 DI와 더불어 매우 중요한 개념중 하나이다. AOP는 절차지향이나 객체지향 프로그래밍처럼 그 자체로 하나의 프로그램을 형성할 수 있는 건 아니고, AOP는 객체지향 코드 위에서 이루어지며 객체지향을 보조하는 역할을 한다고 보면 될 것 같다. AOP의 등장배경 처음 프로그래밍 언어가 생겨나고 프로그램이 생기기 시작했을 때 그 규모는 매우 작은 규모였다. 단순한 식을 계산한다던가 하는 것이 많았다. 이 때 사용한 프로그래밍 방식이 절차지향 프로그래밍이다. 절차지향은 매우 직관적 형태를 가진다. 실행 시 위에서부터 아래로 코드가 실행된다. 프로그램의 규모가 매우 작았기 때문에 코드를 효율적으로 작성하는 방식의 필요성..