sgcHTTP 기능 매트릭스: HTTP/2, gRPC & Google Cloud | eSeGeCe

sgcHTTP 기능 매트릭스

sgcHTTP가 제공하는 모든 기능을, HTTP/2 클라이언트, gRPC 클라이언트, 세 개의 Google Cloud 클라이언트를 기준으로 정리했습니다. 모든 기능이 Delphi와 C++ Builder에서 동일하게 동작하며, 모든 라이선스에 전체 소스 코드가 제공됩니다. 이번 출시에서는 컴포넌트 하위 페이지가 아직 게시되지 않아, 아래 각 항목은 이 페이지 안에서 자체적으로 완결됩니다.

HTTP/2 클라이언트

멀티플렉싱 스트림, HPACK, ALPN

gRPC 클라이언트

unary & 스트리밍 RPC

Google Cloud

Pub/Sub, Calendar & FCM

표준 & 플랫폼

Delphi 7부터 13까지, C++ Builder

sgcHTTP는 자체 완결형 제품입니다. sgcWebSockets Core 런타임이 함께 포함되어 제공되므로 애드온이 아닙니다.

HTTP/2와 gRPC에는 sgcCustomIndy가 필요합니다. 두 클래스 모두 TLS 프로토콜 협상에 ALPN이 필요한데, 표준 Indy 라이브러리는 이를 지원하지 않으므로 대신 sgcCustomIndy 위에 구축되어 있습니다. 주문에 자동으로 추가됩니다. 세 개의 Google Cloud 클라이언트는 순수 HTTPS이며 필요하지 않습니다.

다섯 개의 클래스, 하나의 유닛

SGC HTTP 팔레트 페이지의 컴포넌트 2종과, 코드 전용 Google Cloud 클래스 3종이 모두 sgcHTTP 유닛에 선언되어 있습니다.

컴포넌트클래스팔레트?설명
HTTP/2 클라이언트TsgcHTTP2Client있음네이티브 HTTP/2 클라이언트입니다. 멀티플렉싱 스트림, HPACK 헤더 압축, ALPN 협상을 지원하며, sgcCustomIndy가 필요합니다.
gRPC 클라이언트TsgcGRPCClient있음HTTP/2 클라이언트 위에 구축된 gRPC 클라이언트입니다. unary, 서버 스트리밍, 클라이언트 스트리밍, 양방향 RPC를 지원하며, sgcCustomIndy가 필요합니다.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_Client없음, 코드 전용Google Cloud Pub/Sub REST API입니다. 토픽, 구독, 스냅샷, 게시, 가져오기를 지원합니다. Core 위의 순수 HTTPS입니다.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_Client없음, 코드 전용Google Calendar API v3입니다. 캘린더와 이벤트의 생성, 수정, 목록 조회, 삭제를 지원합니다. Core 위의 순수 HTTPS입니다.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_Client없음, 코드 전용Firebase Cloud Messaging HTTP v1 API입니다. 호출 한 번으로 푸시 알림 페이로드를 전송합니다. Core 위의 순수 HTTPS입니다.

멀티플렉싱 요청, HPACK, ALPN

TsgcHTTP2Client는 ALPN으로 협상되는 단일 TLS 연결 위에서 HTTP/2(RFC 9113)로 통신합니다. 이것이 sgcCustomIndy 위에 구축된 이유입니다.

기능API비고
연결Host, Port, Active하나의 TLS 연결이 멀티플렉싱되는 모든 요청 스트림을 실어 나릅니다.
연결 열기Connect, ConnectAsync연결을 열고 같은 호출에서 선택적으로 요청을 발행합니다.
읽기Get, GetAsync동기 호출이거나, 응답을 이벤트로 전달받는 발사 후 망각 방식입니다.
쓰기Post, PostAsync, Put, PutAsync, Patch, PatchAsync요청 본문이 스트림이므로 업로드가 메모리에 다 들어갈 필요가 없습니다.
Delete & OptionsDelete, DeleteAsync, Options, OptionsAsync나머지 HTTP 메서드 전체이며, 동일한 동기/비동기 짝을 이룹니다.
응답OnHTTP2Response요청 객체와 응답 객체를 함께 전달하며, Response.DataString과 상태도 포함됩니다.
청크 본문OnHTTP2ResponseFragment청크 응답의 각 조각이 도착할 때마다 최종 OnHTTP2Response보다 먼저 발생합니다.
서버 푸시OnHTTP2PushPromiseHTTP/2 서버 푸시 리소스가 도착하는 대로 드러냅니다.
연결 생명 주기OnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamHTTP/2가 정의하는 연결, 연결 해제, 스트림 리셋 신호입니다.
설정HTTP2Options, Settings상대방에게 전송되는 로컬 HTTP/2 SETTINGS 프레임 값입니다.
안정성WatchDog, HeartBeat, Throttle자동 재연결, 킵얼라이브, 요청 스로틀링이며, sgc HTTP 스택 나머지와 공유됩니다.
인증 & TLSAuthentication, TLSOptions, OnHTTP2Authorization표준 인증 방식과 TLS 구성, 그리고 커스텀 인증 헤더를 위한 훅입니다.
의존성sgcCustomIndyALPN이 TLS 핸드셰이크 중 h2 프로토콜을 협상합니다. 표준 Indy 라이브러리는 이를 지원하지 않습니다.

unary, 서버, 클라이언트, 양방향 스트리밍

