프로토콜 버퍼

위키백과, 우리 모두의 백과사전.

프로토콜 버퍼
개발자구글
발표일2001년 초 (내부)[1]
2008년 7월 7일(15년 전)(2008-07-07) (공개)
안정화 버전
26.0 위키데이터에서 편집하기 / 2024년 3월 13일(15일 전)(2024년 3월 13일)[2]
저장소
운영 체제전체
플랫폼크로스 플랫폼
종류직렬화 포맷 및 라이브러리, IDL 컴파일러
라이선스BSD
상태지원 중
웹사이트developers.google.com/protocol-buffers/

프로토콜 버퍼(Protocol Buffers, Protobuf)는 구조화된 데이터를 직렬화하는 방식이다. 유선이나 데이터 저장을 목적으로 서로 통신할 프로그램을 개발할 때 유용하다.

[편집]

//polyline.proto
syntax = "proto2";

message Point {
  required int32 x = 1;
  required int32 y = 2;
  optional string label = 3;
}

message Line {
  required Point start = 1;
  required Point end = 2;
  optional string label = 3;
}

message Polyline {
  repeated Point point = 1;
  optional string label = 2;
}

위에서 C++ 버전의 프로토콜 버퍼 스키마를 만든 다음 C++ 소스 코드 파일 polyline.cpp은 아래와 같은 메시지 오브젝트를 사용할 수 있다:

// polyline.cpp
#include "polyline.pb.h"  // generated by calling "protoc polyline.proto"

Line* createNewLine(const std::string& name) {
  // create a line from (10, 20) to (30, 40)
  Line* line = new Line;
  line->mutable_start()->set_x(10);
  line->mutable_start()->set_y(20);
  line->mutable_end()->set_x(30);
  line->mutable_end()->set_y(40);
  line->set_label(name);
  return line;
}

Polyline* createNewPolyline() {
  // create a polyline with points at (10,10) and (20,20)
  Polyline* polyline = new Polyline;
  Point* point1 = polyline->add_point();
  point1->set_x(10);
  point1->set_y(10);
  Point* point2 = polyline->add_point();
  point2->set_x(20);
  point2->set_y(20);
  return polyline;
}

언어 지원[편집]

proto2C++, 자바, 파이썬을 위한 코드 생성기를 제공한다.[3]

타사 구현체는 자바스크립트를 지원한다.[4]

proto3C++, 자바(자바나노 포함), 파이썬, Go, 루비, 오브젝티브-C, C#를 위한 코드 생성기를 제공한다[5]. 3.0.0 베타 2부터 자바스크립트를 지원한다.[6]

타사 구현체는 , PHP, 스칼라, 줄리아를 지원한다.[7]

각주[편집]

  1. “Frequently Asked Questions | Protocol Buffers”. 《Google Developers. 2016년 10월 2일에 확인함. 
  2. “Releases - google/protobuf”GitHub 경유. 
  3. “Protocol Buffers Language Guide”. 《Google Developers》. 2016년 4월 21일에 확인함. 
  4. “Protocol Buffers for JavaScript.”. github.com. 2016년 5월 14일에 확인함. 
  5. “Protocol Buffers Language Guide (proto3)”. 《Google Developers》. 2016년 4월 21일에 확인함. 
  6. “Protocol Buffers v3.0.0-beta-2”. 《Google Developers》. 2016년 5월 14일에 확인함. 
  7. “ThirdPartyAddOns - protobuf - Links to third-party add-ons. - Protocol Buffers - Google's data interchange format - Google Project Hosting”. Code.google.com. 2012년 11월 7일에 확인함. 

외부 링크[편집]