노션으로 다시 돌아갔습니다 😅

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 에서만 사용되는 특별한 용어

 

 

블로그의 정보

Mignon'S Dev Log

mignon25

활동하기