본문 바로가기

AOP

[AOP] Chapter03 적용 방식 및 용어

AOP 적용 방식

1. 컴파일 시점

2. 클래스 로딩 시점

3. 런타임 시점(프록시)

 

AOP 적용 위치

1. 프록시 방식을 상용하는 스프링 AOP는 실행 지점에만 AOP를 적용할 수 있다.

 - 프록시는 메서드 오버라이딩 개념으로 동작한다. 따라서 생성자나 static 메서드 필드 값 접근에서는 프록시 개념이 적용될 수 없다.

 - 프록시를 사용하는 스프링 AOP의 조인 포인트는 메서드 실행으로 제한 된다.

2.  프록시 방식을 사용하는 스프링 AOP는 스프링 컨테이너가 관리할 수 있는 스프링 빈에만 AOP를 적용 할 수 있다.

 

용어

조인 포인트(Join Point)

 > 어드바이스가 적용될 수 있는 위치, 메소드 실행, 생성자 호출, 필드 값 접근, static 메서드 접근 같은 프로그램 실행 중 지점

 > 조인 포인트는 추상적인 개념. AOP를 적용할 수 있는 모든 지점이라 생각.

 스프링 AOP는 프록시 방식을 사용하므로 조인 포인트는 항상 메소드 실행 지점으로 제한된다.

 

포인트컷(Pointcut)

 > 조인 포인트 중에서 어드바이스가 적용될 위치를 선별하는 기능

 주로 AspectJ 표현식을 사용해서 지정

 프록시를 사용하는 스프링 AOP는 메서드 실행 지점만 포인트컷으로 선별 가능

 

타겟(Target)

 > 어드바이스를 받는 객체, 포인트컷으로 결정

 

어드바이스(Advice)

 > 부가 기능

 Around(주변), Before(전), After(후)와 같은 다양한 종류의 어드바이스가 있음

 

애스팩트(Aspect)

 > 어드바이스 + 포인트컷을 모듈화 한 것

 > @Aspect

 

어드바이저(Advisor)

 > 하나의 어드바이스와 하나의 포인트 컷으로 구성

 스프링 AOP에서만 사용되는 특별한 용어

 

위빙(Weaving)

 > 포인트컷으로 결정한 타겟의 조인 포인트에 어드바이스를 적용하는 것

 핵심 기능 코드에 영향을 주지 않고 부가 기능 추가 가능

 

AOP 프록시

 > AOP 기능을 구현하기 위해 만든 프록시 객체, 스프링에서 AOP 프록시는 JDK동적프록시 또는 CGLIB 프록시이다.

'AOP' 카테고리의 다른 글

[AOP] Chapter02 애스팩트  (0) 2022.10.14
[AOP] Chapter01  (0) 2022.10.12