You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
직렬화는 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술을 말하며,
반대로 바이트로 변환된 데이터를 다시 객체로 변환하는 기술은 역직렬화 라고 부릅니다.
왜 필요한가?
각자 PC의 OS마다 서로 다른 가상 메모리 주소 공간을 갖기 때문에, Heap에 생성된 Reference Type의 데이터들은 인스턴스를 전달 할 수 없습니다.
따라서, 이런 문제를 해결하기 위해선 주소값이 아닌 Byte 형태로 직렬화된 실질적인 객체 데이터를 전달해야만 합니다.
직렬화된 데이터들은 모두 Primitive Type(기본형)이 되고, 이는 파일 저장이나 네트워크 전송 시 파싱이 가능한 유의미한 데이터가 되죠!
따라서, 전송 및 저장이 가능한 데이터로 만들어주는 것이 바로 직렬화(Serialization)라고 말할 수 있습니다!
직렬화 조건
자바에서는 간단히 java.io.Serializable인터페이스 구현하면 직렬화/역직렬화가 가능해집니다.
직렬화 대상 : 인터페이스 상속 받은 객체, Reference 타입의 데이터
Primitive 타입이 아닌 Reference 타입처럼 주소값을 지닌 객체들은 바이트로 변환하기 위해 Serializable 인터페이스를 구현해야 합니다.
java 직렬화(Serialization)와 역직렬화(Deserialization)란 무엇인가?
키워드
Java
,직렬화
The text was updated successfully, but these errors were encountered: