realtime-chat
💬

실시간 채팅 앱

실습 가이드
소요 기간
2
난이도
중급
선수 요건
예상 비용
$0 ~ $1

무엇을 만드나요?

API Gateway WebSocket API + Lambda + DynamoDB 기반 실시간 양방향 채팅 아키텍처

구성 요소

API Gateway (WebSocket)Lambda ($connect)Lambda ($disconnect)Lambda (sendMessage)Lambda ($default)DynamoDB (Connections Table)DynamoDB (Messages Table)IAM Role

연결 흐름

Client ↔ WebSocket API Gateway (양방향 통신)
API Gateway → Lambda ($connect) → DynamoDB Connections 테이블에 connectionId 저장
API Gateway → Lambda ($disconnect) → DynamoDB Connections 테이블에서 connectionId 삭제
API Gateway → Lambda (sendMessage) → DynamoDB Messages 저장 + @connections API로 브로드캐스트
Lambda (sendMessage) → API Gateway Management API → 연결된 모든 클라이언트에 메시지 전달

개요

API Gateway WebSocket API와 Lambda를 활용하여 실시간 양방향 채팅 애플리케이션을 구축합니다. WebSocket 프로토콜 기반의 연결 관리, 메시지 브로드캐스트, 채팅방 기능을 서버리스 아키텍처로 구현하며, DynamoDB에 연결 정보와 메시지 이력을 저장합니다. $connect/$disconnect 라이프사이클 이벤트를 처리하고, @connections API를 통해 연결된 모든 클라이언트에 메시지를 실시간으로 전달하는 구조를 학습합니다.

학습 목표

  • WebSocket 프로토콜과 실시간 통신의 원리를 이해한다
  • API Gateway WebSocket API를 구성하고 라우트 키를 설정한다
  • Lambda로 연결/해제/메시지 처리 로직을 구현한다
  • DynamoDB로 연결 상태와 메시지 이력을 관리한다

핵심 개념

WebSocket 프로토콜연결 관리 ($connect/$disconnect)메시지 브로드캐스트@connections API라우트 키 (Route Key)연결 URL vs 콜백 URL서버리스 실시간 통신

실습 결과물

  • DynamoDB Connections 테이블 (connectionId 기반)
  • DynamoDB Messages 테이블 (roomId + timestamp 기반)
  • Lambda $connect 핸들러 함수
  • Lambda $disconnect 핸들러 함수
  • Lambda sendMessage 핸들러 함수 (브로드캐스트)
  • API Gateway WebSocket API (4개 라우트)
  • wscat을 이용한 양방향 통신 테스트 결과

단계별 실습 가이드

직접 실습해보세요

실습 환경이 제공되는 클라우드 교육 과정에 참여하여 실제 AWS 환경에서 이 가이드를 따라해보세요.