-
AOP 용어 정리Programming/Spring 2022. 9. 19. 21:28
AOP 용어 정리
이 용어들은 Spring AOP에 국한되지 않음
- Aspect
- 여러 클래스를 횡단하는 관심사를 모듈화한 것. 스프링 AOP에서 Aspect는 일반적인 클래스에 @Aspect 를 통해 구현된다.
- Join point
- Advice가 적용될 수 있는 위치, 프로그램 실행 동안의 한 지점을 뜻한다. 예를들어, 메서드의 실행이나 예외 핸들링 같은 부분이다.
- Spring AOP에서 Join point는 항상 메서드의 실행을 나타낸다.
- Target object에서 구현한 인터페이스의 모든 메서드는 Join point가 된다.
- Advice
- 특정한 Join point 에서 Aspect에 의해 취해지는 행동을 뜻한다. 즉, 타깃에게 제공할 부가기능을 담은 모듈이다. 다양한 advice 타입이 있는데, 핵심적으로 around, before , after 이 있다.
- Pointcut
- Advice를 적용할 Join point를 선별하는 작업을 뜻한다.
- Spring AOP의 Join point는 결국 메서드의 실행이기 때문에 Advice를 적용할 메서드를 선별하는 것이다.
- Pointcut 표현식과 매치되는 Join point를 선별한다는 개념은 AOP의 핵심 개념이다.
- Spring은 디폴트로 AspectJ Pointcut 표현식을 사용한다.
- Target object
- 부가기능이 실행되는 대상 객체
- Weaving
- Advice를 Joint point에 적용하는 것을 말한다.
- 즉, 부가 기능을 핵심 기능에 적용하는 행위를 뜻한다.
- Weaving이 실행되는 시점은 compile time, load time, runtime 이 있다.
- Spring AOP는 다른 순수 자바 AOP 프레임워크와 다르게 런타임에 Weaving을 한다.
- Before Advice
- Join point (타깃 메서드) 전에 Advice가 실행된다.
- 예외를 발생시키 않는 한 Joint point 가 실행되는 것을 막을 능력은 없다.
- After returning advice
- Join point가 정상적으로 완료된 후에 Advice가 실행된다.
- After throwing advice
- Join point 실행중 exception이 발생돼 메서드를 탈출했을때 실행된다.
- After advice
- Join point 완료후 (정상 작동이든, 예외가 발생하든) 무조건 실행된다.
- Around advice
- Join point 실행 앞, 뒤로 Advice가 실행될 수 있다.
- 타겟 메서드를 실행할지, 바로 반환할지 정할 능력도 있다.
출처: https://docs.spring.io/spring-framework/docs/2.5.5/reference/aop.html
토비의 스프링 3.1
'Programming > Spring' 카테고리의 다른 글
@Transactional의 롤백 (1) 2022.05.18 @Configuration이 붙지 않은 클래스의 메서드에 @Bean을 붙이면 어떻게 될까? (1) 2022.05.18 DI(Dependency Injection)의 종류와 장단점 (2) 2022.04.26 - Aspect