Skip to content

bmcho/fcfs-coupon

Repository files navigation

🎫 FCFS-Coupon 프로젝트

FCFS-Coupon은 선착순(First-Come, First-Served) 방식으로 쿠폰을 발급하는 이벤트 시스템 예제입니다.
대규모 트래픽 상황에서 공정하고 안정적으로 쿠폰을 분배하는 데 초점을 맞춘 구조로 설계되었습니다.


🔧 주요 특징

  • ✅ Java & Spring 기반 마이크로서비스 구조
  • ✅ API 서버, 이벤트 처리, 비즈니스 로직 분리
  • ✅ Docker Compose로 손쉬운 로컬 환경 구축
  • ✅ 로드테스트 및 모니터링 환경 내장
  • ✅ 확장성과 유지보수성을 고려한 설계

📁 프로젝트 구조

fcfs-coupon/
├── coupon-api/ # 쿠폰 발급/관리용 API 서버
├── coupon-consumer/ # 쿠폰 발급 이벤트 처리(비동기 소비)
├── coupon-core/ # 쿠폰 도메인 및 핵심 비즈니스 로직
├── load-test/ # 부하 테스트 스크립트 및 설정
├── monitoring/ # 시스템 모니터링 도구 및 설정
├── gradle/ # Gradle 빌드 시스템 관련 파일
├── docker-compose.yml # 전체 서비스 오케스트레이션
├── build.gradle.kts # 프로젝트 빌드 설정 (Kotlin DSL)
├── settings.gradle.kts # Gradle 프로젝트 설정
├── gradlew* # Gradle Wrapper 실행 파일
└── .gitignore, .gitattributes

🛠️ 컴포넌트별 설명

coupon-api

  • 쿠폰 발급 및 관리용 REST API 서버
  • 외부 트래픽을 받아 쿠폰 발급 요청을 처리

coupon-consumer

  • 발급 이벤트를 비동기적으로 처리
  • 메시지 큐 기반의 이벤트 소비 및 후처리 담당

coupon-core

  • 쿠폰 도메인 모델 및 비즈니스 로직 구현
  • 서비스 간 공통 로직 및 핵심 기능 제공

load-test

  • 시스템의 동시성, 성능 테스트 스크립트 및 환경

monitoring

  • 시스템 상태 및 성능 모니터링 도구/설정

docker-compose.yml

  • 여러 서비스를 한 번에 띄우는 오케스트레이션 설정

🛠️ 기술 스택

범주 기술
Backend Java, Spring Boot, Gradle
Database(cache) Mysql, redis, caffeine
Infra Docker, Docker Compose
Test/Load locust
Monitoring Prometheus, Grafana

⚠️ 참고 사항

⚠️ 이 프로젝트는 학습 및 구조 설계 목적의 예제입니다. 실 서비스 적용 시에는 인증, 보안, 장애 복구, 데이터 일관성 등을 추가로 고려해야 합니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages