❗AOP 적용 시 LogService에서 무한 루프 발생한 트러블슈팅
@Pointcut("execution(* com.example.outsourcing_project.domain..service..*(..))")
public void loggableServiceMethods() {}
com.example.outsourcing_project.domain 하위의 모든 service 패키지 내 메서드에 AOP를 적용하는 설정이다.saveActivityLog() 내부에서 logService.addLog()를 호출addLog()가 다시 AOP의 대상이 되어 saveActivityLog()가 또 실행됨logService.addLog() → 또 AOP → 무한 반복LogService의 addLog() 메서드도 이 포인트컷에 포함되면서 무한 루프가 발생했다.LogService 자체가 포함되어 있었기 때문에 발생한 문제!LogService는 로그를 기록하는 용도이기 때문에 AOP 대상에서 제외해야 합니다.포인트컷 수정
@Pointcut("execution(* com.example.outsourcing_project.domain..service..*(..)) " +
"&& !within(com.example.outsourcing_project.domain.log..*)")
public void loggableServiceMethods() {}
!within(...) 조건을 추가하여 Log 패키지 내의 모든 클래스를 AOP 적용 대상에서 제외logService.addLog()를 호출하더라도 AOP가 다시 적용되지 않음&& !within(...) && !within(...) 식으로 연달아 쓸 수 있음