본문 바로가기
카테고리 없음

직렬화와 역직렬화

by 백엔드 개발자 2024. 8. 23.

 

직렬화


  • 객체의 상태를 바이트 스트림으로 변환하는 과정이다.
  • 바이트 스트림은 파일로 저장하거나 네트워크 전송이 가능하고, 객체 상태, 클래스 정보등을 포함한다.
  • 해당 클래스가 Serializable 인터페이스를 구현해야 한다.

 

 

바이트 스트림

 

 

 

역직렬화


  • 바이트 스트림을 객체로 복원하는 과정이다.
  • 객체의 상태를 복원해서 원래의 객체를 다시 사용할 수 있게 된다.
  • 역직렬화시에도 클래스가 Serializable 인터페이스를 구현하고 있어야 한다.

 

Serializable


  • 마커 인터페이스이다. 특별한 메서드가 정의되어 있지 않다.
  • 클래스가 이 인터페이스를 구현함으로써 그 클래스의 객체들이 직렬화될 수 있음을 나타낸다.

 

serialVersionUID


  • 직렬화된 객체의 버전 관리를 위한 고유 ID라고 한다.
  • 클래스 변경시 자동 생성된 값이 달라져서 직렬화된 객체와 클래스간 호환성이 문제가 될 수 있다고 한다.
  • 이를 방지하기 위해 명시적으로 SerialVersionUID선언해서 클래스 버전관리하는 것이 좋다고 한다.

 

 

 

 

본문 제목


내용

 

 

 

 

 

 

 

 

 

출처 

  • 사이트, 검색명 (날짜)