Post

자바의 직렬화(Serializable) 간단하게 알아보기

🤔 직렬화(Serializable)란?

  • 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 byte 형태로 데이터 변환하는 기술이다.
  • 이와 반대로, 변환된 데이터를 다시 객체로 변환하는 기술을 역직렬화(Deserializable) 라고 한다.

  • 예시를 들면, A라는 컴퓨터에서 만든 객체 데이터를 직렬화를 통해 바이트 형태로 변환하여 데이터베이스와 같은 외부 저장소에 저장한다.
  • B라는 다른 컴퓨터는 이 데이터를 가져와서 역직렬화를 통해 자바 객체로 변환하여 사용한다.


🤗 직렬화의 장점

  • 자바 직렬화는 자바 시스템에 최적화 되어있다.
  • 수많은 레퍼런스 타입에 대해 제약 없이 외부로 보낼 수 있다.

    기본 자료형은 쉽게 외부로 보낼 수 있지만 컬렉션, 클래스, 인터페이스 타입들은 별도의 파싱(parsing) 과정이 필요하다.

자바 직렬화의 장점


😭 직렬화의 단점

  • 직렬화는 자바 고유의 기술이므로 자바 시스템끼리만 사용할 수 있다.
  • 객체에 저장된 데이터값 뿐만 아니라 타입 정보, 클래스 메타 정보까지 가지고 있기에 용량이 크다.
  • 역직렬화 과정에서 누군가 악의적인 코드를 넣거나 조작할 수 있는 보안 문제가 존재한다.


직렬화의 내용은 굉장히 많습니다. 이 포스팅에서는 개념과 장단점 정도만 흝어보았습니다. 더 자세한 내용을 원한다면 아래의 잘 정리된 사이트를 참고하시기 바랍니다.

☕ 자바 직렬화(Serializable) - 완벽 마스터하기


누군가가 물어본다면

직렬화는 자바의 기술로, 데이터 구조나 객체 상태를 저장, 전송 가능한 형식으로 변환하는 기술입니다. 이를 통해 다양한 환경에서 데이터를 쉽게 공유하고 재사용할 수 있습니다.
This post is licensed under CC BY 4.0 by the author.