41일차
AOP공부 하던중 오류 발생
Build and run using을IntelliJ IDEA로 해서 생긴 문제였다.
test코드 공부한다고Settings>Build,Execution,Deployment>Build Tools>Gradle에서Run tests using,Build and run using을IntelliJ IDEA로 변경해뒀다..왜그랬는지..Build and run using은Gradle로 해둬도 되는거였는디..
https://velog.io/@cjfgml2320/IntelliJ-test코드-error
이상하다 JWT 발급을 잘하고 분명히 postman에서도 토큰값을 넣어서 실행하는데...오류가 생겼다..

음? 여기가 뭐가 문제지..?
흠....일단 String weather = "good"; 으로 변경해보자...
좋아 다시 구동!!
많이 줄어들긴했지만 여전히 에러... 토큰이 뭐가 문제지?
ㅎ..똑같넹..

음..? 토큰은 제대로 들어오는거 같은데...?
GPT선생님~!
GPT답변
이 오류는 Java의 리플렉션을 사용하여 메소드의 파라미터 이름을 찾으려 할 때 발생하는 문제로 보입니다. 구체적으로는 java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection라는 메시지가 나왔습니다. 이는 Spring MVC에서 파라미터 이름 정보를 찾지 못하는 경우에 발생합니다.
문제의 원인
컴파일 시 파라미터 이름 정보 부족: Java에서 메소드의 파라미터 이름 정보는 기본적으로 컴파일 시에 저장되지 않습니다. 이를 해결하려면 컴파일 옵션에 -parameters 플래그를 추가해야 합니다. 이 플래그를 사용하면 컴파일러가 메소드의 파라미터 이름 정보를 클래스 파일에 저장합니다.
해결 방법
컴파일러 플래그 추가:
Maven을 사용하는 경우, pom.xml 파일의 maven-compiler-plugin 설정에 -parameters 플래그를 추가합니다:
xml<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <compilerArgs> <arg>-parameters</arg> </compilerArgs> </configuration> </plugin> </plugins> </build>Gradle을 사용하는 경우, build.gradle 파일에 다음을 추가합니다:
groovytasks.withType(JavaCompile) { options.compilerArgs << '-parameters' }메소드 파라미터 이름 명시:
만약 컴파일 플래그를 사용하는 것이 불가능하다면, 메소드 파라미터 이름을 명시적으로 지정할 수 있습니다. 예를 들어, 컨트롤러 메소드에서 @RequestParam 또는 @PathVariable과 같은 어노테이션을 사용하여 파라미터 이름을 명시합니다.
스프링 버전 확인:
사용하는 Spring 버전이 최신 버전인지 확인하고, 문제가 해결된 버전으로 업데이트하는 것도 좋은 방법입니다. 특정 버전의 버그가 수정되었을 수 있습니다.
이 방법들을 통해 메소드의 파라미터 이름 정보를 제대로 저장하고 활용할 수 있을 것입니다.
그렇군요..오호 build.gradle 파일에 다음을 추가합시다!
좋아 구동해봅시다
어라?
잠시만...Gradle을 사용하는 경우? 뭐지...무언가 놓친기분이야..
더이상 모르겠다.. 튜터님께 여쭤보자!!
Build and run using 을 IntelliJ IDEA로 해서 생긴 문제였다..
IntelliJ IDEA -> Gradle 로 변경해주자
굳~ 어???? AOP로 log도 설정했는데? 왜 작동안해..?


흠...admin controller를 포인트컷했는데 왜 로그가 안뜨지..?
로그에 2가 뜨는거는 ADMIN이 제대로 들어있고 제대로 구동은 한다는건데..
내배캠 동기분들의 조언을 들었다!! "포인트컷을 더 좁혀보시죠!"
굳~~ 이거지!! 동기분들 감사합니다ㅠㅠ
Run할때 Settings에서 Build and run 잘 확인해보고
AOP 사용할때 포인트컷 쓸때 제대로 위치잡아주고 사용하자