반응형
Aspect Oriented Programming (관점지향)
"Action의 전/후에 반복되는 행위"
저는 보통 이렇게 정의를 내리곤 합니다. 그 이유는 AOP라는 것 자체가 어떠한 메서드를 수행하기 전이나 후에 정해진 규칙(Rule)의 트리거를 통하여 발생하기 때문입니다.
이 개념이 주로 사용되는 부분은 보통 DB의 Query를 수행하기 전 후 Transaction 처리나, 메서드의 시작 전과 후에 발생하는 Log처리, 그리고 웹에서 요청한 Client가 로그인을 한 사용자인지 비로그인 사용자인지 체크 등등에서 사용됩니다.
주요개념
Word | Description |
Aspect | 흩어져있는 관심사의 모듈화 |
Target | Aspect를 적용할 대상 (Class, Method, 등등) |
Advice | 적용할 대상에 대해서 수행할 기능들의 집합 |
JointPoint | Advice가 적용되는 Event 시점(ex. 메서드 호출 이전, 메서드 호출 이후 등등) |
PointCut | JointPoint의 상세 스펙 정의 |
Advice 종류
Type | Description |
beforeAdvice | 사전처리 method |
after | 사후 처리 method |
after-throwing | 예외 처리 method |
after-returing | 반환 처리 method 정의 |
aroundAdvice | 해당 pointCut 매서드가 호출되기 전에 인터셉터되고, pjp.proceed(); 만나는 순간, 호출된 매서드가 실행됨. 이후, 다시 남은 aroundLog가 실행이 된 이후에, return obj가 됨. |
반응형
'개발 창고 > SpringFramework' 카테고리의 다른 글
[Spring Framework] 1화 스프링 프레임워크란? (1) | 2021.04.09 |
---|