Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- R
- Algorithm
- Serialization
- s
- C 언어 코딩 도장
- 윤성우 열혈자료구조
- stream
- 메모리구조
- coding test
- 혼자 공부하는 C언어
- C programming
- 이것이 자바다
- 이스케이프 문자
- 알기쉬운 알고리즘
- Stack
- JSON
- Graph
- datastructure
- Selection Sorting
- buffer
- list 컬렉션
- insertion sort
- 윤성우의 열혈 자료구조
Archives
- Today
- Total
Engineering Note
Serialization, Stream, Buffer 개념 정리 본문
Serialization(직렬화)는 외부와 통신이 많은 웹 개발자라면 자주 마주 치는 개념이다. 한 번 정리 할 필요가 있어서 공부하면서 관련 개념을 같이 정리했다.
Serialization란?
→ 메모리 내부 데이터(객체 등)를 외부 저장/전송 가능한 연속된 데이터(byte[])로 변환하는 것.
Stream이란?
→ 시간적으로 순차적이고, 공간적으로 연속된 데이터를 처리하기 위한 추상적 통로이자 바이트 기반 구현체
Buffer란?
→ 데이터를 임시로 담아두는 공간 (RAM 일부), 실제 메모리위에 바이트 배열.
Stream과 Serialization의 관계는?
→ 직렬화된 데이터가 흐르는 곳이 바로 Stream이고, 그 Stream은 결국 바이트 배열 기반으로 구현된다.
왜 byte 배열(byte[])은 쓰는가?
→ 모든 데이터의 공통된 최소 표현 단위이자, CPU/디스크/네트워크가 다루기 쉬운 연속 구조이기 때문.
개념적으로 이해하면 위와 같고, 흐름으로 이해하려면 아래처럼 정리할 수 있다.
- 데이터는 I/O가 일어날 때 흐른다. 그것이 Stream이다.
- 객체는 메모리 안에서만 존재한다. 외부로 나가려면 직렬화된다.(Serializaion)
- 문자열도 바이너리다. 다만, 사람이 읽을 수 있는 형태일 뿐이다.(Encoding)
- Web에서 Server와 Client가 통신할 때 사용하는 JSON은 약속된 문자열 구조, 본질은 구조화된 데이터다.
- Stream은 시간적 개념이고, byte[]는 그걸 실현하는 물리적 구조다.
'SW Engineering' 카테고리의 다른 글
| [SW Engineering] 비동기 통신 직접 만들면서 익히기 (0) | 2025.07.21 |
|---|---|
| 동기(Synchronous) vs 비동기(Asynchronous) (2) | 2025.06.17 |
| 다양한 JSON 구조와 Java Class 매핑 하기 (0) | 2025.03.30 |
| JSON 개념과 구조 쉽게 파악하기 (0) | 2025.03.30 |
| Docker를 사용하여 Redis와 Kafka를 설치하고 Spring Boot 프로젝트와 연결하기 (0) | 2025.03.28 |
Comments