inflearn logo
강의

講義

知識共有

実習で学ぶ先着順イベントシステム

クーポン発行ロジック作成

쿠폰 발급 개수 제한

181

작성자 없음

投稿した質問数 0

0

쿠폰을 100개까지만 발급하고 싶으면
조건이 count >= 100 return이 맞지 않을까요?

java docker spring-boot kafka redis

回答 2

1

bae jewoo

아 0부터 증가하는 걸 생각하지 못했네요

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

bae jewoo님, 쿠폰 발급 개수를 특정 개수로 제한하고 싶으신 상황이군요. 일반적으로 코드를 작성할 때, 조건검사를 통해 특정 수량 이상이 되면 더 이상의 처리를 하지 않도록 합니다. 말씀하신 “count >= 100 return” 조건은 바로 그 목적에 부합하는 조건입니다. 즉, 쿠폰의 수량이 100개 이상일 때 더 이상의 발급을 막기 위해 return으로 빠져나오게 하는 구조입니다.

관련하여 유사한 질문과 답변을 참고하실 수 있어 몇 가지 링크를 제공드리겠습니다.

  1. 쿠폰 발급 코드에서의 조건 체크 시 주의할 점

    • 조건 체크 시 race condition을 방지하기 위해 추가적으로 고려해야 할 사항들이 설명되어 있습니다. 예를 들어, 여러 스레드가 동시에 접근할 수 있는 환경에서 어떻게 안전하게 조건을 검사하고 처리할 수 있는지에 대한 내용입니다.
  2. 스레드 안전성을 고려한 쿠폰 발급 로직

    • 멀티스레드 환경에서의 안전한 발급 로직을 구현하기 위한 방법론을 통해 쿠폰 발급이 안정적으로 제한되도록 하는 방법을 설명합니다.

쿠폰 발급 로직은 특히 경쟁이 치열한 환경에서 정확하게 동작해야 하므로 race condition 문제를 잘 처리해야 합니다. 이를 위해서는 데이터 엑세스의 동기화 처리, 데이터베이스 트랜잭션 관리 등 다양한 기술적 접근이 필요할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ApplyService와 Consumer서비스의 db공유?

0

54

2

consumer가 topic을 전부 사용하기 전에 사용자에게는 쿠폰이 발급된것으로 확인하는 과정에서 발생가능한 문제.

0

72

1

쿠폰에 관련되어서 좀 더 참고할만한 자료가 있을까요?

0

83

2

흐름정리 제가 이해한게 맞나요?

0

70

2

안되서 스트레스 받아요

-2

108

2

프로젝트 진행할때 모듈로 추가하는 이유가 궁금합니다!

0

181

2

Redis 활용하기 문제점 해결하기 부분이 이해가 잘 안됩니다...

0

211

1

카프카를 도입하고 난 뒤 로그로 보여지는 장점을 발견하지 못하고 있습니다.

0

167

2

키생성 방식에 따른 성능

0

165

2

사용자 동선에 대한 트랜잭션 문의

0

134

2

강사님 강의를 듣고 실제 프로젝트에서 이벤트 응모 시스템을 만들어 봤습니다.

0

209

1

ApplyService 의 총 처리 시간이 궁금합니다.

0

154

1

쿠폰 생성 에러 처리에 관해서 질문이 있습니다.

0

223

2

마지막에 하신 테스트 자체는 실패하는 게 맞는거죠??

0

274

2

안녕하세요 질문 있습니다!

0

293

1

쿠폰 발급 유저 흐름에 대한 질문

0

306

2

수량 조절에 대한 질문이 있습니다.

0

230

2

kafka Producer 실행 중 에러 시 redis count 정합성 이슈

0

398

2

test 과정에서 오류가 발생합니다.

0

381

1

도커 환경설정에 대해서

0

267

2

Redis의 INCR 사용 해도 Race condition이 잡히지 않는 문제

0

592

1

consumer 모듈

0

320

2

카프카 토픽 생성오류

0

380

2

redis 를 사용하여 문제점 해결하기

0

369

2