Spring


Target - 핵심 기능이 구현된 객체, 공통 관심사항이 적용될 대상 객체
Join Point - 공통 관심사항이 결합되는 지점, 스프링은 "메소드 실행"만 지원
(컴파일, 클래스로딩, 객체 생성, 메소드 실행, 객체의 상태 변경)
Advice(What + When) - 공통 관심사항의 구현체
Pointcut(Where) - Advice를 어떤 Join Point에 결합시킬지를 지정하는 규칙
Aspect - AOP의 실질적인 구현체, Advice와 Pointcut의 결합체다.
Proxy - Target의 Join Point에 Aspect가 결합된 객체, Spring 컨테이너가 AspectJ 라이브러리를 이용해서 직접 생성하고,
스프링의 빈으로 등록한다. Proxy는 Target의 자식 객체다(따라서 Proxy는 Target과 같은 타입의 객체다).
Weaving - Target과 Aspect를 엮어서 Proxy객체를 생성하는 것