
1. 어떤 에러인가.
Spring Boot 를 처음부터 다시 설정하는데 DB에서 select 하는 도중 해당 이슈가 터졌다.

에러 로그를 보면 수상해 보이는것이 하나 있다. "Serializer".
VO , DTO 객체가 Serializer를 상속받고 있을때가 있는데, 데이터를 json형태로 변환하기 위해 직렬화하는것이다.
해당 이슈는 직렬화 하는 과정에서 접근 제한자가 public 이거나 getter/setter를 이용하기 때문에 인스턴스 필드를 private으로 선언하면 json으로 변환하는 과정에서 에러가 발생한다고 한다.
2. 이슈해결
롬복을 사용하는 경우 @Getter가 있지 않아서 JSON으로 파싱이 불가해서 안된다는 글도 있었는데, @Data 를 사용하고있었기 때문에 이건 아니라고 생각되어 내가 해결한 방법은 2가지가 있었다.
<첫번째 해결방법>
각 필드에 @JsonProperty 를 붙여서 해결했다.

잘 해결되었다.
※주의할 점은 json으로 변환을 원치 않는 필드는 @JsonIgnor를 선언해 주어야 한다.
<두번째 해결방법>
private따위 상관없이 ObjectMapper가 모든 필드를 감지할 수 있도록 세팅해주어야 한다.
참조
https://steady-hello.tistory.com/90
[jackson, issue] 이슈 해결 - No serializer found for class
어떤 이슈? 급하게 테스트해볼 이슈가 있어서 간단하게 객체를 만들고 이 객체를 json string으로 변환해야 할 일이 있었습니다. 그래서 테스트용 class를 생성하고 이를 ObjectMapper의 writeValueAsString()
steady-hello.tistory.com
https://dumdildor.tistory.com/13
[Jackson] JSON Serialization Error
개발시 발생한 문제를 개인적으로 다시 반복하지 않기 위해 정리함. <개요> 매번 HTTP 요청을 통해 받는 JSON String 을 Jackson 의 ObjectMapper 를 통해 Map 의 Key-Value 형태로 변환하여 사용하였다. 그러다
dumdildor.tistory.com
'덕개' 카테고리의 다른 글
| [Vue.js] 엑셀(Excel) 다운로드 기능 구현하기 ExcelJS, file-saver (0) | 2023.02.10 |
|---|---|
| [Javascript] var , let , const 차이 (ES5, ES6) (0) | 2023.01.19 |
| [음악 장르] 01. 컨트리 뮤직(Country Music) - 카우보이 캡, 블루진 그리고 가죽부츠 (2) | 2022.10.29 |
| 스프링부트(Spring Boot) 로 RESTful한 API를 만들어보자 (2) - 디비연결, 데이터가져오기 (0) | 2021.10.31 |
| 스프링부트(Spring Boot) 로 RESTful한 API를 만들어보자 (1) - 간단설명, 환경설정 (0) | 2021.10.18 |