상황
AOP가 잘못 동작하고 있어요!
- UserAdminController 클래스의 changeUserRole() 메소드가 실행 전 동작해야해요.
- AdminAccessLoggingAspect 클래스에 있는 AOP가 개발 의도에 맞도록 코드를 수정해주세요.

원인 분석
1. AOP 기능을 구현하기 위한 의존성이 있는지 확인한다.
없으면 추가해 준다.

2. AOP 어노테이션이 After로 설정되어 있어 changeUserRole 메서드가 UserController.getUser()이라는 JoinPoint의 실행 전이 아니라 실행 후 동작한다.

해결 방법
해당 Aspect의 @After 어노테이션을 @Before 어노테이션으로 바꿔준다.
잘 적용되었는지 확인해 보자.
UserController.getUser() 메서드를 호출하기 위해 GET /users/{userId} 요청을 보낸다.

먼저 logAfterChangeUserRole이 실행되고

그 이후 UserController.getUser()가 실행된다.

'Projects > [Spring] Code Refactoring Project' 카테고리의 다른 글
| [Spring Plus] DTO Projection으로 N+1 문제 해결하기 (0) | 2026.03.01 |
|---|---|
| [Spring Plus] JPA Cascade 옵션 지정하기 (0) | 2026.02.28 |
| [Spring Plus] 컨트롤러 테스트 성공시키기 (0) | 2026.02.28 |
| [Spring Plus] JPQL로 쿼리 옵션 추가하기 (0) | 2026.02.27 |
| [Spring Plus] JWT 인증 필드 추가 (0) | 2026.02.27 |