스프링 핵심 원리(고급편)

Ch06. 스프링이 지원하는 프록시 - 포인트컷, 어드바이스, 어드바이저( 소개)

webmaster 2022. 4. 12. 11:55
728x90
  • 포인트 컷( Pointcut ): 어디에 부가 기능을 적용할지, 어디에 부가 기능을 적용하지 않을지 판단하는 필터링 로직이다. 주로 클래스와 메서드 이름으로 필터링한다. 이름 그대로 어떤 포인트(Point)에 기능을 적용할지 하지 않을지 잘라서(cut) 구분하는 것이다.
  • 어드바이스( Advice ): 이전에 본 것 처럼 프록시가 호출하는 부가 기능이다. 단순하게 프록시 로직이라 생각하면 된다.
  • 어드바이저( Advisor ): 단순하게 하나의 포인트컷과 하나의 어드바이스를 가지고 있는 것이다. 쉽게 이야기해서 포인트 컷 1 + 어드바이스 1이다

쉽게 기억하기

  • 조언( Advice )을 어디( Pointcut )에 할 것인가?
  • 조언자( Advisor )는 어디( Pointcut )에 조언( Advice )을 해야 할지 할지 알고 있다.

역할과 책임

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

전체 구조

  • Advice 부가 기능을 추가하기 전 Poincut으로부터 필터링을 한 뒤, 가능하면 부가 기능을 추가 후 기존 로직을 실행하고, 안될 경우 부가 기능을 추가하지 않고 기존 로직을 실행해 준다.
728x90