계약 우선

gRPC 계약 변경은 proto에서 호출 코드까지 함께 움직인다

NestJS gRPC는 `.proto`의 package, service, rpc 이름을 런타임에 맞춰 찾습니다. 스키마가 바뀌면 서버 핸들러와 클라이언트 프록시까지 같은 방향으로 갱신해야 합니다.

proto

서비스 계약

package users, UserService, 메시지 필드 번호가 호출의 기준이 됩니다.

server

마이크로서비스 부트

Transport.GRPCprotoPath가 실제 계약 파일을 로드합니다.

handler

GrpcMethod 매핑

데코레이터의 서비스명과 메서드명이 proto의 선언과 맞아야 요청이 도착합니다.

client

프록시 생성

getService로 가져온 프록시는 proto에 정의된 RPC 메서드만 노출합니다.

call

Observable 응답

NestJS 쪽 호출은 Observable로 오므로 lastValueFrom에서 오류까지 처리합니다.

필드 추가새 번호로 선택 필드를 더하면 기존 클라이언트와 함께 운영하기 쉽습니다.
번호 변경같은 필드명이어도 번호가 바뀌면 직렬화 계약이 깨질 수 있습니다.
이름 불일치package, service, rpc 이름이 다르면 런타임에서 메서드를 찾지 못합니다.