TsgcGRPCClient는 HTTP/2 클라이언트의 멀티플렉싱 스트림 위에서 Protocol Buffers 페이로드를 실어 나르므로, gRPC의 네 가지 호출 형태를 모두 지원합니다.

기능API비고
전송ClientTsgcHTTP2Client 인스턴스입니다. gRPC 클라이언트는 자체 연결을 여는 대신 이 위에 올라탑니다.
unary RPCCall, CallAsync, CallString하나의 요청, 하나의 응답입니다. Call은 블로킹되어 TsgcGRPCResponse를 반환하고, CallAsyncOnGRPCResponse로 전달합니다.
서버 스트리밍ServerStreamingCall하나의 요청, OnGRPCStreamMessage로 전달되는 응답 스트림이며 OnGRPCStreamEnd까지 이어집니다.
클라이언트 스트리밍OpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsync요청 스트림이며, 스트림이 닫힐 때 최종 응답 하나를 받습니다.
양방향 스트리밍OpenBidiStream, SendBidiMessage, CloseBidiStream같은 호출 위에서 양쪽이 독립적으로 스트리밍합니다.
취소CancelCall스트림 id로 진행 중인 호출을 취소합니다.
응답OnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponseStatusCode, Data/DataString, Headers, Trailers를 담습니다.
오류OnGRPCError, OnGRPCExceptiongRPC 상태 코드 오류와 전송 계층 예외를 별도로 전달합니다.
메타데이터DefaultMetadata, OnGRPCBeforeRequest호출별 및 기본 gRPC 메타데이터 헤더입니다.
복원력RetryPolicy, Interceptors, ServiceConfig개별 호출 지점을 건드리지 않고도 재시도 동작, 횡단 관심사 인터셉터 체인, 서비스 구성을 제공합니다.
관찰 가능성MetricsCollector클라이언트의 호출 지표를 수집합니다.
의존성sgcCustomIndy기반이 되는 HTTP/2 클라이언트에서 물려받으며, ALPN이 동일한 방식으로 필요합니다.

Pub/Sub, Calendar, 푸시 알림

Google 서비스 계정으로 인증하고 순수 HTTPS로 통신하는 코드 전용 클래스 3종입니다. 어느 것도 sgcCustomIndy가 필요하지 않습니다.

기능API비고
인증GoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenError서비스 계정 JWT입니다: 프로젝트 ID, 클라이언트 이메일, 개인 키. 세 클라이언트 모두 동일한 형태를 공유합니다.
Pub/Sub: 게시 & 가져오기Publish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. 토픽에 메시지를 보내고, 구독에서 메시지를 가져와 확인합니다.
Pub/Sub: 토픽CreateTopic, DeleteTopic, GetTopic, ListTopics코드에서 직접 토픽을 관리합니다.
Pub/Sub: 구독CreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionack 기한 및 push-config 변경을 포함한 구독 생명 주기 전체입니다.
Pub/Sub: 스냅샷CreateSnapshot, DeleteSnapshot, ListSnapshots나중에 재생할 수 있도록 구독의 확인 상태를 스냅샷으로 저장합니다.
Calendar: 캘린더NewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Google Calendar API v3의 캘린더 목록을 감쌉니다.
Calendar: 이벤트NewEvent, UpdateEvent, DeleteEvent, LoadEvents지정한 캘린더에서 이벤트를 생성, 변경, 삭제합니다.
Calendar: 동기화LoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEvent마지막 동기화 이후 변경된 캘린더와 이벤트를 위한 증분 동기화 훅입니다.
FCM: 푸시SendMessageTsgcHTTPGoogleCloud_FCM_Client. 호출 한 번으로 프로젝트에 Firebase Cloud Messaging v1 페이로드를 전송합니다.
TLS와 로깅TLSOptions, LogFile세 Google Cloud 클라이언트 전체에서 공유됩니다.

API, 컴파일러, 대상 플랫폼

와이어 위의 공식 표준을, 지원하는 모든 컴파일러에서 동일한 소스로 사용합니다.

영역내용
HTTP/2RFC 9113이며, HPACK 헤더 압축과 ALPN 프로토콜 협상을 포함합니다.
gRPCgRPC 와이어 프로토콜을 따르는, HTTP/2 스트림 위의 Protocol Buffers 페이로드입니다.
Google CloudPub/Sub REST API, Google Calendar API v3, Firebase Cloud Messaging HTTP v1 API이며, 모두 Google 서비스 계정으로 인증합니다.
플랫폼다섯 클래스 모두 Windows Win32, Windows Win64, Linux64, macOS, iOS, Android를 지원합니다.
의존성HTTP/2와 gRPC 클라이언트는 ALPN을 위해 sgcCustomIndy가 필요합니다. Google Cloud 클라이언트는 번들로 포함된 Core 런타임만 필요합니다.
컴파일러Delphi와 C++ Builder 7부터 13까지.
에디션HTTP/2는 sgcWebSockets Professional 에디션부터, gRPC는 Enterprise 에디션부터, Google Cloud 클라이언트는 Standard 에디션부터 함께 제공됩니다.
라이선스단독 제품입니다. sgcWebSockets Core 런타임이 함께 포함되며 전체 소스 코드가 제공됩니다.
최고의 가성비: All-Access모든 eSeGeCe 제품과 프리미엄 지원이 포함되어 연 €1,059부터 이용할 수 있어요.
All-Access 가격 보기

sgcHTTP로 만들어 보세요

무료 체험판을 다운로드하고 Delphi 또는 C++ Builder에서 첫 HTTP/2 또는 gRPC 호출을 만들어 보세요.