Engineering Note

Serialization, Stream, Buffer 개념 정리 본문

SW Engineering

Serialization, Stream, Buffer 개념 정리

Software Engineer Kim 2025. 3. 29. 18:35

Serialization(직렬화)는 외부와 통신이 많은 웹 개발자라면 자주 마주 치는 개념이다. 한 번 정리 할 필요가 있어서 공부하면서 관련 개념을 같이 정리했다. 

 

Serialization란?
→ 메모리 내부 데이터(객체 등)를 외부 저장/전송 가능한 연속된 데이터(byte[])로 변환하는 것.
Stream이란?
→ 시간적으로 순차적이고, 공간적으로 연속된 데이터를 처리하기 위한 추상적 통로이자 바이트 기반 구현체
Buffer란?
→ 데이터를 임시로 담아두는 공간 (RAM 일부), 실제 메모리위에 바이트 배열.
Stream과 Serialization의 관계는?
→ 직렬화된 데이터가 흐르는 곳이 바로 Stream이고, 그 Stream은 결국 바이트 배열 기반으로 구현된다.
왜 byte 배열(byte[])은 쓰는가?
→ 모든 데이터의 공통된 최소 표현 단위이자, CPU/디스크/네트워크가 다루기 쉬운 연속 구조이기 때문.

 

 

개념적으로 이해하면 위와 같고, 흐름으로 이해하려면 아래처럼 정리할 수 있다.

 

  • 데이터는 I/O가 일어날 때 흐른다. 그것이 Stream이다.
  • 객체는 메모리 안에서만 존재한다. 외부로 나가려면 직렬화된다.(Serializaion)
  • 문자열도 바이너리다. 다만, 사람이 읽을 수 있는 형태일 뿐이다.(Encoding)
  • Web에서 Server와 Client가 통신할 때 사용하는 JSON은 약속된 문자열 구조, 본질은 구조화된 데이터다.
  • Stream은 시간적 개념이고, byte[]는 그걸 실현하는 물리적 구조다.

 

 

 

 

 

Comments