Fundamental Information Technology Engineer Examination case studies
Fundamental Information Technology Engineer Examination · Put your knowledge to work in context.
基本情報技術者試験(略号FE、英語名称 Fundamental Information Technology Engineer Examination)は、IPA(独立行政法人情報処理推進機構)が実施する情報処理技術者試験の一つで、ITエンジニアの登竜門と位置づけられています。対象者像は「ITを活用したサービス、製品、システム及びソフトウェアを作る人材に必要な基本的知識・技能をもち、実践的な活用能力を身に付けた者」です。上位者の指導の下に、ITを活用した戦略の立案やシステムの企画・要件定義への参加、設計・開発、汎用製品の最適組合せによるシステム構築、サービスの安定的な運用に貢献する役割が想定されています。実施方式はCBT方式により随時実施され、試験は科目Aと科目Bで構成されます。科目Aは試験時間90分、四肢択一の多肢選択式で出題数60問・解答数60問、科目Bは試験時間100分の多肢選択式で出題数20問・解答数20問です。学習にあたっては、まず科目AでIT全般の基礎事項を固め、そのうえで科目Bの実践的な出題に慣れる順序が取り組みやすいでしょう。このページは受験を検討する方向けの独立した学習用解説であり、IPAの公式ページではありません。最新の制度・日程・手数料などは必ずIPAの公式情報で確認してください。. Topics on this exam: 科目A (Subject A) - 60 four-option multiple-choice questions, 90 minutes and 科目B (Subject B) - 20 multiple-choice questions, 100 minutes. The Fundamental Information Technology Engineer Examination case studies are 5 cases and about 112 words.
1線形走査法のハッシュ表で負荷率0.92から応答時間SLAを回復する
ある販売管理システムでは、商品コード(0〜999,999の整数)をキーとするハッシュ表をメモリ上に保持している。表サイズは1,200、ハッシュ関数は h(k) = k mod 1,200、衝突解決は線形走査法(linear probing)である。登録件数が800件のときの平均探索回数は1.3回であったが、商品数が1,100件に増えた現在、平均探索回数は8.7回、最悪45回となり、応答時間はSLAの5msを超えて平均18msになっている。削除は論理削除で、再ハッシュは行っていない。アクセスログを調べると、キー600〜720の範囲に検索が集中している。表サイズ1,200は素数ではなく、2^4×3×5^2である。現在の負荷率は約0.92である。メモリ制約から、表サイズを極端に大きくすることはできない。表サイズを2,401(素数)にすると、一時的にメモリ使用率が95%を超える見込みである。改善案として、(a) 表サイズを2,401に拡張、(b) 二重ハッシュ法に変更、(c) 論理削除領域の再利用、(d) チェイン法への変更、が挙がっている。. 表サイズを2,401に拡張した場合の負荷率と、線形走査法の成功探索の平均回数の近似値を求めよ。また、1回の探索あたりの時間を現状から推定し、SLAを満たせるか判断せよ。. 負荷率は1,100/1,200≒0.92で、線形走査法の成功探索の平均回数は約0.5(1+1/(1-0.92))≒6.5回と理論上も悪化する。実測8.7回は、キー600〜720へのアクセス集中による一次クラスタリングと、論理削除で残った墓標(tombstone)が探索列を長くしているためである。h(k)=k mod 1,200は素数でないため、キーによっては同じ剰余に偏りやすい。主原因は「高負荷率+クラスタリング+墓標」の複合であり、ハッシュ関数単独ではない。. 最優先は(a)表サイズ2,401への拡張である。負荷率が0.458まで下がり、平均探索回数は約1.42回と試算でき、SLA回復に最も直接的に効く。素数化により剰余の偏りも緩和される。ただし、再ハッシュ時に一時的な停止が発生し、メモリ使用率が95%を超えるリスクがある。移行は夜間バッチで行い、旧表を一定時間保持する。墓標の除去(c)は低コストだが負荷率を下げないため、拡張後の追加対策とする。二重ハッシュ(b)やチェイン(d)は実装変更が大きく、今回の緊急度では優先度が下がる。.
19 words, under 1 min2連番セッションIDとソルトなしハッシュによる不正ログインの封じ込め
あるECサイトは、10万件の顧客アカウントを保有し、ログイン機能を自社で実装している。パスワードはSHA-256でソルトなしにハッシュ化して保存している。セッションIDはログイン時に連番(SID=10001, 10002, …)で発行し、ログイン後も再生成していない。直近1週間のログに、海外の複数IPから1時間あたり約5,000回のログイン失敗が記録され、その後、ある顧客アカウントで1回だけ成功し、同じセッションIDが翌日に別の国から使用されていた。該当顧客のパスワードは8文字の英小文字のみで、他サービスと同一であった可能性がある。ログイン成功後の操作履歴はなく、住所変更画面を開いた形跡だけがある。WAFには「UNION SELECT」を含むリクエストの検知ログが数件あるが、ブロック件数は0件である。クレジットカード情報は外部決済代行に委託しており、自社DBには保持していない。サポート窓口の処理能力は1日2,000件、全面パスワードリセットの連絡は10万件に及ぶ。経営層は「サービス停止は避けたい」としている。インシデント対応チームは、原因特定、封じ込め、恒久対策の優先順位を求めている。. ログから実際に成立した可能性が高い攻撃を特定し、根拠を3つ挙げよ。WAFのSQLインジェクション検知ログは、この攻撃の成立根拠になるか?. 成立した可能性が高いのは、クレデンシャルスタッフィング(credential stuffing)による不正ログインと、その後のセッションハイジャックである。根拠は、①海外の複数IPから大量の失敗が続いた後に1回だけ成功している点、②セッションIDが連番で推測可能かつログイン後に再生成されておらず、翌日に別国から同じIDが使われている点、③パスワードが8文字英小文字で他サービスと同一の可能性があり、突破されやすい点である。WAFのUNION SELECT検知ログは、SQLインジェクションの試行があったことを示すが、ブロック0件かつDB侵害の形跡がないため、今回のログイン突破の直接根拠にはならない。ただし、WAFが検知のみの運用であれば、別の攻撃面として調査が必要である。. 優先順位は、①全セッションの無効化とログイン後のセッションID再生成(サービスは継続でき、10万ユーザーは再ログインになるが、パスワードリセット連絡は不要)、②不審なログインがあったアカウント(海外IP、大量失敗、住所変更操作など)に限定したパスワードリセットと本人通知(対象を数百件に絞り、1日2,000件の処理能力内に収める)、③WAFをブロックモードに切り替え、SQLi試行と大量失敗を遮断、④該当アカウントの住所変更を保留し、本人確認を実施、である。全面リセットは10万件で50日かかり、サービス停止に近い影響が出るため避ける。IPブロックは分散型には効果が薄い。.
12 words, under 1 min3RTT80ms・64KBウィンドウで6.4Mbpsに制限されたTCP転送の改善
本社と支社を結ぶ100Mbpsの専用線がある。片道の遅延は40ms、RTTは80msである。社内のあるファイル転送アプリは、TCPウィンドウサイズを64KBに固定し、ウィンドウスケーリングオプションを使用していない。20MBのファイルを転送したところ、実測スループットは6.4Mbpsであった。回線のパケット損失率は0.01%であり、輻輳は観測されていない。支社側の受信バッファは64KB、本社側の送信バッファも64KBである。回線の契約帯域は100Mbpsで、実測の物理帯域は95Mbpsである。アプリは1日に約300ファイルを転送し、業務時間内に完了する必要がある。現在、1ファイルあたりの転送に約25秒かかっており、業務時間の終わりに待ちが発生している。本社側のOSはウィンドウスケーリングに対応しているが、支社側の古いファイアウォールがTCPオプションを書き換える可能性がある。過去の測定では、ウィンドウサイズを256KBにするとスループットが約80Mbpsまで向上したという報告がある。ネットワーク管理者は、帯域増強、TCPパラメータ変更、アプリの圧縮導入を検討している。. 実測スループットが6.4Mbpsにとどまる理由を、BDPとTCPウィンドウサイズから計算して説明せよ。. 帯域増強、TCPウィンドウスケーリング有効化、アプリ圧縮のうち、最も費用対効果が高い対策を選び、理由を述べよ。対策後の理論スループットと20MBファイルの転送時間も概算せよ。. BDP = 100Mbps × 80ms = 100,000,000 × 0.08 = 8,000,000ビット = 1MBである。ウィンドウサイズ64KBでは、1 RTTあたり64KBしか送れないため、最大スループット = 64KB / 80ms = 65,536×8 / 0.08 ≒ 6.55Mbpsとなる。実測6.4Mbpsはこれにほぼ一致する。したがって、ボトルネックは帯域やパケット損失ではなく、ウィンドウサイズがBDPに比べて小さいことである。損失0.01%はTCPの輻輳制御に大きな影響を与える水準ではない。.
32 words, under 1 min4CHAR列への数値リテラル指定による全表走査と複合インデックスの列順
ある受注管理システムの受注テーブルは約500万行で、主キーはorder idである。顧客IDはCHAR(10)型のcustomer id列に格納され、B-treeインデックスが1つある。顧客数は約1万人で、1顧客あたり平均500件の受注がある。アプリケーションの検索画面では、WHERE customer id = 12345 AND order date = '2024-04-01' のように、customer idを数値リテラルで、order dateを範囲条件で指定する。実行計画を確認すると、customer idのインデックスが使われず、全表走査になっている。また、order dateだけの条件では全体の約5%が該当する。DBMSはPostgreSQL系で、暗黙の型変換が発生している。customer idには先頭に空白が入る古いデータが混在しており、アプリではtrimせずに検索している。更新頻度は1日約2万件、夜間バッチで数百件単位のINSERTがあり、その間は検索の応答時間がさらに2秒悪化する。現在の応答時間は平均8秒で、目標は1秒以内である。開発チームは、アプリ修正、複合インデックス追加、テーブル分割を検討している。. 複合インデックスを追加する場合、列順をどうするか。customer idとorder dateの選択率から理由を述べよ。. customer idはCHAR(10)型であるのに、検索条件で数値リテラル12345を渡しているため、DBMSが列側を数値に変換する暗黙の型変換を起こしている。列に関数や変換を適用すると、通常のB-treeインデックスは使えず、全表走査になる。最初に修正すべきは、アプリでcustomer idを文字列リテラル'12345'としてバインドし、列側の型変換をなくすことである。併せて、先頭空白を含む古いデータはtrimして格納するか、検索時に正規化する。ただし、trim関数を列に適用すると再びインデックスが使えなくなるため、データクレンジングを優先する。. 複合インデックスは(customer id, order date)の順とする。customer idは等値条件で、1万人の顧客から1人に絞るため選択率が高く、平均500行に絞れる。order dateは範囲条件で全体の5%(25万行)に該当する。B-treeでは、等値条件の列を先に置くと、その範囲内で次の列の範囲検索が効率的に働く。逆順の(order date, customer id)では、まず25万行を走査してからcustomer idで絞ることになり、効果が小さい。また、検索列を両方含む複合インデックスは、カバリングインデックスとしても機能し得る。.
38 words, under 1 min5検収ずれと前払費用を修正したEVMによる追加要員の投資判断
あるソフトウェア開発プロジェクトは、期間6か月、総予算(BAC)4,800万円で計画された。4か月目の月末時点で、PV=3,200万円、EV=2,880万円、AC=3,360万円と報告された。ただし、次の2点が判明している。(1) 検収基準でEVを計上しているが、完了済みで検収が翌月にずれた作業240万円がEVに含まれていない。この作業の実コストはACに含まれている。(2) ACには、来期分のライセンス料160万円の前払いが含まれている。プロジェクトマネージャは、このままの指標で判断する前に修正が必要と考えている。残作業は2か月分で、納期は変更できない。追加要員を投入すると、残期間のコストが300万円増える見込みである。残作業のうち20%は外部ベンダに依存し、ベンダの納期は変更できない。追加要員は社内リソースで、教育に2週間を要する。経営層はコスト超過より納期遅延を避けたいとしている。品質への影響も考慮する必要がある。. 修正後のPV、EV、ACを用いてCPIとSPIを計算し、報告値との差が生じた理由を説明せよ。. EACを計算し、追加要員300万円を投入すべきか判断せよ。納期優先の経営方針と品質リスクを考慮すること。. EVMの指標をそのまま使うと誤判断につながる他の要因を2つ挙げ、モニタリング方法を提案せよ。.
11 words, under 1 minMore study resources for Fundamental Information Technology Engineer Examination
- Practice questions2進数 1011 と 0110 のビット単位の論理積(AND)を求めたものはどれか。.
- FlashcardsTwo's complement range. For n bits, signed values run from −2^(n−1) to 2^(n−1)−1.
- Cheat sheet科目A is a broad-knowledge paper: roughly 60% of questions come from technology (algorithms, databases, networks, security), the rest from management, strategy, and law/standards; no partial credit, so one wrong option loses the whole question.
- Key terms2進数 (binary number). A base-2 number system using only the digits 0 and 1, where each position represents a power of 2.
- Study planMap the 科目A syllabus into a one-page checklist covering hardware, software, databases, networks, security, algorithms, and management/strategy, and mark your current confidence 1-5 per area.
- Common mistakes科目A gives 60 questions in 90 minutes, i.e.
- Exam-day guideIPA exams in Japan typically require the printed admission slip (受験票) mailed or issued to the candidate, plus a photo ID.