Unity/Unity Server 공부

Protobuf란 무엇인가?

하참이 2024. 11. 20. 22:01
Protobuf (Protocol Buffers)란 구조화된 데이터를 이진 형식으로 효율적이고 컴팩트하게 저장하여 네트워크 상에서 더 빠르게 데이터 전송을 할 수 있도록 하는 데이터 직렬화 형식이다.

 

 

 

 

 

 Server 제작을 공부하다보면 XML, JSON과 같은 데이터 포맷을 사용하여 데이터를 주고받는 다는 사실을 알게 될 것입니다 (자세한 내용은 데이터 직렬화 참조). 하지만 XML, JSON은 많이 들어봤어도 Protobuf 처음 들어봤거나 들어봤어도 자세히 모르는 (나같은) 사람들이 있을 것입니다.

 

 

 Protobuf란 구글(Google)에서 개발한 이진 데이터 직렬화 형식입니다. Protobuf는 다양한 언어를 지원하고 플랫폼 독립적이라는 장점을 가지고 있어 다른 플랫폼으로 쉽게 포팅할 수 있습니다.

 

 

 또한 XML, JSON과 같은 텍스트 기반 형식보다 네트워크를 통한 전송이 빠르고, 새로운 기능, 변화하는 기능을 처리하는데 이상적이며, 더 적은 메모리를 사용하여 더 빠른 처리가 가능합니다.

 

 

 정리하자면 다음과 같습니다.

 

 

 

Protobuf

0. 구조화된 데이터를 이진 형식으로 효율적이고 컴팩트하게 저장하여 네트워크 상에서 더 빠르게 데이터 전송을 할 수 있도록 하는 데이터 직렬화 형식이다.
1. 다양한 언어를 지원한다.
2. 플랫폼 독립적이다.
3. 바이너리 형식으로 인해 네트워크를 통한 전송이 빠르다.
4. 새로운 기능, 변화하는 기능에 대한 처리하는데 이상적이다.
5. 속도 최적화로 적은 메모리 사용량으로 빠른 처리가 가능하다.

 

 

 

반면에 바이너리 형태로 인코딩 되는 데이터기 때문에 '사람이 읽을 수 없다' 라는 점은 보안쪽에서는 장점이 될 수 있지만 디버깅 및 문제해결에서는 단점이 되겠습니다.

 

 

 

자세한 내용은 다음 문서에서 확인하실 수 있으며, 이후 작성할 내용들은 C# (혹은 C++)에 관련하여 작성 될 예정입니다.

 

 

감사합니다.

 

https://protobuf.dev/

 

Protocol Buffers

Protocol Buffers are language-neutral, platform-neutral extensible mechanisms for serializing structured data.

protobuf.dev