[TIL] 자바 Serializable의 serialVersionUID

Soeng_dev·2024년 12월 14일

serialVersionUID와 직렬화 버전 관리

  • 자바에서 serialVersionUID직렬화(serialization)역직렬화(deserialization) 간의 호환성을 보장하기 위해 사용.
  • 객체가 직렬화되어 저장될 때 해당 클래스의 버전을 추적,
  • 클래스가 수정되었을 때 발생할 수 있는 호환성 문제를 방지
  • 직접 지정하지 않으면 java가 임의로 지정 -> 클래스 구조/위치 바뀌면 달라질 가능성 존재해 위험

serialVersionUID의 역할

  • 클래스 수정에 따른 직렬화된 객체의 호환성 문제 방지
    객체가 직렬화된 후, 클래스가 수정되면 직렬화된 데이터와 로드할 클래스 간의 구조가 달라져 InvalidClassException 오류가 발생할 수 있음

  • 클래스 변경에 따른 역직렬화 오류 방지
    역직렬화 시 serialVersionUID를 사용해 클래스 버전이 일치하는지 확인

  • 클래스 구조 변경 시 역직렬화 오류 예방
    serialVersionUID는 클래스 구조가 변경되었을 때 이를 식별할 수 있는 고유 식별자 역할

profile
Software Engineer

0개의 댓글