合格基準
- 8問中7問以上正解で合格(80%以上)
問題
Q1. URL短縮サービスで読み書き比率が100、最適化すべき優先度が高いのは?
- A) 書き込みスループット
- B) 読み取りレイテンシ
- C) ストレージ容量
- D) URL生成速度
回答と解説
正解: B
読み取りが圧倒的に多いため、リダイレクトの読み取りレイテンシを最適化することが最優先です。キャッシュの導入が効果的。
Q2. URL短縮サービスでBase62エンコーディングを使い7文字のキーを生成する場合、何通りのURLを表現できるか?
- A) 約10億通り
- B) 約350億通り
- C) 約3.5兆通り
- D) 約35兆通り
回答と解説
正解: C
62^7 = 3,521,614,606,208(約3.5兆通り)です。62文字(0-9, a-z, A-Z)を7桁使用します。
Q3. チャットシステムでWebSocketが推奨される主な理由は?
- A) HTTPより安全だから
- B) 双方向の持続的接続でリアルタイム配信が可能だから
- C) 全てのブラウザで動作するから
- D) サーバーリソースの消費が少ないから
回答と解説
正解: B
WebSocketは双方向の持続的TCP接続を提供し、サーバーからクライアントへのプッシュ配信が可能です。HTTPのリクエスト-レスポンスモデルでは実現できないリアルタイム性を提供します。
Q4. 分散チャットシステムで「ユーザーAがサーバー1に接続し、ユーザーBがサーバー2に接続している」場合、メッセージを届ける仕組みは?
- A) ユーザーAをサーバー2に再接続させる
- B) Redis Pub/Sub等でサーバー間でメッセージを転送する
- C) データベースをポーリングする
- D) ロードバランサーが自動的にルーティングする
回答と解説
正解: B
Redis Pub/Subやメッセージブローカーを使い、接続管理テーブル(Redis)でユーザーの接続先サーバーを特定し、そのサーバーにメッセージを転送します。
Q5. ニュースフィードのFan-out on Writeで「セレブリティ問題」が発生する理由は?
- A) セレブリティの投稿がバズるから
- B) フォロワーが数百万人いると1投稿で数百万回の書き込みが発生するから
- C) セレブリティのプロフィール取得が遅いから
- D) セレブリティの投稿サイズが大きいから
回答と解説
正解: B
フォロワーが100万人いるセレブリティが投稿すると、100万人分のフィードキャッシュに書き込みが発生し、大きな遅延とリソース消費を引き起こします。ハイブリッドアプローチで対処します。
Q6. 通知システムで冪等性(Idempotency)を保証する目的は?
- A) 通知の送信速度を向上させる
- B) 同一通知の重複配信を防止する
- C) 通知の順序を保証する
- D) 通知テンプレートの一貫性を保つ
回答と解説
正解: B
ネットワーク障害やリトライにより同じ通知リクエストが複数回処理される可能性があります。Idempotency Keyにより同一通知の重複配信を防止します。
Q7. 通知システムで配信失敗時のリトライ戦略として最も適切なのは?
- A) 即座にリトライを無限に繰り返す
- B) 指数バックオフ付きリトライ + デッドレターキュー
- C) リトライせず失敗として記録する
- D) 固定間隔で1回だけリトライする
回答と解説
正解: B
指数バックオフ(1秒、5秒、30秒…)でリトライし、最大回数に達したらデッドレターキューに移動して後で調査・再送します。即座のリトライは外部サービスに負荷をかけ、リトライしないのは配信率が低下します。
Q8. リアルタイム共同編集の競合解決でOT(Operational Transformation)の特徴は?
- A) サーバーなしでP2Pで動作する
- B) サーバーが操作の変換を行い適用順序を調整する
- C) 最後の書き込みが常に勝つ
- D) ロックを取得してから編集する
回答と解説
正解: B
OTはサーバーが中央調整役となり、同時に発生した操作を変換(Transform)して、全クライアントで同じ結果になるよう調整します。Google Docsで採用されている手法です。
結果
7問以上正解:合格
Step 3に進みましょう。大規模データ処理のケーススタディに取り組みます。
6問以下:不合格
Step 2の各レッスンを復習してから再挑戦してください。
推定所要時間: 30分