본문 바로가기

개인공부/네트워크

바이너리 전송 방식 vs 텍스트 전송 방식

1. 텍스트 전송 방식 (Text-based Transmission)

 특징

  • 사람이 읽을 수 있는 문자 기반 포맷
  • 데이터를 문자열(String) 형태로 직렬화해서 전송
  • 예: JSON, XML, HTTP, CSV 등

예시

 
{ "id": 123, "name": "Soohwan", "age": 29 }
  • 전송 전에 문자열로 변환 (serialization)
  • 수신 후 파싱 (deserialization)

장점

  • 디버깅 쉽고, 로깅에 유리
  • 시스템 간 호환성 높음

단점

  • 용량이 큼 (숫자도 문자열로 전송됨)
  • 파싱에 오버헤드 존재
  • 속도 느림

 2. 바이너리 전송 방식 (Binary-based Transmission)

 특징

  • 데이터를 struct, int, float, long 등 원시 형태 그대로 전송
  • 보통 memcpy()나 write()로 바로 버퍼에 넣고 전송
  • 예: Protocol Buffers, FlatBuffers, raw struct send()

 예시 (C 구조체)

 
struct { int id; // 4 bytes
char name[20]; // 20 bytes
int age; // 4 bytes };

→ 메모리 그대로 28바이트 전송

 장점

  • 빠르고, 용량 작고, 성능 좋음
  • 파싱이 거의 필요 없음 (메모리 복사만)

int 12345678

 

바이너리 32bit 정수 4바이트
텍스트 "12345678" (문자 8개) 8바이트

 단점

  • 사람이 읽기 어려움
  • 엔디안 차이, 정렬(padding), 시스템 의존성 발생 가능

 실제 사용 예

상황전송 방식
REST API 텍스트(JSON, XML)
고성능 내부 통신 (트레이딩 등) 바이너리(struct 전송)
IoT 센서 통신 바이너리
웹/모바일 앱 서버 통신 텍스트(JSON)

 요약

항목텍스트 방식바이너리 방식
사람이 읽기 가능 불가
용량 작음
성능 느림 빠름
파싱 필요 거의 없음
호환성 높음 낮을 수 있음
예시 JSON, HTTP struct, ProtoBuf

'개인공부 > 네트워크' 카테고리의 다른 글

포트 포워딩  (0) 2025.05.15
XDR  (1) 2025.04.30
TCP/IP 의 송수신 원리 한눈에  (0) 2025.01.28
epoll 의 EAGAIN  (0) 2025.01.23
epoll 의 Edge-Triggered 방식  (0) 2025.01.23