서버 측 Cloud Swift SDK 소개

Karl Weinmeister
Director, Developer Relations
Carlos O'Ryan
Software Engineer
*이 콘텐츠는 AI 번역 도구를 사용하여 번역되었습니다. 정확성을 기하기 위해 노력하고 있으나, 자동 번역에는 오류나 누락이 포함될 수 있습니다. 정확한 정보는 영문 원본을 참고해 주시기 바랍니다.
수년 동안 Swift는 주로 Apple 클라이언트 기기와 연결된 UI 언어로 인식되었습니다. Swift 6와 엄격한 동시 실행 검사를 통해 Swift는 Rust와 유사한 데이터 경합 안전성과 예측 가능한 참조 카운트 성능을 결합하여 실행 가능한 시스템 및 클라우드 언어로 거듭났습니다.
이 생태계를 지원하기 위해 Google 엔지니어링팀은 공식 Swift용 Google Cloud API 클라이언트 라이브러리를 출시했습니다. Swift 6.2 이상을 위해 처음부터 새로 빌드된 이 새로운 SDK는 최신 비블로킹 Swift NIO 이벤트 루프, HTTP/2 멀티플렉싱, gRPC 전송, 비용이 들지 않는 컴파일 시간 데이터 경합 안전성을 사용합니다.
이 글에서는 시작하는 데 필요한 모든 정보와 서버 측 Cloud Swift SDK(google-cloud-swift)의 작동 방식을 설명합니다.
서버 측 Swift 및 클라우드 네이티브 동시 실행의 부상
기존 백엔드 개발에서는 개발자 편의성과 리소스 사용률 사이에서 절충점을 찾아야 하는 경우가 많습니다. 관리형 런타임은 빠른 개발을 가능하게 하지만, 하위 수준 시스템 언어는 메모리 및 CPU 사용량을 더 세밀하게 제어할 수 있는 반면 기능 속도가 저하되는 경우가 많습니다.
서버 측 Swift는 이 둘 사이에서 실용적인 균형을 맞추는 것을 목표로 합니다. Swift는 가벼운 런타임과 자동 참조 카운팅(ARC)을 표현력 있는 문법과 결합합니다. 무엇보다도 Swift 6에는 컴파일 시간 동시 실행 검사가 도입되었습니다. 클라우드 마이크로서비스 전반에서 비동기 태스크 간에 상태를 공유할 때 컴파일러는 유형이 Sendable을 준수하도록 강제합니다. 데이터 경합은 바이너리가 컴파일되거나 프로덕션에 도달하기 전에 편집기에서 포착됩니다.
네트워크 계층에서 Google Cloud API에 대한 모든 요청은 연결당 시스템 스레드를 생성하지 않고 멀티코어 Linux 서버 환경에서 확장되는 이벤트 기반 비차단 소켓을 통해 실행됩니다.


