-
[Spring AOP] Spring AOP 용어 정리Backend/Spring 2022. 5. 3. 01:34728x90
스프링 AOP에서 사용하는 용어를 정리해보려고 한다.
AOP ( Aspect Oriented Programming ) 를 간단히 알아보자.
우선 해석해보면 관점 지향 프로그래밍이다. 말 그대로 애플리케이션을 바라보는 관점을
핵심적인 관점과 부가적인 관점으로 나누어보고 분리하여 각각 모듈화 하려는 취지를 갖고 있다.
Aspect를 이용해서 횡단 관심사 ( "부가적인 기능이 필요하다." 라는 관점, 쉽게 이해하자면 핵심 로직이 아닌 부가적인 로직으로 코드상에 중복되는 것들 ) 를 해결할 수 있다. 또한 반복, 중복, 수정 등에 대한 많은 문제를 해결함으로써 OOP를 보조해준다.
Spring AOP는 AspectJ의 일부 기능만을 제공, AspectJ의 문법을 차용하는 것이고 직접 사용하는 것은 아니다.
또한 AOP의 적용 방식에는 여러 가지가 있지만 Spring AOP는 런타임 시점( 프록시 방식 ) 만을 사용한다.
Spring AOP 용어
1. 어드바이스( Advice ) : 부가 기능 그 자체를 의미한다.
2. 조인 포인트( Join Point ) : 어드바이스가 적용될 수 있는 위치 ( AOP가 적용될 수 있는 모든 지점으로 추상적인 개념 )
3. 포인트컷(Pointcut) : 조인 포인트 중에서 어드바이스가 적용될 위치를 선별하는 기능 ( 주로 AspectJ 표현식을 이용 )
4. 타겟(Target) : 어드바이스를 받는 객체이다. ( 포인트컷으로 결정된다. )
5. 애스팩트(Aspect) : 어드바이스 + 포인트컷을 모듈화 한 것
6. 어드바이저(Advisor) : 하나의 어드바이스 + 하나의 포인트컷으로 구성된 것 ( Aspect의 일부라고 보면될듯 하다. )
7. 위빙(Weaving) : 포인트컷으로 결정된 타겟의 조인 포인트에 어드바이스를 적용하는 것
8. AOP 프록시 : AOP 기능을 구현하기 위해 만든 프록시 객체 ( JDK 동적 프록시 or CGLIB 프록시 )
참고 : 김영한 님 인프런강의스프링 핵심 원리 - 고급 편
728x90'Backend > Spring' 카테고리의 다른 글
[Spring Cloud] Feign Client로 업비트 시세조회 API 사용하기 (0) 2022.06.02 [Spring AOP] 프록시와 내부 호출 문제 (0) 2022.05.14 [Spring] 서블릿 필터(Filter)와 스프링 인터셉터(Interceptor) (0) 2022.03.18 [Spring] Spring MVC의 구조와 동작 순서 (0) 2022.03.16 [Spring] Spring 과 Spring Boot 의 차이점 (0) 2022.03.12