AOP(Aspect Oriented Programming) 구성요소
AOP 구성요소
특정지정에 제어하고 싶은 대상에 제어하고자 하는 기능을 구현하는 AOP에 대해 알아보았습ㄴ다.
이번에는 좀더 용어에 대해 상세하게 알아보겠습니다.
AOP의 구성요소는
- Aspect
- Advice
- PointCut
- JoinPoint
로 되어 있습니다.
Aspect
Aspect는 AspectConfig 기능처럼 제어하고자 하는 모듈의 묶음을 의미하며, 이를 위해 어노테이션 @Aspect를 추가합니다.
Advice
Advice는 특정 지점에서 trigger 되었을 때 실행되는 operation 입니다.
예를 들면 operation이 실행되지는 시점은 다음과 같습니다.
- 시적전/후 : @Around
- 시작전(Before) : @Before
- 성공처리 후 : @AfterReturning
- 에러발생시 : @AfterThrowing
- 처리종료 후 항상 실행 : @After
JoinPoint
JoinPoint는 어떤 Operation을 대상으로 할지 정의하는 것입니다.
Springframework의 AOP는 operation or method 단위로 JoinPoint를 지원합니다.
대표적인 것이 execution, @Annotation 이 있습니다. 이중에서 execution JoinPoint가 가장 많이 사용되고 있습니다.
PointCut
어느 시점(Operation or method)에 AOP 모듈을 trigger할지 정의하는 JoinPoint의 상세 스펙 또는 표현식(Expression)입니다.
기타
-
Weaving(위빙): Weaving은 애플리케이션의 Design/Runtime 등 시점에 Aspect를 적용하는 것
springframework는 Runtime 시점에 Weaving 합니다. -
target : Aspect가 적용되는 객체를 의미합니다.
댓글남기기