AOP의 용어
by mignon25애스팩트 (Aspect)

- 여러 객체에 공통으로 적용되는 기능
- 어드바이스 + 포인트 컷을 모듈화하여 애플리케이션에 포함되는 횡단 기능
조인 포인트(Join Point)
- 애플리케이션 실행 흐름에서 특정 포인트(AOP를 적용하는 지점)를 의미
- 애플리케이션에 새로운 동작(부가기능)을 추가하기 위해 관심 코드(aspect code)를 추가할 수 있다.
- 스프링 AOP 는 프록시 방식을 사용하므로 조인 포인트는 메서드 실행 지점으로 제한된다.
어드바이스 (Advice)
- 조인 포인트에서 수행되는 코드
- Aspect 를 언제 핵심 코드에 적용할지 정의
포인트 컷 (Pointcut)
- 조인 포인트 중에서 어드바이스가 적용될 위치를 선별하는 기능 (타겟 선별)
- Ex) 적용할 패키지 또는 적용할 클래스 등등
- 스프링 AOP는 프록시 방식을 사용하므로 메서드 실행 지점만 포인트 컷으로 선별 가능
위빙(Weaving)
- 포인트 컷으로 결정한 타겟의 조인 포인트에 어드바이스를 적용하는 것
- 다시 말해, Advice 를 핵심 코드에 적용하는 것
- 핵심 기능 코드에 영향을 주지 않고 부가 기능을 추가할 수 있다.
AOP 프록시(proxy)
- 프록시 객체 : 원래 객체를 감싸고 있는 객체 (원래 객체와 타입은 동일)
- AOP 기능을 구현하기 위해 만든 프록시 객체
- 스프링에서는 JDK 동적 프록시 또는 CGLIB 프록시 사용
타겟 (Target)
- 핵심 기능을 담고 있는 모듈
- 부가 기능을 부여할 대상
- Advice를 받는 객체
- 타겟의 선정은 포인트컷으로 결정
어드바이저(Adviser)
- 하나의 어드바이스와 하나의 포인트컷으로 구성
- 스프링 AOP 에서만 사용되는 특별한 용어
'Spring' 카테고리의 다른 글
| 조회한 빈이 모두 필요할 때 - List, Map 사용 (0) | 2023.04.12 |
|---|---|
| @Autowired 사용할 때 빈 이름 중복 매칭 문제 - @Qualifier, @Primary (0) | 2023.04.11 |
| 의존관계 주입 시 옵션 처리 (0) | 2023.04.09 |
| 객체 지향 설계 원칙 - SOLID (0) | 2023.04.09 |
| 컴포넌트 스캔 - @ComponentScan (0) | 2023.04.07 |
블로그의 정보
Mignon'S Dev Log
mignon25