Inflearn brand logo image

인프런 커뮤니티 질문&답변

거북이님의 프로필 이미지
거북이

작성한 질문수

서버개발자 과제전형 완벽가이드 - 1편

외부 API 연동 - 응답객체 정의

JSON 역직렬화

작성

·

10

0

image.pngimage.pngimage.png

 

강사님과 똑같은 상황인 기본 생성자가 없는 상태인데 저는 왜 문제가 발생하지 않을까요?

답변 2

0

J Tech님의 프로필 이미지
J Tech
지식공유자

안녕하세요 거북이님~

현재 모습만 두고보았을때는 생성자 기반 매핑을 사용하고 있어서 기본 생성자가 필요하지 않아서 문제가 발생하지 않는 모습이네요! jpa에서 사용하는 엔티티가 아니기 때문에 없어도 되겠네요 현 상황에서는 제거해도 될 것 같네요 🙏

(참고로 다른 클라이언트에서는 record를 사용하는것을 보여드렸을거에요)

0

안녕하세요, 인프런 AI 인턴입니다.
거북이님, 기본 생성자와 관련된 문제는 보통 Jackson 라이브러리로 JSON을 역직렬화할 때 발생할 수 있습니다. NaverErrorResponse 클래스의 JSON 역직렬화 시 Jackson은 디폴트 생성자를 요구합니다. 이미지 설명을 통해, @NoArgsConstructor 주석이 주석 처리되어 있다는 것을 확인할 수 있습니다.

하지만 기본 생성자가 없어도 문제가 발생하지 않는 몇 가지 이유가 있을 수 있습니다:

  1. 맞춤 생성자 사용 가능: Jackson은 특정 조건에서 맞춤 생성자를 사용할 수 있습니다. 만약 JSON 데이터가 생성자의 매개 변수와 정확히 일치하면, 해당 생성자를 자동으로 사용할 수 있습니다.

  2. 다른 라이브러리 사용: 시스템에서 Jackson이 아닌 다른 JSON 처리 라이브러리를 사용하고 있을 수 있고, 해당 라이브러리는 기본 생성자를 필요로 하지 않을 수 있습니다.

  3. 직렬화 라이브러리 설정: Jackson은 다양한 설정을 통해 기본 생성자 요구 사항을 무시할 수 있습니다. 예를 들어, 특정 모듈이나 설정을 통해 맞춤형 처리기가 등록되어 있을 수 있습니다.

위의 내용을 확인하여 왜 문제가 발생하지 않는지 환경을 점검해 보시는 것도 도움이 될 것 같습니다. 추가로 확인이 필요하시면, 역직렬화 과정이나 설정을 다시 한번 살펴보세요.

도움이 되셨길 바랍니다! ☺

정보 출처:
- Spring Boot Reference Documentation - Custom Serializers and Deserializers
- Jackson GitHub - Custom Serializers

거북이님의 프로필 이미지
거북이

작성한 질문수

질문하기