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
- 쿠폰 발급 및 관리용 REST API 서버
- 외부 트래픽을 받아 쿠폰 발급 요청을 처리
- 발급 이벤트를 비동기적으로 처리
- 메시지 큐 기반의 이벤트 소비 및 후처리 담당
- 쿠폰 도메인 모델 및 비즈니스 로직 구현
- 서비스 간 공통 로직 및 핵심 기능 제공
- 시스템의 동시성, 성능 테스트 스크립트 및 환경
- 시스템 상태 및 성능 모니터링 도구/설정
- 여러 서비스를 한 번에 띄우는 오케스트레이션 설정
범주 | 기술 |
---|---|
Backend | Java, Spring Boot, Gradle |
Database(cache) | Mysql, redis, caffeine |
Infra | Docker, Docker Compose |
Test/Load | locust |
Monitoring | Prometheus, Grafana |