Swift SDK 활용 위치
서버 측 Cloud Swift SDK는 서버, 컨테이너, 자동화된 DevOps 환경을 위해 설계되었습니다.
Hummingbird 또는 Vapor와 같은 Swift 웹 프레임워크로 처리량이 높은 마이크로서비스를 빌드할 때 google-cloud-swift는 Cloud Storage, AI, Identity and Access Management(IAM) 및 100개 이상의 다른 Google Cloud 서비스에 대한 네이티브 액세스를 제공합니다. Linux에서 실행 파일을 컨테이너화하고 Cloud Run, Google Kubernetes Engine(GKE) 또는 Compute Engine VM에 직접 배포할 수 있습니다.
SDK는 macOS 및 Linux에서 컴파일되므로 원하는 개발 환경에서 백엔드를 개발한 다음 프로덕션에 원활하게 배포할 수 있습니다. 또한 프런트엔드와 백엔드 모두에서 Swift를 사용하면 애플리케이션별 유형을 두 환경에서 공유할 수 있습니다.
SDK는 플랫폼 엔지니어링과 DevOps 자동화에도 탁월합니다. 개발자 노트북 또는 CI/CD 파이프라인 내에서 실행되는 크로스 플랫폼 CLI 유틸리티와 데이터 순환 스크립트를 작성할 수 있습니다. 이러한 도구는 애플리케이션 기본 사용자 인증 정보(ADC) 또는 워크로드 아이덴티티 제휴를 사용하여 Google Cloud에 자동으로 인증합니다.
Apple App Store용 iOS, iPadOS 또는 visionOS 앱을 빌드하는 경우 google-cloud-swift를 클라이언트 번들에 직접 삽입해서는 안 됩니다. 클라이언트 바이너리 내에서 Google Cloud 서비스 계정 키 또는 관리 사용자 인증 정보를 전송하면 보안 위험이 발생합니다. 직접적인 클라이언트 측 기능의 경우 Apple 플랫폼용 Firebase SDK를 사용하여 사용자 인증, 실시간 Firestore 동기화, 클라이언트 측 보안 규칙을 처리하거나 자체 Cloud Run 백엔드 API를 통해 요청을 라우팅합니다.
IDE 및 패키지 시작하기
google-cloud-swift는 Linux와 macOS를 동등하게 지원하므로 Apple 하드웨어에서 Xcode를 사용하거나 Linux 워크스테이션에서 Visual Studio Code 및 swiftly를 사용하여 개발할 수 있습니다.
swiftly CLI 설치 프로그램을 사용하여 Linux 워크스테이션에 공식 Swift 컴파일러를 설치하려면 다음을 실행합니다.
또는 Ubuntu, Debian, Fedora 또는 Amazon Linux용 공식 Swift 다운로드에서 사전 빌드된 도구 모음 tarball을 직접 다운로드할 수 있습니다. google-cloud-swift에는 Swift 6.2 이상이 필요하므로 설치 후 swift --version으로 컴파일러 버전을 확인하세요.
Linux 파일 시스템에서 클론할 때 Swift Package Manager 베어 저장소 신뢰 경고를 해결하려면 git config --global safe.bareRepository all을 사용하여 빌드하기 전에 Git을 구성합니다.
필요한 패키지를 Package.swift 매니페스트에 추가하세요.
macOS에서는 platforms 지시어를 변경해야 합니다.
대부분의 환경에서 기본 초기화된 클라이언트는 다음과 같이 요청할 수 있습니다.
Document().with { … }가 깔끔하고 스레드 안전한 구성 클로저를 제공하여 어떻게 장황한 임시 변수나 변경 setter를 방지하는지 주의 깊게 살펴보세요.
네트워킹, 전송, 인증
저장소는 인프라 프리미티브를 packages/ 아래의 모듈식 패키지로 분할합니다.
-
swift-google-cloud-auth: 애플리케이션 기본 사용자 인증 정보 검색, 서비스 계정 JWT 서명, 워크로드 아이덴티티 제휴를 위한 외부 계정 교환, API 키를 구현합니다. -
swift-google-cloud-wkt: Google 프로토콜 버퍼의 잘 알려진 유형에 대한 관용적인 Swift 유형을 제공합니다. 여기에는 Swift의Date에 깔끔하게 연결되는 나노초 정밀도의Timestamp표현이 포함됩니다. -
swift-google-cloud-gax: 자동 재시도 루프, 지수 백오프, 페이지로 나누기 상태 머신과 같은 Google API 확장 프로그램을 처리합니다.
인수 없이 클라이언트 라이브러리를 초기화하면 Credentials.default()가 환경(GOOGLE_APPLICATION_CREDENTIALS, 할당량 프로젝트 변수 또는 로컬 Google Cloud CLI 구성)을 자동으로 스캔하고 gRPC 또는 HTTP/2를 통해 연결을 인증합니다.
API 키로 사용자 인증 정보를 프로그래매틱 방식으로 재정의하거나 커스텀 액세스 헤더를 연결해야 하는 경우 명시적 구성 옵션을 전달할 수 있습니다. 예를 들어 이전 예시를 수정하여 다음을 사용할 수 있습니다.
자동 생성된 클라이언트 생태계
Google Cloud는 스키마가 정기적으로 업데이트되는 방대한 API 생태계를 운영합니다. google-cloud-swift를 지원하는 팀은 코드 생성기를 사용하여 최신 기능과 새로운 API로 클라이언트 라이브러리를 자동으로 업데이트합니다. 코드 생성기를 사용하면 중단되는 브레이킹 체인지 없이 안정적인 API를 생성할 수 있습니다. 출시는 정해진 주기에 따라 이루어지지만, 특정 기능이나 API가 긴급하게 필요한 경우 Cloud Customer Care에 문의하세요.
Secret Manager에서 키를 순환해야 하거나 Gemini Enterprise Agent Platform에서 Gemini API를 통해 멀티모달 추론 모델을 호출해야 하는 경우, 생성된 SDK는 일관된 이름 지정 및 async/await 서명을 따릅니다.
이렇게 생성된 클라이언트는 일반 단항 RPC 래퍼 이상의 기능을 제공합니다. 또한 애플리케이션 개발을 간소화하는 래퍼도 제공합니다. 예를 들어 긴 결과를 반복하려면 하나의 RPC로 결과 페이지를 가져오고, 결과 페이지를 반복한 다음, 다음 페이지를 검색하기 위한 새 요청을 준비해야 합니다. 생성된 클라이언트를 사용하면 이 과정이 비동기 반복자가 됩니다. 다음 예시는 GoogleCloudSecretManagerV1을 사용하여 프로젝트 보안 비밀을 쿼리하는 방법을 보여줍니다.
페이지로 나눈 응답은 비동기 시퀀스(AsyncSequence)를 반환합니다. 클라이언트 라이브러리가 비차단 NIO 채널을 통해 백그라운드에서 후속 페이지를 가져오는 동안 for try await를 사용하여 항목을 반복할 수 있습니다.
다음 단계
google-cloud-swift를 사용하면 서버 측 Swift 개발자가 컴파일 시간 경합 안전, 네이티브 비동기/대기 인체공학적 API, OS 스레드 혼잡 없는 엔드 투 엔드 클라우드 인프라를 작성할 수 있습니다.
소스 코드를 검사하거나, 문제를 열거나, 새 베니어를 제공하려면 공식 저장소인 googleapis/google-cloud-swift를 방문하세요.
서버 측 Swift 아키텍처 또는 Cloud Run 컨테이너화에 대해 논의하고 싶으신가요? Google Developer Program에 가입하여 대화를 이어가세요.



