Google PCD: API 설계, 통합 및 이벤트 기반 개발 — 학습 가이드

다음의 일부입니다: Google Professional Cloud Developer — 학습 가이드. 검증된 답안으로 연습하기: Google 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.

개요

Google Cloud에서의 최신 애플리케이션 통합은 잘 설계된 동기식 API와 복원력 있는 비동기 및 이벤트 기반 패턴을 결합합니다. 목표는 명확한 명세, 강력한 ID, 일관된 오류 처리, 그리고 장애, 확장 또는 변경 상황에서도 지연 시간을 낮고 가용성을 높게 유지하는 운영 제어 기능을 제공하는 것입니다. 이 섹션에서는 프로토콜 및 API 선택, 게이트웨이 및 인증, 메시징 및 이벤트 라우팅, 백그라운드 작업, 오케스트레이션, 서비스 간 ID 및 신뢰, 안정성 패턴, 보안 웹훅, 안전한 스키마 진화에 대해 다룹니다.

API 설계 및 관리

올바른 프로토콜 선택:

버전 관리 및 페이지네이션:

유효성 검사 및 오류:

API 관리 선택지:

인증 및 할당량:

Cloud Run 백엔드 및 OIDC를 사용하는 최소한의 API Gateway OpenAPI 예시:

openapi: 3.0.0
info: {title: orders, version: 1.0.0}
paths:
  /v1/orders:
    get:
      security: [{firebase: []}]
      x-google-backend: {address: https://orders-xyz-uc.a.run.app}
      responses: {"200": {description: OK}}
components:
  securitySchemes:
    firebase:
      type: http
      scheme: bearer
      bearerFormat: JWT
      x-google-issuer: https://securetoken.google.com/PROJECT_ID
      x-google-audiences: PROJECT_ID

비동기 메시징 및 이벤트 처리

Pub/Sub 기본 사항:

Topic, Subscription, DLQ 생성:

gcloud pubsub topics create orders
gcloud pubsub topics create orders-dlq
gcloud pubsub subscriptions create orders-sub \
  --topic=orders \
  --dead-letter-topic=orders-dlq \
  --max-delivery-attempts=5 \
  --ack-deadline=30

소비자 측 고려사항: 멱등성 핸들러와 중복 제거(예: messageId 또는 애플리케이션 수준 멱등성 키 사용)를 구현합니다. 일시적인 오류는 백오프를 적용하여 재시도하고, 복구 불가능한 메시지는 DLQ로 이동시킨 후 알림을 보냅니다.

Eventarc 및 CloudEvents:

Cloud Storage 객체 생성 완료에 대한 Eventarc 트리거 생성:

gcloud eventarc triggers create index-new-objects \
  --destination-run-service=media-indexer \
  --destination-run-region=us-central1 \
  --event-filters="type=google.cloud.storage.object.v1.finalized" \
  --event-filters="bucket=my-assets-bucket" \
  --service-account=eventarc-router@PROJECT_ID.iam.gserviceaccount.com

장단점:

오케스트레이션, 백그라운드 작업 및 장기 실행 프로세스

Cloud Tasks:

속도 제한 및 재시도가 설정된 큐 생성:

gcloud tasks queues create payments-queue \
  --max-dispatches-per-second=50 \
  --max-concurrent-dispatches=200 \
  --max-attempts=10 \
  --min-backoff=5s \
  --max-backoff=300s

Workflows:

보상 로직 스케치:

main:
  params: [orderId]
  steps:
  - charge:
      call: http.post
      args: {url: ${paymentsUrl}/charge, auth: {type: OIDC}, body: {orderId: ${orderId}}}
      result: chargeRes
  - reserveInventory:
      try:
        steps:
        - reserve:
            call: http.post
            args: {url: ${inventoryUrl}/reserve, auth: {type: OIDC}, body: {orderId: ${orderId}}}
      except:
        as: e
        steps:
        - refund:
            call: http.post
            args: {url: ${paymentsUrl}/refund, auth: {type: OIDC}, body: {paymentId: ${chargeRes.body.id}}}
        - raise: ${e}

운영 가이드:

ID, 안정성 및 통합

서비스 간 ID 및 토큰 전파:

Cloud Run에서 ID 토큰 가져오기:

AUD="https://inventory-xyz-uc.a.run.app"
TOKEN=$(curl -s -H "Metadata-Flavor: Google" \
  "http://metadata/computeMetadata/v1/instance/service-accounts/default/identity?audience=${AUD}")
curl -H "Authorization: Bearer ${TOKEN}" "${AUD}/v1/check"

동기식 종속성과 복원력:

웹훅 및 서드파티 통합:

스키마 진화 및 호환성:

스택 전반의 보안 및 할당량:

실용적인 문제 시나리오

AcmeRetail은 Google Cloud에서 클릭 앤 콜렉트(click-to-collect) 서비스를 구축하고 있습니다. React 웹 앱이 공개 API를 호출하여 주문을 하면, 백엔드 서비스는 재고를 예약하고, 결제를 청구하며, 매장에 알려야 합니다. 이 팀은 짧은 지연 시간의 API, 안정적인 백그라운드 처리, 이벤트 기반 업데이트, 부분 실패 시 안전한 롤백이 필요합니다.

접근 방식:

  1. Cloud Run 주문 서비스 앞에 API Gateway를 통해 공개 REST API를 노출합니다.
  1. 내부 핫패스(hot path, 주문에서 재고, 가격 책정)에 대한 서비스 간 호출은 gRPC로 구현합니다.
  1. Workflows를 사용하여 주문 사가(saga)를 오케스트레이션합니다: 결제 청구, 재고 예약, 픽업 작업 생성, 실패 시 보상 트랜잭션 실행.
  1. 다운스트림 소비자(분석, 매장 알림)를 위해 Pub/Sub의 ordersinventory 토픽에 도메인 이벤트를 게시합니다.
  1. 관련된 Cloud Storage 및 Firestore 변경 시 Eventarc를 통해 Cloud Run 알림 서비스로 매장 알림을 트리거합니다.
  1. API Gateway를 앞에 둔 전용 Cloud Run 엔드포인트로 결제 제공업체 웹훅을 처리하고, HMAC 서명을 확인하며, 처리를 위해 Cloud Tasks를 사용합니다.
  1. 안정성 패턴을 강제합니다: 결제 제공업체로의 아웃바운드 호출에 대해 Apigee 또는 Envoy에서 서킷 브레이커 사용, 클라이언트 타임아웃을 제공업체 SLA보다 낮게 설정, 429/5xx에 대해 잘린 지수 백오프를 사용한 재시도.
  1. 스키마 진화 제어를 채택합니다: 내부 gRPC에는 예약된 필드가 있는 Protobuf 사용, REST 응답에는 추가적인 JSON 변경 사용, Pub/Sub는 게시 시점에 Protobuf 스키마 유효성 검사 사용.
  1. 관찰 및 운영: API Gateway와 서비스 간에 추적 헤더를 전파하고, 오류율 및 DLQ 크기에 대한 Cloud Logging 메트릭을 내보내며, SLO 소진 및 429/5xx 이상 징후에 대해 알림을 설정합니다.

컴퓨트 · 모든 도메인 · 애플리케이션 데이터

이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

시험 합격하기 →

Google 찾아보기 →

Related guides

올인원 액세스

하나의 구독. 모든 시험.

모든 플랜은 무제한 답변 검색, 모의고사, AI 해설, 전체 자료 라이브러리를 20개 이상의 언어로 잠금 해제합니다.

월간
24.87
Just €0.83/day
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

최고의 가치
12개월
179.87
Just €0.49/daySave 40%
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

✓ 무료 플랜 포함 · ✓ 언제든지 취소 가능 · ✓ 모든 플랜은 전체 제품을 잠금 해제합니다