외부 API 등을 통해 받는 JSON 데이터가 변경되어 매핑을 위한 필드가 없거나 변경이 이루어지지 않았을 경우 에러가 발생할 수 있다. JsonIgnoreProerties 그때 사용할 수 있다.
역직렬화에서, 즉 JSON 데이터를 읽어 객체에 매칭해주는 과정에서 객체에는 없는 알 수 없는 property가 JSON 데이터에 있어도 에러를 내뱉지않고 무시해준다.
클라이언트에서 받는 API JSON이 아래와 같다고 할때
{
"itemName" : "제품명",
"itemPrice" : 25000
}
서버에서 받는 Request가 아래와 같으면 에러가 날 것이다.
{
"itemName" : "제품명"
}
이때, @JsonIgnoreProperties(ignoreUnknown= true) 를 클래스에 붙일 경우 에러가 발생하지 않고 넘어간다.
yml파일에 아래와 같은 설정을 하면 어노테이션과 똑같은 기능이 프로젝트 전체게 적용된다.
deserialization: fail-on-unknown-properties: false
이 두가지 설정이 되어 있지 않았는데 왜 에러가 발생하지 않았을까 의문이 들기도 한다...왜 그럴까?
-> 최초 Spring Boot 환경 설정에서 알 수 없는 property에 대해 에러가 발생하는 것을 disable 시켜버리기 때문이다