[12] Spring - 심화과제 aop 등 트러블슈팅

2024. 10. 31. 12:32Spring/JPA 개인과제

728x90

 

🛠️ 트러블슈팅 - aop에서 Pointcut의 경로문제

1. 개요

- 심화과제 aop를 만드는 도중에 생겼던 이슈에 대해서 작성해보겠습니다.

 

2. 배경

- 요구사항에 맞게 특정 메서드 2개에 대해서 @Pointcut 어노테이션을 활용해서 경로를 등록했습니다.

3. 발단

- 경로가 잘못되었는지 생성한 aop자체가 작동을 하지 않았습니다.

4. 전개

- 확인을 위해서 메시지를 출력중인데 출력이 되지 않았습니다.

 

5. 위기

- @Pointcut 표현식이 자세히 설명되어있는 것을 찾아서 확인해보았습니다.

 

6. 절정

 

- 참고블로그 https://ittrue.tistory.com/233

 

[Spring] 스프링 AOP 포인트컷(Pointcut) 표현식 정리

포인트컷과 표현식 & 지시자 포인트컷(Pointcut)은 관심 조인 포인트를 결정하므로 어드바이스가 실행되는 시기를 제어할 수 있다. AspectJ는 포인트컷을 편리하게 표현하기 위한 특별한 표현식을

ittrue.tistory.com

- 인터페이스에 정의 되어있는 메서드를 실행, 제가 필요한 것은 service에서 곧바로 실행하는것이고 인터페이스는 필요없었는데 인터페이스를 정의된 메서드를 실행해서 못찾아온것으로 판단되었습니다.

- 해당 방식으로 수정해서 인터페이스에서 가져오는 형태를 변경했습니다.

7. 결말

1) @Pointcut으로 필요한 메서드를 지정하려는데 오류가 발생했다.

2) 표현식을 잘못사용하고 있던 문제가 있었으나 관련 표현식 정보를 찾아서 해결을 했다.

 

🛠️ 트러블슈팅 - aop에서 jwt 토큰 관련 이슈

1. 개요

- 심화과제 aop를 만드는 도중에 생겼던 이슈에 대해서 작성해보겠습니다.

 

2. 배경

- 로그인 정보를 로그로 남기기 위해서 jwt토큰을 header에서 가져왔습니다.

 

3. 발단

- 가져온 토큰을 가공 후 토큰에 담겨 있는 로그인 정보를 가져오려는데 오류가 발생했습니다.

4. 전개

- 토큰 가공은 정상적으로 되는데 토큰에 담겨있는 정보를 가져오는 과정에서 확실히 오류가 발생하고 있었습니다.

 

5. 위기

- signing key cannot be null 오류 메시지에 꽂혀서 관련된 것을 계속 검색해보면서 여러가지 방법들을 찾아보았지만, 계속 결과는 찾을 수 없었습니다.

 

6. 절정

-  aop전체코드를 다시 훑어보는데 이상한 점을 발견했습니다. jwt를 처리하는 JwtUtil을 Bean으로 등록해야하는데 인스턴스 생성을 하는 실수를 해버렸습니다.

 

7. 결말

1) aop에서 jwt토큰을 헤더에서 가져오고, 로그인 정보를 호출 하려고 했습니다.

2) 호출하는 과정에서 IllegalArgumentException에러가 나면서 정상적으로 접근이 불가했습니다

3) 토큰을 가공하는 과정은 정상적으로 되는데 토큰에 담겨 있는 정보만 추출을 실패했습니다.

4) jwt토큰을 처리하는 JwtUtil을 Bean으로 등록하지 않아 생긴 간단한 문제였습니다.

※ 이런 간단한 실수는 다시 발생하지 않도록 주의 깊게 살펴야겠다고 생각했습니다. 이번 실수로 인해서 재발하지 않도록 하겠습니다.

 

 

728x90