[Java & Spring] ReentrantLock, 쿠폰 발급으로 실습하고 테스트 코드로 증명해보기
·
Java & Spring
1️⃣ 들어가며"한 명에게만 줘야 하는 쿠폰인데, 어떻게 두 명이 받았지?" 이런 상황, 개발을 하며 정말 자주 접하게 됩니다. 특히 선착순 쿠폰, 이벤트 응모, 재고 1개 남은 상품 구매와 같은 케이스에서는 "빠르게 두 번 클릭했더니 쿠폰이 두 장 발급됐다(따닥 이슈)", "100명 이벤트인데 101명이 응모 완료했다" 같은 문제가 벌어지곤 하죠. 이번 글에서는 이 문제를 실험으로 명확하게 확인하고, Java에서 제공하는 ReentrantLock을 통해 동시성 문제를 어떻게 해결할 수 있는지 단계적으로 살펴보려 합니다. 이전에 작성한 글 🔗ReentrantLock 정리와 🔗HashMap vs ConcurrentHashMap을 먼저 읽어보면 해당 글을 이해하는데 도움이 됩니다!!🧩 실습 목표실험을 ..