브라우저 앱에서 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 이상이 필요합니다.
추가 리소스
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
ASP.NET Core
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기