먼저 AOP를 자바만으로 구현해본다. 이전 OOP 단계에서는 아래와 같이 로그나 보안등의 부수적인 코드가 주 코드와 함께 존재한다
이를 주 업무 코드는 Core Concern, 부 업무 코드는 Cross-cutting Concern으로 분리한다.
이후 proxy라는 개념을 도입하는데 프락시를 통해 Cross-cutting Concern을 구현한다. 추가로 기존 메소드에 proxy를 통한다는 것을 명시해주면된다.
전체적인 코드는 다음과 같이 작성한다.