Week 8은 서버리스와 이벤트 기반 아키텍처가 어떻게 협력하는지를 깊이 봤다. Lambda(콜드 스타트·동시성·VPC ENI), Step Functions(상태 머신·Saga·Distributed Map), EventBridge(Bus·Pipes·Scheduler), AppSync(GraphQL + Subscription), SQS/SNS/Kinesis/MSK(메시징·스트리밍) — 여섯 도메인은 각자 독립적으로 보이지만, 실제 production에서는 거의 항상 두세 개가 함께 쓰인다. SAP-C02 시험이 노리는 것도 정확히 이 부분이다. "Lambda만 알아도 안 되고", "Step Functions만 알아도 안 되고", 시나리오의 키워드를 보고 어느 도구의 조합이 가장 적합한지 판단하는 능력이 필요하다.
오늘은 week 8 전체를 종합 시나리오 12문항으로 정리한다. 각 문항은 단일 도구가 아니라 복합 패턴을 묻고, 해설에서 왜 그 답이 맞고 왜 다른 보기가 틀린지를 SAP 시험의 결정 기준으로 풀어낸다. 시험 직전에 이 시나리오들을 다시 읽으면 도메인 전체의 결정 트리가 머릿속에 다시 그려진다.
한 글로벌 OTT 서비스가 사용자 시청 이벤트(초당 50,000건)를 받아 (1) 실시간 추천 모델에 즉시 전달 (2) 7일치 raw event를 S3에 보존해 ML 학습용으로 재처리 (3) 분석팀이 시간당 집계로 BI 대시보드 갱신. 세 다운스트림이 서로 latency 영향 없이 동시 처리되어야 한다. 가장 적합한 구성은?
문제 2
Java Spring Boot 기반 Lambda 함수의 콜드 스타트가 평균 4초. 일평균 호출 100만 회, 콜드 비율 5%. 운영팀은 추가 비용 없이 콜드 스타트를 1초 이하로 줄여야 한다. init에서 DB connection pool과 UUID 기반 인스턴스 ID 생성 코드가 있다. 가장 적합한 조합은?
문제 3
결제 → 재고 차감 → 배송 예약 워크플로우가 평균 30초~며칠 사이 걸린다(외부 배송업체 응답 대기 포함). 배송 예약이 실패하면 결제 환불 + 재고 복원이 필요하다. 외부 배송업체는 비동기 webhook으로 결과를 보낸다. 가장 적합한 구성은?
문제 4
100만 사용자 SaaS가 각 사용자의 선호 시간(타임존 + 시각)에 일일 요약 이메일을 발송. 사용자 설정 변경 시 즉시 반영. 가장 적합한 구성은?
문제 5
DynamoDB의 변경 이벤트(DDB Streams)를 필터링해 특정 패턴만 Step Functions 워크플로우로 보낸다. Lambda 코드 작성과 운영을 피하고 싶다. 가장 적합한 구성은?
문제 6
한 e-commerce가 OrderPlaced 이벤트를 분석·배송·CRM·알림·audit 5개 다운스트림에 동일 메시지로 fan-out한다. 처리량은 초당 5,000건. 각 다운스트림은 자체 속도로 처리하고 실패 시 영구 격리 분석. 가장 적합한 구성은?
문제 7
Lambda 함수가 VPC 안의 RDS PostgreSQL에 접속. 동시 실행이 1,500개로 증가하면서 "FATAL: too many connections" 오류. RDS max_connections=200. 가장 적합한 해결책은?
문제 8
모바일 채팅 앱이 GraphQL로 백엔드를 구성하고 메시지 실시간 push를 받는다. Cognito 사용자 인증, DynamoDB 저장, 오프라인 동기화 필요. 가장 적합한 백엔드는?
문제 9
S3에 저장된 100만 개의 CSV 파일을 각각 Lambda로 처리한다. 각 파일당 처리 시간 5~30초. 결과를 다른 S3 버킷에 집계 저장. 가장 적합한 패턴은?
문제 10
블랙프라이데이 세일 시작 시 Lambda 동시 실행이 0에서 5,000으로 5분 안에 폭증. us-east-1 burst 한도는 3,000. throttle 없이 처리해야 하고, 정확한 시작 시각을 알 수 있다. 가장 적합한 구성은?
문제 11
글로벌 SaaS가 Stripe webhook과 Shopify webhook을 동시에 받고, amount > $1,000 이벤트만 Step Functions 워크플로우로, 나머지는 Lambda로 보낸다. Webhook receiver 운영 부담을 피하고 싶다. 가장 적합한 구성은?
문제 12
한 핀테크가 결제 거래를 SQS에 받아 Lambda로 처리. 배치 size=10, 한 메시지가 실패하면 기본 동작은 전체 배치 재시도이지만, idempotent 안 된 다운스트림이라 중복 처리가 문제. 실패한 메시지만 재시도하려면?
Visibility Timeout, Long Polling, DLQ + maxReceiveCount
Kinesis Shard + Partition Key + EFO
Lambda ESM ReportBatchItemFailures partial batch
다음 주(Week 9): 데이터 아키텍처 — Data Lake (S3 + Lake Formation + Glue), Redshift (RA3 + AQUA + Spectrum), EMR (Spark/Hive on EC2/EKS), Athena (Iceberg + federated query), MSK Connect, Lakeformation 권한 모델, Migration to Data Lakehouse.