AOP 프로그램을 하면서도 가끔 용어들이 익숙치 않아서 작아 질 때가 있다.
조인포인트(joinpoint)
조인포인트는 애플리케이션 실행 중의 특정한 지점을 의미한다. 전형적인 조인포인트의 예로는 메서드 호출, 메서드 실행 자체, 클래스 초기화, 객체 생성시점 등이 있다. 조인포인트는 AOP 핵심 개념이며 애플리케이션의 어떤 지점에 AOP를 사용하여 추가적인 로직을 삽입할 지 정의한다.
어드바이스(advice)
특정 조인포인트에 실행하는 코드를 어드바이스라고 한다. 조인포인트 이전에 실행하는 Before 어드바이스와 이후에 실행하는 After 어드바이스를 비롯한 여러 종류의 어드바이스가 있다.
포인트컷(pointcut)
하나의 포인트컷은 여러 조인포인트의 집합체로 언제 어드바이스를 실행할 지 정의할 때 사용한다. 포인트컷을 만들어서, 애플리케이션 구성 요소에 어드바이스를 어떻게 적용할 지 상세하게 제어할 수 있다. 앞서 언급했듯이 가장 일반적으로 사용하는 조인포인트는 메서드 호출이다. 가장 일반적인 포인트컷은 특정 클래스에 있는 모든 메서드 호출로 구성된다. 종종, 여러분은 어드바이스 실행 지점을 좀 더 다양하게 제어할 필요가 있을 때 복잡한 형태로 포인트컷을 구성할 수도 있다.
애스팩트(aspect)
애스팩트는 어드바이스와 포인트컷을 조합한 것이다. 즉 이 조합물은 애플리케이션이 가지고 있어야 할 로직과 그것을 실행해야 하는 지점을 정의한 것이라고 할 수 있다.
위빙(weaving)
이것은 애플리케이션 코드 해당 지점에 애스팩트를 실제로 주입하는 과정을 말한다. 당연히, 컴파일 시점 AOP 솔루션은 이 작업을 컴파일 시점에 하여, 빌드 과정 중에 별도의 과정을 거친다. 마찬가지로, 실행 시점 AOP 설로션은 위빙 과정이 실행 중에 동적으로 일어난다.
타겟(target)
자신의 실행 흐름이 어떠한 AOP 처리로 인해 수정되는 객체를 타겟 객체라고 한다. 타겟 객체를 어드바이스가 적용된 객체라고도 한다.
인트로덕션(introduction)
인트로덕션은 객체 구조를 수정하여 새로운 메서드나 필드를 그 안에 추가할 수 있는 처리를 뜻한다. 여러분은 인트로덕션을 사용해서 어떤 객체가 특정 인터페이스를 명시적으로 구현하지 않고도 구현한 것으로 만들수 있다.
출처: Pro Spring 2.5
댓글 없음:
댓글 쓰기