-
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
Chapter 6. Aspect Oriented Programming with Spring
Aspect-Oriented Programming (AOP) complements Object-Oriented Programming (OOP) by providing another way of thinking about program structure. The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect. Aspects enabl
docs.spring.io
토비의 스프링 3.1
'Programming > Spring' 카테고리의 다른 글
@Transactional의 롤백 (1) 2022.05.18 @Configuration이 붙지 않은 클래스의 메서드에 @Bean을 붙이면 어떻게 될까? (1) 2022.05.18 DI(Dependency Injection)의 종류와 장단점 (2) 2022.04.26 - Aspect