[Java] 직렬화(Serialization)

2021. 11. 16. 15:51[JAVA]

반응형

직렬화를 알아보기 전에 Primitive Type과 Reference Type을 간단히 알아보자.

Primitive Type은 원시 자료형으로 int, bool, char, short, double과 같은 자료형을 말한다.

Reference Type은 Primitive Type을 제외한 타입들이 모두 Reference Type이다. 

클래스 타입, 인터페이스 타입, 배열 타입, 열거 타입 등이 있다.

필자는 시리얼라이제이션을 데이터 클래스를 직렬화 할 때 사용한다. 

그 이유는?

자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트 형태로 데이터를 변환해야 하기 때문이다.

각자 PC의 OS마다 서로 다른 가상 메모리 주소 공간을 갖기 때문에, Reference Type의 데이터들은 인스턴스를 전달 할 수 없다.

따라서 이런 문제를 해결하기 위해서 주소값이 아닌 Byte 형태로 직렬화된 객체 데이터를 전달해야 한다.

직렬화된 데이터들은 모두 Primitive Type(기본형)이 되고, 이는 파일 저장이나 네트워크 전송 시 파싱이 가능한 유의미한 데이터가 된다. 따라서 전송 및 저장이 가능한 데이터로 만들어 주는 것이 바로 직렬화(Serialization)라고 말할 수 있다. 

반응형