카테고리 없음

<spring> LocalDateTime 역직렬화(deserialization)

잼추 2024. 6. 1. 01:06

  •  역직렬화
    • 역직렬화(Deserialization)는 데이터 구조나 객체 상태를 저장한 파일 또는 데이터에서 복원하는 과정
    • 네트워크를 통해 전송되거나 파일에 저장된 바이트 스트림을 원래의 객체로 변환
  • 역직렬화의 중요성
    • 애플리케이션 간에 안전하게 전송,저장시 필수적
    • 데이터를 전송할 때 JSON, XML 등의 형식으로 직렬화하여 전송하고,
      클라이언트에서는 이 데이터를 받아 역직렬화하여 사용
  • 역직렬화의 위험성
    • 데이터 코드 내에서 객체로 변환 시, 역직렬화 과정을 통해 시스템 내부에서 에러 발생 가능
  • 역직렬화 방지 전략
    • 입력 데이터의 검증, 신뢰할 수 있는 데이터만 역직렬화 처리
    • 역직렬화 과정에서 발생할 수 있는 예외를 적절히 처리


문제 상황

LocalDateTime 객체를 JSON 형식으로 변환할 때,

표준 JSON 라이브러리는 LocalDateTime 형식을 자동으로 인식하고 처리하지 못하여

역직렬화 과정에서 예외 발생

 

해결방법

직렬화 및 역직렬화 모듈 사용: JavaTimeModule 를 .redisConfig에 등록

 

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());