최근 수정 시각 : 2025-10-25 03:45:36

FlatBuffers

flatbuffers에서 넘어옴


<rowcolor=#ffffff,#dddddd> 데이터 직렬화 형식과 설정 파일
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<colbgcolor=#4d5767,#4d5767><colcolor=#ffffff,#dddddd> 데이터 직렬화 형식 <colbgcolor=#4d5767,#4d5767><colcolor=#ffffff,#dddddd> 텍스트 CSV · JSON(NDJSON/JSON Lines) · XML
바이너리 flatbuffers · protobuf
설정 파일 텍스트 JSON(YAML · JSON5 · JSONC) · XML · INI(dotenv · EditorConfig · TOML) }}}}}}}}}


1. 개요2. 특징

1. 개요

공식 문서
깃허브

FlatBuffers

구글에서 개발한 데이터 직렬화 형식.

2. 특징

플랫 버퍼는 전달되는 데이터를 정적으로 사전 컴파일한 후 통신한다. 이는 JSON과 같은 일반적인 텍스트 통신 형식과의 차이점으로, 문자열을 런타임에 파싱하고 해석하는 과정을 생략시켰다. 또 데이터를 바이트 배열 형식으로 전달함으로써 구조적으로 적은 메모리를 사용하고 빠른 성능을 낸다.

한 코드베이스에서 여러 언어가 사용되는 경우에도 유용하다. 언어간의 통신에서 병목이 큰 부분은 일반적인 텍스트 포맷이 아닌 플랫 버퍼로 구현하는 것도 좋다.

데이터를 전송하기 위해서는 우선 전송할 데이터 스키마를 'fbs' 형식으로 작성하고 이를 컴파일해야 한다. 컴파일 결과로 원하는 언어들에 맞는 데이터 직렬화·역직렬화 코드가 자동 생성된다. 이 출력된 코드를 코드베이스에 추가하여 통신하면 된다.

프로토콜 버퍼와 여러면에서 유사한데, 데이터 직렬화를 통하여 효율성을 이뤘다는 점에서 같다. 다만 플랫 버퍼가 데이터 처리 및 전송과정에 훨씬 빠른 속도를 보여준다. 생성된 코드 크기와 라이브러리 자체의 크기도 압도적으로 작다. 직렬화 라이브러리 벤치마크