선착순 커피 쿠폰 발급 시 발생하는 race condition을 방지하는 방법을 학습하기 위한 프로젝트입니다. 정해진 수량의 커피 쿠폰을 여러 사용자가 동시에 요청할 때, 수량을 초과해서 발급되지 않도록 안전하게 처리하는 방법을 다룹니다. 비관적 락, 낙관적 락, 분산 락 등 다양한 동시성 제어 기법을 적용하고 비교해보는 것을 목표로 합니다.
- JDK 17
- MySQL 실행 후
coffee-coupon-api/src/main/resources/application-local.yaml.example을 같은 디렉토리에application-local.yaml로 복사하고 실제 MySQL 접속 정보(비밀번호 등)를 입력하세요.
cd coffee-coupon-api
./gradlew bootRuncd coffee-coupon-api
./gradlew testGit Flow를 따릅니다. 자세한 내용은 docs/BRANCHING.md를 참고하세요.