본문 바로가기
Everyday Study

2024.08.26(월) { 조인 포인트, 어드바이스, 포인트컷, 어드바이저 }

by xogns93 2024. 8. 26.

조인 포인트 (Join Point)

  • 애플리케이션의 실행 흐름에서의 AOP를 적용할 수 있는 모든 특정 지점
  • 스프링 컨테이너가 관리할 수 있는 스프링 빈에만 AOP 적용 가능
  • 항상 메서드 레벨에만 AOP 적용 가능
    ( 스프링 AOP가 프록시 방식 사용하기 때문 )

어드바이스 (Advice)

  • 특정 조인포인트(Join Point)에서 수행될 부가기능을 정리한 코드
  • 핵심 코드(Target)에 Aspect를 언제 적용할지 정의

 포인트컷 (Pointcut)

  • 조인포인트(Join Point)에서 어드바이스(Advice)가 적용될 위치를 선별하는 기능
    ( 애플리케이션 실행 흐름에서 AOP를 적용할 수 있는 모든 포인트에서 수행될 부가기능 코드의 위치를 선별하는 기능 )
  • 관심 조인포인트를 결정 ➜ 어드바이스가 실행되는 시기 제어 가능

어드바이저 (Advisor)

  • 하나의 어드바이스(Advice) + 하나의 포인트컷(Pointcut) 으로 구성
    ( 수행 코드(부가기능) + 그 코드의 위치 선별 기능 )

 

이 AOP는 프로젝트 내의 여러 객체에 공통으로 적용되는 기능(Aspect)들만 기능별로 따로 묶어, 프록시 객체를 만들어서 한번에 처리하는 기법이다.

이 때 따로 묶은 Aspect들은 그 기능을 어디에(어느 타겟에) 적용할 지 써줘야하는데
( 타겟 - 따로 묶은 공통 기능들을 넣어줄 핵심 기능 )

이는 포인트컷을 활용하여 그 기능을 어느 위치에 넣을 건지 정해줄 수 있고,

어드바이스를 활용하여 언제 넣을 건지 정해줄 수 있다.
( Ex. 메서드 호출 전, 필드값 변경 후 등 )

여기서, AOP가 적용될 수 있는 모든 지점을 조인포인트라고 하고,
그러므로 AOP가 적용될 수 있는 지점 == 포인트컷을 넣을 지점이 되기 때문에

즉, 포인트컷을 활용할 수 있는 모든 지점을 조인포인트라고 할 수 있다.