Qt GRPC

Qt GRPC모듈과 함께 Qt Protobuf 모듈과 함께 빠르고 공간 효율적인 통신이 가능합니다. gRPC 서버와 빠르고 공간 효율적인 통신을 가능하게 합니다. gRPC 서비스를 Qt 프레임워크에 원활하게 통합하여 서버가 Qt 기반인지 여부에 관계없이 다양한 프로그래밍 언어 또는 환경에서 통신할 수 있습니다.

개요

gRPC 는 크로스 플랫폼, 고성능 RPC(원격 프로시저 호출) 프레임워크입니다. Protobuf 컴파일러(protoc)를 사용하여 다양한 프로그래밍 언어용 Protobuf 스키마의 service 섹션에서 클라이언트 및 서버 인터페이스를 생성합니다. 일반적으로 마이크로서비스 스타일 아키텍처에서 서비스를 연결하거나 모바일 애플리케이션 및 브라우저를 백엔드 시스템과 연결하는 데 사용됩니다. 자세한 내용은 gRPC 소개를 참조하세요.

Qt GRPC 는 잘 알려진 시그널 및 슬롯 메커니즘을 사용하여 원격 프로시저 호출의 비동기 특성을 처리하는 C++ 및 Qt Quick API로 구성됩니다. 또한 명령줄 도구와 protoc 를 사용하여 Qt 전용 인터페이스 생성을 간소화하기 위한 CMake API를 제공합니다.

Qt GRPC 현재 클라이언트 측 기능을 지원합니다. 즉, gRPC 호환 서버와 통신할 수 있습니다. 이 서버는 프로토부프 API를 사용하는 자체 서버일 수도 있고 Google API와 같이 공개적으로 사용 가능한 API일 수도 있습니다.

모듈 사용하기

모듈 전제 조건

  • protocQt 코드 생성기 플러그인을 실행하려면 프로토콜 버퍼 컴파일러인 Protoc이 필요합니다. Protoc 설치를 참조하세요.
  • 선택 사항: SSL 지원.
  • 선택 사항: 예제 실행을 위한 gRPC C++.

참고: gRPCProtobuf 설치 및 Qt GRPC 예제 실행에 대한 지침은 vcpkg를 사용한 Windows용 설치 예제를 참조하세요.

C++ API

Qt 기반 프로젝트에 Protobuf 파일을 추가하고 필요한 소스 코드를 생성하려면 qtgrpcgenqtprotobufgen Qt 플러그인과 함께 protoc 컴파일러를 사용합니다.

  • qtprotobufgen 도구는 protobuf 메시지 정의에서 Qt 클래스를 생성합니다. 이 프로세스를 자동화하려면 qt_add_protobuf CMake 명령을 사용합니다.
  • qtgrpcgen 도구는 프로토뷰 서비스 정의에서 인터페이스를 생성합니다. 이 프로세스를 자동화하려면 qt_add_grpc CMake 명령을 사용합니다.

Qt GRPC 을 사용하는 CMake 프로젝트 파일의 최소 예는 다음과 같습니다:

cmake_minimum_required(VERSION 3.16...3.22)
project(MyProject)

find_package(Qt6 REQUIRED COMPONENTS Protobuf Grpc)
qt_standard_project_setup()

qt_add_executable(MyApp main.cpp)

qt_add_protobuf(MyApp
    PROTO_FILES
        path/to/messages.proto
)

qt_add_grpc(MyApp CLIENT
    PROTO_FILES
        path/to/service.proto
)

target_link_libraries(MyApp PRIVATE Qt6::Protobuf Qt6::Grpc)

QML API

모듈의 QML 유형은 QtGrpc 가져오기를 통해 사용할 수 있습니다. 이 유형을 사용하려면 .qml 파일에 다음 import 문을 추가합니다:

import QtGrpc

문서 및 가이드

참조

예제

라이선스 및 저작자 표시

Qt GRPC 모듈은 The Qt Company의 상용 라이선스에 따라 사용할 수 있습니다. 또한 무료 소프트웨어 라이선스에 따라 사용할 수 있습니다: GNU 일반 공중 사용 허가서, 버전 3. 자세한 내용은 Qt 라이선스를 참조하십시오.

또한 Qt 6.8.2의 Qt GRPC 에는 다음과 같은 허용 라이선스에 따라 타사 모듈이 포함될 수 있습니다:

gRPC, version 1.50.1

아파치 라이선스 2.0

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.