입력

출력

Protocol Buffers(Protobuf)란?

Protocol Buffers(Protobuf)는 Google이 개발한 언어·플랫폼 중립 직렬화 형식입니다. .proto 파일은 메시지와 서비스 스키마를 정의하며 gRPC API에서 널리 쓰입니다.

Protobuf 포맷터는 들여쓰기(레벨당 2칸 공백)를 정규화하고 블록 정렬을 맞추며 줄 끝 공백을 제거해 .proto 스키마를 일관되게 유지합니다. Protobuf 스타일 가이드와 소스 코드는 GitHub에서 확인하세요.

사용 방법

1

.proto 내용 붙여넣기

Protocol Buffer 스키마를 왼쪽 편집기에 붙여넣거나 업로드.proto 파일을 불러옵니다.

2

즉시 포맷

포맷터가 들여쓰기(레벨당 2칸 공백)를 수정하고 message·service 블록 구조를 정규화하며 줄 끝 공백을 제거합니다.

3

복사 또는 다운로드

복사로 결과를 복사하거나 다운로드.proto 파일로 저장합니다.

형식 지정 예시

예시: proto3 메시지 정의 형식 지정

형식 지정 전 입력:

syntax="proto3";package api;message User{string name=1;int32 age=2;repeated string roles=3;bool active=4;}

형식 지정 후 출력:

syntax = "proto3";
package api;

message User {
  string name = 1;
  int32 age = 2;
  repeated string roles = 3;
  bool active = 4;
}

자주 묻는 질문

proto2와 proto3의 차이는 무엇인가요?

Proto3는 더 새롭고 권장되는 문법입니다. required/optional 필드 규칙을 없애고 기본값을 단순화하며 JSON 직렬화 지원이 좋습니다. 포맷터는 둘 다 지원합니다.

gRPC 서비스 정의에 쓸 수 있나요?

예. gRPC 서비스 정의는 servicerpc 블록을 쓰는 표준 Protobuf 문법이며 포맷터가 올바르게 처리합니다.

포맷터가 Protobuf 문법을 검증하나요?

포맷터는 들여쓰기와 블록 구조를 정규화하지만 완전한 의미 검증은 하지 않습니다. 전체 컴파일과 검증에는 protoc를 사용하세요.

.proto 파일에 어떤 들여쓰기 스타일을 사용하나요?

포맷터는 공식 Protobuf 스타일 가이드를 따르며 들여쓰기 레벨당 2칸 공백을 사용합니다. message, service, enum 선언 내의 중첩 블록은 모두 일관되게 들여쓰입니다.

관련 도구