이벤트 쿠폰을 발급하는 API 를 만들어요. 규칙은 하나예요 — 한 사용자는 쿠폰을 한 번만 받을 수 있어요. 이미 받은 사용자가 다시 요청하면 거절해야 해요. CouponService.issue 를 완성하세요.
Spring Boot 3 와 JPA(인메모리 H2) 기반으로 이벤트 쿠폰을 발급하는 API 를 완성하는 문제입니다. 규칙은 하나 — 한 사용자는 쿠폰을 한 번만 받을 수 있고, 이미 받은 사람의 거듭된 요청은 거절돼야 합니다. 컨트롤러는 HTTP 경계만 맡고, 발급 규칙은 서비스에서 다루는 구조로 작성합니다.
"한 사용자당 한 장"처럼 한도가 정해진 발급은, 같은 요청이 다시 들어왔을 때 결과가 그대로 유지되는지가 중요한 주제입니다. 화면에서 버튼을 다시 누르거나 네트워크가 끊겼다 붙으며 같은 요청이 재전송되는 일은 흔합니다. 그래서 발급 같은 쓰기 동작에서는 "이 한도를 어떻게 지킬 것인가"를 서버가 스스로 책임지도록 설계해야 합니다. 이 문제는 단일 인스턴스·단일 스레드 범위에서 그 한도 규칙을 다룹니다.