Protobuf → JSON
Protocol Buffers 스키마를 샘플 JSON으로 변환하거나 Protobuf 바이너리 데이터를 JSON으로 디코딩. proto3·중첩 메시지·enum 지원. 브라우저 완결, 데이터 전송 없음.
사용 방법
Schema → 샘플 JSON (기본 모드)
- 왼쪽 패널에
.proto스키마를 붙여넣습니다. - 도구가 모든 메시지 타입을 자동으로 감지하고 드롭다운에 표시합니다.
- 메시지 타입을 선택하고 JSON 생성을 클릭합니다.
- 기본 필드 값이 포함된 샘플 JSON이 오른쪽에 표시됩니다.
바이너리 → JSON 모드
- 토글을 사용해 바이너리 → JSON 모드로 전환합니다.
- 위쪽 텍스트 영역에
.proto스키마를 붙여넣습니다. - 두 번째 텍스트 영역에 바이너리 데이터(hex 또는 base64)를 붙여넣습니다.
- 메시지 타입을 선택하고 바이너리 디코드를 클릭합니다.
Proto3 문법 빠른 참조
syntax = "proto3";
package myapp;
message User {
string id = 1;
string name = 2;
int32 age = 3;
repeated string roles = 4;
Address address = 5;
UserStatus status = 6;
}
message Address {
string street = 1;
string city = 2;
string country_code = 3;
}
enum UserStatus {
UNKNOWN = 0;
ACTIVE = 1;
INACTIVE = 2;
}
필드 타입 참조
- 스칼라 타입:
double,float,int32,int64,uint32,uint64,bool,string,bytes - 반복 필드: 필드 앞에
repeated를 붙이면 JSON 배열로 매핑 - 중첩 메시지: 다른 메시지 타입을 필드 타입으로 사용
- enum:
enum으로 정의, 첫 번째 값은 반드시 0 - oneof: 그룹 내 필드 중 한 번에 하나만 설정 가능
개인정보
모든 처리는 클라이언트에서 이루어집니다. 스키마와 바이너리 데이터는 업로드되거나 저장되지 않습니다.
FAQ
Protocol Buffers(Protobuf)란 무엇입니까?
Protocol Buffers는 Google이 개발한 언어 및 플랫폼 중립의 구조화 데이터 직렬화 메커니즘입니다. JSON/XML보다 빠르고 작은 대안으로 .proto 파일에 데이터 구조를 정의하고 생성된 코드로 읽고 씁니다.
데이터가 서버로 전송됩니까?
아니요. 모든 파싱 및 디코딩은 protobufjs 라이브러리를 통해 브라우저 내에서 완결됩니다. 스키마와 바이너리 데이터는 기기 밖으로 나가지 않습니다.
'Schema → 샘플 JSON' 모드란 무엇입니까?
.proto 스키마를 붙여넣고 메시지 타입을 선택하면 기본값(빈 문자열, 0, 빈 배열)을 가진 샘플 JSON 객체가 생성됩니다. 실제 데이터 없이 메시지 구조를 확인할 때 유용합니다.
'바이너리 → JSON'은 어떤 형식을 지원합니까?
16진수(예: 0a 05 41 6c 69 63 65)와 Base64 인코딩된 Protobuf 바이너리 데이터를 모두 지원합니다. 16진수 사이의 공백과 콜론은 자동으로 무시됩니다.
어떤 proto 문법을 지원합니까?
주로 proto3를 대상으로 합니다. 내부 protobufjs 라이브러리로 기본적인 proto2 문법도 처리할 수 있지만 proto3를 권장합니다.