1. proto file
message User { int32 id = 1; }필드 번호와 타입이 호환성 기준입니다.
gRPC의 강점은 하나의 계약이 여러 산출물에 동시에 적용된다는 점입니다. 그래서 계약 변경의 영향 범위를 먼저 봐야 합니다.
message User { int32 id = 1; }필드 번호와 타입이 호환성 기준입니다.
UserServiceClient
UserServiceController프록시와 handler 타입이 계약에서 만들어집니다.
GetUserById({ id })요청/응답 payload가 같은 이름과 타입으로 흐릅니다.
| 변경 | 영향 | 먼저 확인할 곳 |
|---|---|---|
| 필드 추가 | 기본값과 optional 처리 | message schema |
| 필드 번호 변경 | 이전 payload 해석 실패 | 호환성 테스트 |
| service/method 이름 변경 | 프록시와 handler 매핑 실패 | Nest decorator와 client token |
핵심: .proto는 문서가 아니라 빌드와 런타임을 동시에 움직이는 계약입니다.