クーポンサービスの基盤を作る
약 124분実習環境を準備し、クーポンの作成・発行・照会機能を実装します。DBのユニーク制約によって、同一ユーザーへの重複発行を防ぎます。
先着順クーポン発行サーバーを自ら構築しながら、同時実行性、非同期処理、キャッシュ、整合性、可用性を4週間で身につけます。すべての機能改善はk6負荷テストで結果を証明し、毎週の修了認証によって、一人では何か月も先延ばしにしていたコース修了を4週間で達成します。
5회 미션 수행
성취의 증표, 수료증을 발급해요.
무제한 복습, 내 것으로 만들어요.
질문하고 즉시 답을 얻어요.
キャリア認証
1,520
受講生
55
受講レビュー
47
回答
4.9
講座評価
6
講座
カカオ、SKを経て開発者として働きながら
実際のサービス環境で多様なバックエンドシステムを設計し、運用してきました。
これまでの試行錯誤や悩みが
受講生の皆さんの時間と選択を少しでも減らす助けになることを願う気持ちで
知識共有コンテンツを作成しています。
コンテンツに関するご意見や改善点などがございましたら、
以下のメールアドレスまでいつでもお気軽にご連絡ください。
皆様の率直なフィードバックをお待ちしております。ありがとうございます。
apiece.dev.ai@gmail.com
先着順クーポンサーバーで学ぶシステム設計
先着順クーポン発行サービスを作りながら、リクエストが殺到したときに発生する問題を一つずつ解決します。講義の視聴から受講完了の認証まで、4週間一緒に取り組みましょう。
チャレンジの参加費は無料です。まだ講義を受講していない方も登録できます。
学ぶこと
用意した数量以上にクーポンが発行されたり、レスポンスが遅延したり、保存漏れが発生したりする可能性があります。こうした状況を実際に再現し、原因を確認したうえで設計を改善します。
同じ在庫に複数のリクエストが入ると、どのようなことが起こるのでしょうか?DBロックとRedis Luaを比較しながら、発行数と1人1枚のルールを守る方法を学びます。
応答が遅くなっている箇所を見つけ、Kafkaで保存処理を分離します。キャッシュの有効期限が切れた際に、DBへの問い合わせが集中する問題についても併せて扱います。
保存に失敗したメッセージを再処理し、RedisとMySQLの記録を一致させます。待機室とリクエスト制限を適用し、サーバーが処理できる範囲でリクエストを受け付けます。
4週間のカリキュラム
毎週約2~3時間分の講義を受講し、そのセクションの修了画面をアップロードしてください。1つのクーポンサービスを継続的に発展させながら、並行性、キャッシュ、整合性の問題を順に扱います。
実習環境を準備し、クーポンの作成・発行・照会機能を実装します。DBのユニーク制約によって、同一ユーザーへの重複発行を防ぎます。
k6で過剰発行を再現し、DBロックとRedis Luaを比較します。続いてKafkaを適用し、ユーザーへの応答とDBへの保存を分離します。
繰り返しの取得がサーバーに与える負荷を測定します。Single FlightとSWRを適用し、キャッシュの有効期限が切れた際にDBへのリクエストが集中する現象を軽減します。
DLTで失敗したメッセージを復旧し、RedisとMySQLのデータを一致させます。仮想待合室とRate Limiterで、リクエストが一気に集中する状況に備えます。
学習ミッションは週ごとの修了認証です。
決められた分量を受講し、修了画面をアップロードすれば完了です。別途課題の提出やコードレビューはありません。
上記の時間は動画視聴の目安です。実際に手を動かして練習する時間は別途必要です。
自分で作る成果物
リクエストを受け付け、在庫を確認し、発行履歴を保存する一連の流れを実装します。同じ負荷をかけて応答速度とエラー率を比較し、発行数量や保存漏れも確認します。
講義はKotlinとSpring Bootで進め、実習コードはKotlin版とJava版の両方を提供します。MySQL、Redis、KafkaはDocker Composeで起動します。
おすすめの対象者
HTTPとREST API、基本的なSQL、JavaまたはKotlinの文法を知っている必要があります。Spring BootでAPIを作った経験があると望ましいです。RedisとKafkaは初めてでも問題ありません。
参加案内
すでに講義を受講中の方も、これから始める方も参加できます。まだ受講を開始していない場合は、まずチャレンジに登録し、以下の割引クーポンの案内をご確認ください。
完走すると修了証をお渡しします。
実装したコードと負荷テストの結果をまとめれば、設計プロセスを説明するポートフォリオとして活用できます。
FAQ
はい、現在の進捗率に関係なくご参加いただけます。1週目のミッションから始め、定められた分量の講座を完了したことを証明していただければ大丈夫です。
はい。講義はKotlinで進行し、講義資料ではJavaのソースコードも確認できます。
JavaとSpringの経験があれば、ついていけます。必要なKotlinの文法は、実習中にも説明します。
Controller、Service、DIの構造が似ているため、これまでのバックエンド経験を活かせます。慣れない文法や概念は、AIのサポートを受けながら学習しても構いません。
まだ講義を受講していない方へ
まずチャレンジに登録した後、チャレンジ開始前までに決意をミッションに提出してください。連携講義で使用できる30%割引クーポンを差し上げます。
9월
27일
챌린지 시작일
2026년 9월 27일 오후 03:00
챌린지 종료일
2026년 10월 25일 오후 02:30
全体
5件
講座資料(こうぎしりょう):
先着順クーポン発行APIを、発行数の超過なく設計・実装する能力
悲観ロック、Redis分散ロック、Luaアトミック操作のうち、状況に応じた方式を選ぶ判断基準
k6で負荷を再現し、改善前後を数値で証明する性能測定能力
KafkaとDLTで失敗したリクエストを失わない非同期処理設計
Cache Stampedeを防ぐSingle FlightとSWRキャッシュ戦略
学習対象は
誰でしょう?
理論はわかっているものの、トラフィックが集中するサーバーを実際に作った経験のないジュニアバックエンド開発者
大規模トラフィックの経験を扱いたい学習者
講座を購入したまま、何か月も第1セクションで止まっている人
前提知識、
必要でしょうか?
Spring Bootで簡単なREST APIを作成した経験が必要です。
KotlinまたはJavaの文法に慣れているとよいでしょう。実習コードは両方の言語で提供します。
취소 및 환불 규정
챌린지는 지식공유자가 설정한 수업 최소 정원이 충족되지 않을 경우, 폐강 안내가 고지되며 결제 내역이 자동취소됩니다.
知識共有者の他の講座を見てみましょう!
모집 인원 300명
無料