직렬화(Serialization)
객체 데이터를 통신하기 쉬운 포멧(Byte,CSV,Json..) 형태로 만들어주는 작업
연속적인 데이터(스트림)로 변형하여 전송 가능한 형태로 만드는 것
역직렬화(Deserialization)
직렬화된 데이터를 다시 객체의 형태로 만드는 것
직렬화는 왜 필요한가
자바에는 원시타입(Primitive Type)이 byte,short,int,long,float,double,boolean,char 총 8가지가 있다.
그리고 그 외 객체들은 주소값을 갖는 참조형 타입이다.
원시타입은 stack에서 값 그 자체로 갖고있어 외부로 데이터를 전달할때, 값을 일정한 형식의 raw byte 형태로 변경하여 전달할 수 있다.

하지만
객체의 경우 실제데이터는 Heap영역에 존재하고, stack에서는 Heap영역에 존재하는 객체의 주소(메모리 주소)를 갖고 있다.
주소값을 다른 으로 전송하는건 의미가 x
주소값의 데이터(실체)를 Primitive 한 값 형식 데이터로 변환하는 작업을 거친 후, 전달해야한다.
자바에서 직렬화를 하는 방법 : Serializable 인터페이스 구현
class Sample implements Serializable {
}'Programing Language > JAVA' 카테고리의 다른 글
| Java, Js 변수 차이점 (0) | 2025.02.25 |
|---|---|
| 메서드 안에서 변수값 변하는경우 (0) | 2024.11.13 |
| Serializable, Throwable, Exception (0) | 2024.09.28 |
| 정수를 표현하기위한 자료형 (1) | 2024.09.04 |
| java.util.Optional (0) | 2024.05.22 |