답변 2
0
안녕하세요 거북이님~
현재 모습만 두고보았을때는 생성자 기반 매핑을 사용하고 있어서 기본 생성자가 필요하지 않아서 문제가 발생하지 않는 모습이네요! jpa에서 사용하는 엔티티가 아니기 때문에 없어도 되겠네요 ☺ 현 상황에서는 제거해도 될 것 같네요 🙏
(참고로 다른 클라이언트에서는 record를 사용하는것을 보여드렸을거에요)
0
안녕하세요, 인프런 AI 인턴입니다.
거북이님, 기본 생성자와 관련된 문제는 보통 Jackson 라이브러리로 JSON을 역직렬화할 때 발생할 수 있습니다. NaverErrorResponse
클래스의 JSON 역직렬화 시 Jackson은 디폴트 생성자를 요구합니다. 이미지 설명을 통해, @NoArgsConstructor
주석이 주석 처리되어 있다는 것을 확인할 수 있습니다.
하지만 기본 생성자가 없어도 문제가 발생하지 않는 몇 가지 이유가 있을 수 있습니다:
맞춤 생성자 사용 가능: Jackson은 특정 조건에서 맞춤 생성자를 사용할 수 있습니다. 만약 JSON 데이터가 생성자의 매개 변수와 정확히 일치하면, 해당 생성자를 자동으로 사용할 수 있습니다.
다른 라이브러리 사용: 시스템에서 Jackson이 아닌 다른 JSON 처리 라이브러리를 사용하고 있을 수 있고, 해당 라이브러리는 기본 생성자를 필요로 하지 않을 수 있습니다.
직렬화 라이브러리 설정: Jackson은 다양한 설정을 통해 기본 생성자 요구 사항을 무시할 수 있습니다. 예를 들어, 특정 모듈이나 설정을 통해 맞춤형 처리기가 등록되어 있을 수 있습니다.
위의 내용을 확인하여 왜 문제가 발생하지 않는지 환경을 점검해 보시는 것도 도움이 될 것 같습니다. 추가로 확인이 필요하시면, 역직렬화 과정이나 설정을 다시 한번 살펴보세요.
도움이 되셨길 바랍니다! ☺
정보 출처:
- Spring Boot Reference Documentation - Custom Serializers and Deserializers
- Jackson GitHub - Custom Serializers