1. AOP 란 무엇일까? AOP는 Aspect Oriented Programming 을 줄인 말로, 관점 지향 프로그래밍이라 불린다. 2. AOP가 필요한 이유 프로젝트를 구현하다 보면 핵심적인 비지니스 로직 외에 부가적인 기능들을 추가해야하는 상황이 생긴다. 예를 들면, 메소드를 호출할 때마다 로그를 남긴다거나, 성능을 테스트하기 위해 메소드가 실행되는 시간을 측정하는 등 다양한 상황이 발생한다. 이런 부가기능들을 핵심 비지니스 로직에 포함할 수도 있지만, 이 경우 다양한 문제가 발생하게 된다. 1. 핵심 로직 외에 부가기능이 포함되어 코드를 파악하기 어려워진다. 부가기능이 1가지만 있다면 크게 상관이 없겟지만, 부가기능이 많아질 수록 핵심기능보다 부가기능의 코드가 더 많아지는 상황이 발생하게 된다...