카테고리 없음

자바 객체의 직렬화(Serializable)

ddangz 2021. 2. 22. 16:20

직렬화 란? 

 

 - 자바의 객체를 스트림을 통한 입출력을위해 바이트형식으로 변환하기 위함이다.

 

역직렬화 란?

 

 - 직렬화된 객체를 원래 모양으로 되돌리는 과정을 역직렬화라고 지칭한다.

 

 

한 마디로 데이터를 저장하고 쓰기위해 네크워크 통신이 가능한 형태로 변환하는과정이라고 볼 수 있다.

 

사용 이유?

1. 값 형식의 데이터 : int, char 등 값 형식의 데이터는  직접 접근이 가능

2. 참조 형식의 데이터 : ex)포인터변수, object 등 

 

이 두가지 데이터 중에서 실제 디스크에 쓰고 저장할수 있는 데이터는 1번 뿐이다

 

왜? 

 

객체를 생성하고 그 주소값을 가진 객체와 데이터를 저장 후 종료하면

기존에 메모리에 할당되었던 객체의 주소값이 소멸되게 된다

 

그래서 "직렬화" 라는 과정을 통해 소실될 수 있는 데이터, 주소값들을 끌어모아

변환하여 보존하기 위함이다.