📊
서버리스 투표/설문 앱
실습 가이드소요 기간
1일
난이도
초급
선수 요건
없음
예상 비용
$0 (프리 티어 범위)
무엇을 만드나요?
API Gateway + Lambda + DynamoDB Atomic Counter 기반 서버리스 투표 시스템 — 동시성 안전한 실시간 집계
구성 요소
API Gateway (REST)Lambda (vote)Lambda (results)DynamoDB (Polls table)DynamoDB (Votes table)CloudWatch
연결 흐름
→Client → API Gateway POST /polls → Lambda (Create Poll) → DynamoDB Polls PutItem
→Client → API Gateway POST /polls/{pollId}/vote → Lambda (Vote) → DynamoDB Votes UpdateItem (Atomic Counter)
→Client → API Gateway GET /polls/{pollId}/results → Lambda (Results) → DynamoDB Votes Query → 집계 결과 반환
→Lambda → CloudWatch Logs (실행 로그 + 에러 추적)
개요
서버리스 스택으로 실시간 투표/설문 앱을 구축합니다. DynamoDB의 Atomic Counter(UpdateExpression ADD)를 활용하여 동시에 수천 명이 투표해도 정확한 집계가 보장되는 동시성 안전(concurrency-safe)한 시스템을 설계합니다. 설문 생성, 투표 등록, 실시간 결과 조회 API를 구현하고, CORS를 설정하여 프론트엔드에서 호출 가능한 완전한 백엔드를 완성합니다.
학습 목표
- 서버리스 풀스택 애플리케이션의 전체 구조를 이해한다
- DynamoDB Atomic Counter로 동시성 안전한 집계를 구현한다
- API Gateway CORS 설정과 프론트엔드 연동을 실습한다
핵심 개념
DynamoDB Atomic CounterUpdateExpression ADD동시성 안전 설계REST API 리소스 모델링CORS 설정Lambda 프록시 통합서버리스 비용 최적화
실습 결과물
- DynamoDB Polls 테이블 (PK: pollId)
- DynamoDB Votes 테이블 (PK: pollId, SK: optionId)
- Lambda 함수 — 설문 생성 (POST /polls)
- Lambda 함수 — 투표 등록 (POST /polls/{pollId}/vote)
- Lambda 함수 — 결과 조회 (GET /polls/{pollId}/results)
- API Gateway REST API (CORS 설정 포함)
단계별 실습 가이드
직접 실습해보세요
실습 환경이 제공되는 클라우드 교육 과정에 참여하여 실제 AWS 환경에서 이 가이드를 따라해보세요.