오봉이와 함께하는 개발 블로그
스프링 핵심 원리 - 고급편 > 포인트컷, 어드바이스, 어드바이저 소개 본문
728x90
스프링 핵심 원리 - 고급편 > 포인트컷, 어드바이스, 어드바이저 소개
- 포인트컷
- 어디에 부가 기능을 적용할지, 어디에 부가 기능을 적용하지 않을지 판단하는 필터링 로직
- 주로 클래스와 메서드 이름으로 필터링
- 이름 그대로 어떤 포인트에 기능을 적용할지 하지 않을지 잘라서 구분하는 것
- 어드바이스
- 프록시가 호출하는 부가 기능
- 단순하게 프록시 로직이라 생각하면 된다.
- 어드바이저
- 단순하게 하나의 포인트컷과 어드바이스를 가지고 있는 것
- 쉽게 이야기하면 포인트컷 1 + 어드바이스 1
정리하면 부가 기능 로직을 적용해야 하는데, 포인트컷으로 어디에? 적용할지 선택하고, 어드바이스로 어떤 로직을 적 용할지 선택하는 것이다. 그리고 어디에? 어떤 로직?을 모두 알고 있는 것이 어드바이저이다.
- 조언(Advice)을 어디(Pointcut)에 할 것인가?
- 조언자(Advisor)는 어디(Pointcut)에 조언(Advice)을 해야할지 알고 있다.
역할과 책임
이렇게 구분한 것은 역할과 책임을 명확하게 분리한 것이다.
- 포인트컷은 대상 여부를 확인하는 필터 역할만 담당한다.
- 어드바이스는 깔끔하게 부가 기능 로직만 담당한다.
- 둘을 합치면 어드바이저가 된다. 스프링의 어드바이저는 하나의 포인트컷 + 하나의 어드바이스로 구성된다.
참고로 해당 단어들에 대한 정의는 문맥상 이해를 위해 프록시에 맞춰서 설명하지만, 이후 AOP 부분에서 AOP에 맞춘 정리가 필요하다. 아래 그림도 이해를 돕기 위한 것이고, 실제 구현은 다를 수 있다.
출처: 김영한 지식공유자의 스프링 핵심 원리 고급편
728x90
'BE > Spring' 카테고리의 다른 글
스프링 핵심 원리 - 고급편 > 직접 만든 포인트컷 (3) | 2024.10.01 |
---|---|
스프링 핵심 원리 - 고급편 > 어드바이저 (0) | 2024.10.01 |
스프링 핵심 원리 - 고급편 > 프록시 팩토리 예제 (0) | 2024.09.07 |
스프링 핵심 원리 - 고급편 > 프록시 팩토리 소개 (0) | 2024.09.07 |
스프링 핵심 원리 - 고급편 > CGLIB (0) | 2024.09.04 |
Comments