브라우저 앱에서 gRPC 사용

작성자: James Newton-King

브라우저에서 gRPC 서비스를 직접 호출하는 것은 불가능합니다. gRPC는 HTTP/2 기능을 사용하며, 브라우저에서 gRPC 클라이언트를 지원하기 위해 웹 요청에 필요한 제어 수준을 제공하지 않습니다.

ASP.NET Core의 gRPC는 gRPC-Web 및 gRPC JSON 코드 변환이라는 두 가지 브라우저 호환 솔루션을 제공합니다.

gRPC-Web

gRPC-Web을 사용하면 브라우저 앱은 gRPC-Web 클라이언트 및 Protobuf를 사용하여 gRPC 서비스를 호출할 수 있습니다.

  • 일반 gRPC와 비슷하지만 약간 다른 유선 프로토콜이 있어 HTTP/1.1 및 브라우저와 호환됩니다.
  • 이렇게 하려면 브라우저 앱이 .proto 파일에서 gRPC 클라이언트를 생성해야 합니다.
  • 브라우저 앱에서 이진 메시지의 고성능과 낮은 네트워크 사용량을 활용할 수 있습니다.

.NET는 gRPC-Web을 기본적으로 지원합니다. 자세한 내용은 ASP.NET Core gRPC 앱의 gRPC-Web을 참조하세요.

gRPC JSON 코드 변환

gRPC JSON 코드 변환을 사용하면 브라우저 앱은 JSON을 사용한 RESTful API인 것처럼 gRPC 서비스를 호출할 수 있습니다.

  • 브라우저 앱에서 gRPC 클라이언트를 생성하거나 gRPC에 관해 알고 있을 필요가 없습니다.
  • RESTful API는 HTTP 메타데이터로 .proto 파일에 주석을 달아 gRPC 서비스에서 자동으로 만들어집니다.
  • 앱은 gRPC와 JSON 웹 API 둘 다에 대해 별도의 서비스를 구축하는 노력을 들이지 않고도 둘 다를 지원할 수 있습니다.

.NET는 gRPC 서비스에서 JSON 웹 API 만들기를 기본적으로 지원합니다. 자세한 내용은 ASP.NET Core gRPC 앱에서 gRPC JSON 코드 변환을 참조하세요.

참고 항목

gRPC JSON 코드 변환에는 .NET 7 이상이 필요합니다.

추가 리소스