포인트컷(Pointcut) (+포인트컷 정규 표현식)

coding S's avatar
Apr 19, 2024
포인트컷(Pointcut) (+포인트컷 정규 표현식)

[ 포인트컷이란? ]

프로그램에서 어떤 부분에 특정 작업(어드바이스)을 적용할지 결정하는 규칙. ex) 책의 북마크. 책 전체에서 중요한 부분만 북마크를 해두듯이, 포인트컷은 프로그램 전체에서 어드바이스(특정 작업)을 적용할 '중요한 부분들'을 선택하는 규칙 "모든 공개 메서드의 시작 부분"이나 "특정 이름을 가진 메서드가 호출될 때"와 같이, 어드바이스를 적용하고 싶은 부분을 포인트컷으로 설정 가능! 이렇게 설정된 포인트컷에 의해 선택된 부분들에만 우리가 원하는 추가 작업(예: 로깅, 보안 검사 등)이 적용된다. 즉, 포인트컷은 '어디에' 특정 작업을 적용할지를 결정하는 규칙이다.
💡
Advice (어드바이스) 특정 조인 포인트(JoinPoint)에 적용할 작업이나 동작을 정의한 것. 즉, 포인트컷(Pointcut)에 의해 선택된 특정 지점에서 실제로 실행될 코드의 조각 : 메서드 실행 전후에 로그를 남기는 코드를 작성합니다. (수행할 메서드 생성)
💡
‘어디에, 특정 지점’ 은 포인트 컷, ‘어떤 작업’은 어드바이스 인 듯 함!
💡
포인트컷을 적용하는 방법 -> 어노테이션, 정규표현식
 

[ 포인트컷 표현식 문법 ]

notion image
notion image
notion image
notion image
notion image
 

[ 포인트컷 정규 표현식 활용 ]

notion image
shop.mtcoding.blog 패키지 아래에 있는 모든 *Controller로 이름이 끝나는 클래스의 모든 메서드가 실행되기 전에 hello 메서드를 실행하라
notion image
notion image
 
Share article

codingb