
직렬화
- Object를 ByteStream으로 변환하는 과정
- 객체나 데이터 구조를 네트워크나 저장소(ex. 배열 버퍼 또는 파일 형식)를 통한 전송에 적합한 형식으로 변환하는 프로세스
[https://developer.mozilla.org/ko/docs/Glossary/Serialization] - 자바 언어에서 사용되는 Object 또는 Data를 다른 컴퓨터의 자바 시스템에서도 사용할 수 있도록 바이트 스트림 형태로 연속적인 데이터로 변환하는 포맷 변환 기술
- JVM의 힙 혹은 스택 메모리에 상주하고 있는 객체 데이터를 직렬화를 통해 바이트 형태로 변환하여 데이터베이스나 파일과 같은 외부 저장소에 저장해 두고, 다른 컴퓨터에서 이 파일을 가져와 역직렬화를 통해 자바 객체로 변환하여 JVM 메모리에 적재한다
- 바이트 스트림은 platform-independent해서 어느 한 플랫폼에서 직렬화된 객체(데이터)는 다른 플랫폼으로 역직렬화할 수 있다
- 객체를 직렬화하기 위해서는 java.io.Serializable interface를 구현한다
[https://www.study24x7.com/article/164/serialization-and-deserialization-in-java]
cf. byteStream (바이트 스트림)
- 스트림은 클라이언트나 서버 간 출발지, 목적지로 입출력하기 위한 데이터가 흐르는 통로를 말한다. 자바는 스트림의 기본 단위를 바이트로 두고 있기 때문에, 네트워크나 데이터 베이스로 전송하기 위해 최소 단위인 바이트 스트림으로 변환하여 처리한다.
- There are two types of streams in Java - Byte Stream and Character Stream. Byte streams in Java are used to perform input and output operations of 8-bit bytes while the Character stream is used to perform input and output operations for 16-bits Unicode. Character streams are useful in reading or writing text files which are processed character by character. Byte Streams are useful to read/write data from raw binary files.
자바에는 스트림에 두 가지 종류가 있다 - 바이트 스트림, 문자 스트림. 자바에서 바이트 스트림은 8비트-바이트들의 입출력 작업을 수행하는 데 사용되는데 반해, 문자 스트림은 16비트의 유니코드 입출력 작업을 수행하는 데 사용된다. 문자 스트림은 문자별로 하나씩 처리되는 텍스트 파일들을 읽거나 쓰는 데 유용하다. 바이트 스트림은 원본 바이너리 파일로부터 데이터를 읽거나 쓸 때 유용하다.
[https://www.scaler.com/topics/java/byte-stream-in-java/]
☕ 자바 직렬화(Serializable) - 완벽 마스터하기
자바의 직렬화 & 역직렬화 직렬화(serialize)란 자바 언어에서 사용되는 Object 또는 Data를 다른 컴퓨터의 자바 시스템에서도 사용 할수 있도록 바이트 스트림(stream of bytes) 형태로 연속전인(serial) 데
inpa.tistory.com
역직렬화
- 역직렬화는 직렬화의 반대 과정이라고 보면 된다
- 즉, 바이트 스트림을 다시 Object로 변환하는 과정
'JAVA' 카테고리의 다른 글
[JAVA] 천 단위마다 쉼표로 구분하기 - DecimalFormat, NumberFormat (1) | 2024.11.04 |
---|---|
[JAVA] 열거형 enum (6) | 2024.10.09 |
[JAVA] 큐(Queue), 덱(Deque) 구현체, 메서드 정리 (0) | 2024.09.30 |
[JAVA] 자바와 C언어 메모리 구조 비교 (0) | 2024.08.19 |
[JAVA] comparable, comparator 비교 (0) | 2024.07.03 |