proto 파일은 서비스 이름, 메서드, 메시지 번호를 함께 읽는다

gRPC 계약은 TypeScript 인터페이스보다 더 엄격합니다. 필드 번호와 RPC method가 런타임 payload 해석 기준이 됩니다.

users.proto 핵심 조각

syntax = "proto3"; package users; service UserService { rpc GetUserById (UserByIdRequest) returns (User); } message User { int32 id = 1; string name = 2; string email = 3; }

읽는 순서

packageNest option의 package와 일치
servicegetService와 @GrpcMethod의 기준
rpc요청 message와 응답 message를 연결
field numberbinary payload의 호환성 기준

주의: 필드 이름은 바뀌어도 복구 여지가 있지만, 필드 번호를 바꾸면 이전 payload와 호환성이 깨질 수 있습니다.