← 프로젝트 목록으로
기간 2024.03 역할 Backend Engineer (단독 개발)

Snappay

서버리스 결제 온보딩/상점 관리 플랫폼

FastAPI Python DynamoDB AWS Lambda API Gateway SAM SSM Toss Payments API JWT OAuth2

서비스 소개

Toss Payments 인스턴트 온보딩 API를 연동하여 상점 생성 및 가입 신청을 처리하고 Callback을 검증하는 서버리스 기반 상점 관리 플랫폼입니다. AWS Lambda + API Gateway 서버리스 아키텍처로 구축하여 인프라 관리 비용을 최소화하고, FastAPI 비동기 처리와 DynamoDB NoSQL로 빠른 응답 성능을 구현했습니다.

주요 기능

  • Toss Payments 온보딩 — 상점 생성, 가입 신청, Callback 처리
  • 상점 관리 — 상점 생성·조회·수정·삭제, 상태 관리
  • Callback 검증 — SHA-256 해시 기반 시그니처 검증, 온보딩 정보 무결성 보장
  • JWT 인증 — OAuth2 Password Flow 기반 토큰 인증
  • 민감정보 관리 — AWS SSM Parameter Store로 API 키 및 시크릿 관리

핵심 개발 내용

  • FastAPI 비동기 REST API — async/await 기반 비동기 처리, Pydantic 데이터 검증
  • AWS Lambda 서버리스 아키텍처 — Lambda + API Gateway 구성, Mangum ASGI 어댑터
  • Toss Payments API 연동 — 인스턴트 온보딩 API 완전 연동, Callback 시그니처 검증
  • DynamoDB NoSQL 설계 — 테이블 설계, CRUD 추상화 레이어, boto3 연동
  • JWT 인증 시스템 — OAuth2 Password Flow, python-jose JWT 생성 및 검증
  • AWS SAM IaC — template.yaml로 Lambda·API Gateway·DynamoDB 정의, 배포 자동화
  • GitHub Actions CI/CD — 코드 푸시 시 자동 테스트 및 SAM 배포

기술적 도전과 해결

  • 서버리스 아키텍처 구축 — Lambda Cold Start 최소화, Mangum으로 FastAPI ASGI 어댑터 구현
  • Toss Payments Callback 검증 — SHA-256 해시 시그니처 검증으로 위변조 방지
  • DynamoDB 데이터 모델링 — NoSQL 특성 활용한 유연한 스키마 설계, 빠른 조회 성능