クイズの説明
Step 2「非機能要件を明確化しよう」で学んだ内容の理解度を確認します。全8問、80%(7問)以上正解で合格です。
問題
Q1. 非機能要件(NFR)について正しい説明はどれですか?
- A) システムが「何をするか」を定義する要件
- B) システムが「どのように動作するか」の品質特性を定義する要件
- C) 開発チームの人数や予算に関する要件
- D) テストケースの数を定義する要件
答えを見る
正解: B
非機能要件は、パフォーマンス、可用性、セキュリティなど、システムの品質特性を定義します。「何をするか」は機能要件です。
Q2. 可用性99.99%のシステムの年間許容ダウンタイムはどれですか?
- A) 約8.7時間
- B) 約52分
- C) 約5.2分
- D) 約30秒
答えを見る
正解: B
99.99%の場合、年間ダウンタイムは 365日 × 24時間 × 60分 × 0.0001 = 約52.56分です。参考: 99.9%は約8.7時間、99.999%は約5.2分。
Q3. RPOとRTOの説明として正しいものはどれですか?
- A) RPOは復旧にかかる時間、RTOは許容されるデータ損失の期間
- B) RPOは許容されるデータ損失の期間、RTOは復旧にかかる時間の目標
- C) RPOとRTOはどちらもパフォーマンスの指標
- D) RPOはセキュリティ指標、RTOは可用性指標
答えを見る
正解: B
RPO(Recovery Point Objective)は「どれだけのデータ損失を許容できるか」の時間を表します。RTO(Recovery Time Objective)は「障害発生からサービス復旧までの目標時間」です。
Q4. 水平スケーリングと垂直スケーリングの比較として正しいものはどれですか?
- A) 垂直スケーリングの方がコスト効率が常に良い
- B) 水平スケーリングは理論上の上限がなく、垂直スケーリングにはハードウェアの限界がある
- C) 水平スケーリングは単一サーバーの性能を上げること
- D) 垂直スケーリングはサーバーの台数を増やすこと
答えを見る
正解: B
水平スケーリング(Scale Out)はサーバー台数を増やす方式で理論上無限にスケール可能です。垂直スケーリング(Scale Up)は単一サーバーの性能を上げる方式でハードウェアの物理的限界があります。
Q5. キャッシュ戦略において、Cache-Aside パターンの説明として正しいものはどれですか?
- A) キャッシュがデータベースへの書き込みも管理する
- B) アプリケーションがキャッシュとデータベースの両方を管理する
- C) キャッシュミス時にデータベースではなく別のキャッシュを参照する
- D) 書き込み時にキャッシュを先に更新してからデータベースに書き込む
答えを見る
正解: B
Cache-Aside(Lazy Loading)パターンでは、アプリケーションがまずキャッシュを確認し、ミスした場合にデータベースからデータを取得してキャッシュに格納します。キャッシュの管理はアプリケーションの責任です。
Q6. Defense in Depth(多層防御)の原則として正しい説明はどれですか?
- A) 最も強力な単一のセキュリティ層を配置する
- B) 複数の独立したセキュリティ層を重ねて配置する
- C) ネットワーク境界のみを重点的に防御する
- D) すべてのセキュリティをアプリケーション層で実装する
答えを見る
正解: B
Defense in Depth は、ネットワーク、アプリケーション、データなど複数の層にわたって独立したセキュリティ対策を講じる原則です。1つの層が突破されても、他の層で防御できます。
Q7. OAuth 2.0のアクセストークンとリフレッシュトークンの関係として正しいものはどれですか?
- A) アクセストークンは長期間有効で、リフレッシュトークンは短期間有効
- B) アクセストークンは短期間有効で、リフレッシュトークンを使って新しいアクセストークンを取得する
- C) 両方のトークンは同じ有効期限を持つ
- D) リフレッシュトークンはAPIアクセスに直接使用される
答えを見る
正解: B
アクセストークンは短期間(通常15分〜1時間)有効で、APIアクセスに使用します。リフレッシュトークンは長期間有効で、アクセストークンの有効期限切れ時に新しいアクセストークンを取得するために使用します。
Q8. システムの可用性を高めるためのアクティブ-アクティブ構成の特徴はどれですか?
- A) 1台がプライマリとして稼働し、もう1台は待機する
- B) 複数のサーバーがすべて同時にリクエストを処理する
- C) 障害時にのみバックアップサーバーが起動する
- D) 定期的にサーバーを切り替えて稼働する
答えを見る
正解: B
アクティブ-アクティブ構成では、すべてのサーバーが同時にリクエストを処理します。1台が障害を起こしても他のサーバーが処理を継続するため、フェイルオーバー時間を最小化できます。アクティブ-パッシブ(A)とは異なり、リソースを有効活用できます。
結果
7問以上正解の場合
合格です。 非機能要件の基礎をしっかり理解しています。次のStep 3では、これらの知識を活かしてアーキテクチャの選択肢を比較検討します。
6問以下の場合
もう少し復習しましょう。 Step 2のレッスンを再度読み返し、特にスケーラビリティ、可用性、セキュリティの基本概念を重点的に復習してください。