proto 정의
rpc GetUserById
요청 메시지와 응답 메시지의 필드 번호를 계약으로 고정한다.
NestJS gRPC 구현은 파일을 여러 개 수정하지만 기준은 하나다. users.proto의 package, service, rpc, message가 런타임 설정과 TypeScript 인터페이스까지 이어져야 한다.
rpc GetUserById
요청 메시지와 응답 메시지의 필드 번호를 계약으로 고정한다.
Transport.GRPC
package, protoPath, url을 설정하고 마이크로서비스로 기동한다.
@GrpcMethod
proto의 service와 method 이름을 Nest 컨트롤러 메서드에 매핑한다.
ClientGrpc
getService로 프록시를 얻고 Observable 결과를 HTTP 응답으로 바꾼다.
package, service, method 이름이 proto와 코드에서 동일하다.
메서드를 찾지 못하거나 UNIMPLEMENTED 오류로 돌아온다.
서버 url과 클라이언트 url, protoPath가 같은 대상을 본다.
연결 실패, deadline 초과, 빈 기본값 응답으로 나타난다.
not found를 빈 User로 숨길지 gRPC status로 보낼지 정한다.
호출자는 성공 응답과 도메인 실패를 구분하지 못한다.