Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

Pointcut, Advice, Advisor - 소개 본문

인프런/[인프런] 스프링 핵심 원리 - 고급

Pointcut, Advice, Advisor - 소개

Seung__ 2021. 12. 31. 11:25

1. Pointcut? Advice? Advisor?


  • 포인트컷( Pointcut )
    • 어디에 부가 기능을 적용할지, 어디에 부가 기능을 적용하지 않을지 판단하는 필터링 로직이다. 
    • 주로 클래스와 메서드 이름으로 필터링 한다. 
    • 이름 그대로 어떤 포인트(Point)에 기능을 적용할지 하지 않을지 잘라서(cut) 구분하는 것이다.
  • 어드바이스( Advice )
    • 이전에 본 것 처럼 프록시가 호출하는 부가 기능이다.
    • 단순하게 프록시 로직이라 생각하면 된다.
  • 어드바이저( Advisor )
    • 단순하게 하나의 포인트컷과 하나의 어드바이스를 가지고 있는 것이다.
    • 어드바이저 = 포인트컷1 + 어드바이스1
  • 정리하면 부가 기능 로직을 적용해야 하는데, 포인트컷으로 어디에? 적용할지 선택하고, 
  • 어드바이스로 어떤 로직을 적용할지 선택하는 것이다. 
  • 그리고 어디에? 어떤 로직?을 모두 알고 있는 것이 어드바이저이다.
  • 조언( Advice )을 어디( Pointcut )에 할 것인가?
  • 조언자( Advisor )는 어디( Pointcut )에 조언( Advice )을 해야할지 할지 알고 있다.

 

2. 역할과 책임


  • 포인트컷은 대상 여부를 확인하는 필터 역할만 담당한다.
  • 어드바이스는 깔끔하게 부가 기능 로직만 담당한다.
  • 둘을 합치면 어드바이저가 된다. 스프링의 어드바이저는 하나의 포인트컷 + 하나의 어드바이스로 구성된다.

 

 

 

3. 전체 구조


 

 

 

Comments