[사전 준비]
- docker : zookeeper, kafka, redis 이미지
[시나리오]
- 유저 회원가입
- 로그인
- 쿠폰 발급
- 쿠폰 발급 성공
- redis에 저장되는 것 : userID, 쿠폰 발급 수(count변수)
- 쿠폰 발급 실패
- 쿠폰 한정 수량 초과
- count변수(쿠폰 발급 수)가 n개 이상 시 오류
- 시연 방식
- 쿠폰 수량이 100개인 경우 : test로 100명이 쿠폰 발급을 받았다고 가정 → 101명부터 “쿠폰 한정 수량 초과 에러” 발생
- 쿠폰 중복 발급 (한 사람이 두 번 이상 쿠폰 발급)
- redis에 저장되어 있는 userID가 다시 쿠폰 발급 시도 시 오류
- 시연 방식
- 한 유저가 쿠폰 발급 1번 성공 후 2번째부터 “쿠폰 중복 발급 에러” 발생
- 쿠폰 발급 성공
- optional) 조회 기능 → 쿠폰 발급 여부 확인
[쿠폰 발급 에러 확인 방법]
- 쿠폰 한정 수량 초과
- CouponCountRepository에서 apply(쿠폰 발급)할 때마다 increment해서 쿠폰 발급 개수 확인 → count 변수 사용
- 쿠폰 중복 발급
- 한 번 발급 받았으면 redis에 userId가 저장되므로 조회 후 발급 여부 확인
- 동시성 문제 → 아마 redis & kafka를 씀으로써 해결..?
[DB]
- UserTable
- CouponTable
[해결해야할 것]
- DB 저장 시 30초 이상의 delay가 발생