한 줄 정의

수신된 이진 버퍼를 객체로 파싱·메모리 복사하는 과정 없이 버퍼 바이트의 주소를 직접 참조하여 데이터를 읽어들이는 기법.

핵심 요지

  • 파싱 오버헤드 제거: 메모리 할당(Allocation) 및 바이트 복사가 전혀 일어나지 않아 역직렬화 시간이 사실상 0ms에 수렴.
  • FlatBuffers 구조: 수신 코드가 전송받은 버퍼를 직접 통과해 읽을 수 있도록 동적 메모리 구조를 이진 포맷으로 사전에 배치.
  • 초저지연 시스템 필수재: 금융 틱 데이터, 게임 백엔드, 실시간 스트리밍 등 지연 시간에 매우 민감한 시스템에서 극적인 성능 발휘.

상세

  • 작동 방식:
    • 기존 방식: 바이너리/텍스트 페이로드 개별 파서 호출 힙 메모리에 인스턴스 생성/복사
    • Zero Copy 방식: 바이너리 버퍼 수신 해당 버퍼 Offset 참조 주소로 즉시 접근 (ByteBuffer.getRootAsMonster)

예시

충돌

  • 빌드 및 스키마 의존성: .fbs 기반 코드 생성기가 필수적이며 데이터 레이아웃에 직접 접근하므로 포맷 변경 시 하위 호환성 관리가 까다로움.

관련 노트