.proto 변경은 서버, 클라이언트, 런타임 호출까지 번진다

gRPC의 강점은 하나의 계약이 여러 산출물에 동시에 적용된다는 점입니다. 그래서 계약 변경의 영향 범위를 먼저 봐야 합니다.

1. proto file

message User { int32 id = 1; }

필드 번호와 타입이 호환성 기준입니다.

2. generated type

UserServiceClient UserServiceController

프록시와 handler 타입이 계약에서 만들어집니다.

3. runtime call

GetUserById({ id })

요청/응답 payload가 같은 이름과 타입으로 흐릅니다.

변경영향먼저 확인할 곳
필드 추가기본값과 optional 처리message schema
필드 번호 변경이전 payload 해석 실패호환성 테스트
service/method 이름 변경프록시와 handler 매핑 실패Nest decorator와 client token

핵심: .proto는 문서가 아니라 빌드와 런타임을 동시에 움직이는 계약입니다.