[Java] 직렬화(Serialization) 역직렬화(Deserialization) & Redis

전재준·2021년 8월 23일
0

Java

목록 보기
4/15

직렬화 (Serialization)

  • 객체를 다른곳으로 전송하거나 저장하기 위해서 사용한다.
  • 직렬화는 객체의 필드를 바이너리 형식이나 바이트스트림을 바꾸는 작업을 말한다.
  • 직렬화 되는 대상은 객체의 값이나, 컨텐츠라는 점이며, 클래스 정의는 포함되지 않는다.

역직렬화 (Deserialization)

  • 직렬화의 반대로 다시 객체의 형태로 만드는 것을 의미한다.

  • Redis 공부중 데이터를 역직렬화 해서 값을 가져오는 구간에서

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:Unrecognized field "변수명" not marked as ignorable

라는 에러가 발생했다.

ObjectMapper는 기본적으로 대소문자를 구분하므로 아래과 같은 에러가 난다.

ObjectMapper > readValue 설정 후

대소문자 구분안해주는 설정

new ObjectMapper().configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true).readValue(value, classType);

설정후 정상적 으로 값을 가져올 수 있었다.

추가 메모
@JsonIgnoreProperties(ignoreUnknown = true)
json 데이터를 받아와서 객체로 맵핑할 때 클래스에 선언되지 않은 프로퍼티가 json에 있으면 오류 발생 (json 구성 = 클래스 구성)
이럴 때 예외 발생시키지 말고 무시하기 위해 @JsonIgnoreProperties(ignoreUnknown = true) 추가


참고자료

0개의 댓글

관련 채용 정보