서비스를 만들다 보면 한정된 수량을 여러 사용자가 동시에 가져가려는 상황을 자주 만난다.예를 들면 이런 기능들이다.선착순 이벤트 신청한정판 상품 주문공연 좌석 예매수강 신청사전 예약 인원 제한 처음에는 단순하게 생각할 수 있다."현재 신청 수량을 조회하고, 제한 수량보다 작으면 저장하면 되는 것 아닌가?" 코드로 쓰면 대략 이런 모양이다.long acceptedCount = applicationRepository.countAccepted(eventId);if (acceptedCount >= limit) { return ApplyResult.notAvailable();}applicationRepository.save(Application.accepted(eventId, userId));return A..