문제 1. 게시판 {id}페이지 접근시 게시글을 찾을수 없어 오류 메세지가 뜨는 상황.
발생현상 : 나의보기에서는 보이는 게시글들이 게시판 상세보기에 접근하면 게시글 없음으로 뜨는 현상 발생.
오류 문구 : java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.
문구 설명 : 스프링이 컨트롤러나 서비스 메서드에서 @RequestParam, @PathVariable, @QueryParam 등으로 파라미터 이름을 가져와야 하는데, 그 이름을 알 수 없어서 생기는 에러.
접근 1. -parameters 플래그를 설정하여 컴파일 시점에 파라미터 이름 정보를 클래스 파일에 포함
설정한 -parameters 플래그는 Java 리플렉션(Reflection) 시에 메서드 파라미터의 이름 정보를 유지하도록 해주는 옵션이다.
이걸 안 주면 파라미터 이름이 "arg0", "arg1" 이런 식으로 나와서 스프링이 어떤 파라미터에 어떤 값을 넣어야 할지 판단 못 할 수 있음.
접근 2. @PathVariable("id")로 파라미터 이름을 명시
@PathVariable에 ("id")로 파라미터 이름을 명시해주었음.
이건 -parameters 플래그 없이도 파라미터 이름을 지정해주는 우회 방법이다.
해결 과정 : GPT 검색결과 해결책의 경로 변수(Path Variable)가 실제 코드와 달라서 혼동이 되어 다른 해결책을 계속 찾고있었다..
GPT는 현업에선 안정성을 위해 대부분 @PathVariable("id") 같이 명시적으로 써주는 걸 선호한다고 알려주었다. 내가 작업한 부분이 아니었기 때문에 문제를 찾고 해결하는데 더 많은 시간이 걸린 것 같다.