戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2023年 春期 午後 問04


ITニュース配信サービスの再構築に関する次の記述を読んで、設問に答えよ。

 H社は、IT関連のニュースを配信するサービスを提供している。このたび、OSや開発フレームワークの保守期間終了を機に、システムを再構築することにした。   〔現状のシステム構成と課題〕  ITニュース配信サービスでは、多くの利用者にサービスを提供するために、複数台のサーバでシステムを構成している。配信される記事には、それぞれ固有の記事番号が割り振られている。現状のシステム構成を図1に、ニュースを表示する画面一覧を表1に示す。
応用情報技術者試験(令和5年度 午後 問04 図01)
応用情報技術者試験(令和5年度 午後 問04 表01)
 現状のシステム構成では、PC、タブレット、スマートフォン、それぞれに最適化したWebサイトを用意している。APでは、RDBとのデータ入出力とHTMLファイルの生成を行っている。また、関連する記事を見つけるために、夜間にWebサーバのアクセスログをRDBに取り込み、URL中の記事番号を用いたアクセス解析をRDB上のストアドプロシージャによって行っている。  最近、利用者の増加に伴い、通勤時間帯などにアクセスが集中すると、応答速度が遅くなったり、タイムアウトが発生したりしている。   〔新システムの方針〕  この課題を解消するために、次の方針に沿った新システムの構成とする。  ・aの機能を用いて、一つのWebサイトで全ての種類の端末に最適な画面を表示できるようにする。  ・APでの動的なHTMLの生成処理を行わない、SPA (Single Page Application) の構成にする。HTML、スクリプトなどのファイルはWebサーバに配置する。動的なデータはAPからWeb APIを通して提供し、データ形式は各端末のWebブラウザ上で実行されるスクリプトが扱いやすいbとする。  ・RDBへの負荷を減らし、応答速度を短縮するために、キャッシュサーバを配置する。  ・ITニュース一覧画面に表示する記事の一覧のデータと、ITニュース記事画面に表示する関連する記事に関するデータは、キャッシュサーバに格納する。キャッシュサーバには、これらのデータを全て格納できるだけの容量をもたせる。その上で、記事のデータは、閲覧されたデータをキャッシュサーバに設定したメモリの上限値まで格納する。  ・RDBのデータベース構造と、関連する記事を見つける処理は現状の仕組みを利用する。   APで提供するWeb APIを表2に示す。
 次に、Webブラウザ上で実行されるスクリプトの概要を表3に示す。
応用情報技術者試験(令和5年度 午後 問04 表03)
〔キャッシュサーバの実装方式の検討〕  キャッシュサーバの実装方式として、次に示す二つの方式を検討する。  (1) 各APの内部にインメモリデータベースとして実装する方式  (2) 1台のNoSQLデータベースとして実装する方式   APのOSのスケジューラーが5分間隔で、ITニュース一覧画面に表示する記事の一覧と、各記事に関連する記事の一覧のデータを更新する処理を起動する。(1)の場合、各AP上のプロセスが内部のキャッシュデータを更新する。(2)の場合、特定のAP上のプロセスがキャッシュデータを更新する。   なお、APのCPU使用率が高い場合、Web APIの応答速度を優先するために、更新処理は行わない。   〔応答速度の試算〕  新システムにおける応答速度を試算するために、キャッシュサーバの二つの方式をそれぞれテスト環境に構築して、本番相当のテストデータを用いて処理時間を測定した。その結果を表4に示す。
応用情報技術者試験(令和5年度 午後 問04 表04)
 インターネットを介した転送時間やWebブラウザ上の処理時間は掛からないと仮定して応答時間を考える。その場合、ITニュース一覧画面を初めて表示する場合の応答時間は、方式(1)では180ms、方式(2)では c msである。ITニュース一覧画面のページを切り替える場合の応答時間は、方式(1)では100ms、方式(2)では d msである。次に、記事をリクエストした際の応答時間を考える。  Web API “ITNewsDetail”の平均応答時間は、方式(1)では156ms、方式(2)では e msである。  したがって、Web API “ITNewsHeadline”の呼び出しも含めたITニュース記事画面を表示するための平均応答時間は、方式(1)ではfms、方式(2)では258msとなる。  以上の試算から、方式(1)を採用することにした。   〔不具合の指摘と改修〕  新システムの方式(1)を採用した構成についてレビューを実施したところ、次の指摘があった。  (1) ITニュース記事画面での応答速度の不具合   ITニュース記事画面を生成するスクリプトが実際にインターネットを介して実行された場合、試算した応答速度より大幅に遅くなってしまうことが懸念される。   Web API“g”内から、Web API“h”を呼び出すように処理を改修する必要がある。  (2) APのCPU使用率が高い状態が続いた場合の不具合   APに処理が偏ってCPU使用率が高い状態が続いた場合、②ある画面の表示内容に不具合が出てしまう。   この不具合を回避するためには、各APのCPU使用率を監視して、しきい値を超えた状態が一定時間以上続いた場合、APをスケールアウトして負荷を分散させる仕組みをあらかじめ用意する。  (3) 関連する記事が取得できない不具合   関連する記事を見つける処理について、③現状の仕組みのままでは関連する記事が見つけられない。   Webサーバのアクセスログを解析する処理を、APのアクセスログを解析する処理に改修する必要がある。    以上の指摘を受けて、必要な改修を行った結果、新システムをリリースできた。

設問1:〔新システムの方針〕について答えよ。

問題文を見る
(1)本文中のaに入れる適切な字句を解答群の中から選び、記号で答えよ。
解答群  ア:CSS  イ:DOM  ウ:HREF  エ:Python

模範解答

a:ア

解説

解答の論理構成

  1. 【問題文】には「・aの機能を用いて、一つのWebサイトで全ての種類の端末に最適な画面を表示できるようにする。」とあります。
  2. 端末の画面サイズや解像度に応じてレイアウトを自動調整する仕組みは、一般に“レスポンシブWebデザイン”と呼ばれます。
  3. レスポンシブWebデザインを実現する中心技術は、メディアクエリなどを備えた「CSS(Cascading Style Sheets)」です。HTML文書に対してスタイルを切り替えることで、同一URLでもPC、タブレット、スマートフォンへ最適化した表示が可能になります。
  4. 選択肢のうち「ア:CSS」だけがこの要求を直接満たすため、a に入る適切な字句は「CSS」と判断できます。

誤りやすいポイント

  • 「DOM」は文書構造のAPIであり、表示を制御するスタイル自体は持ちません。レスポンシブ対応には直接結び付きません。
  • 「HREF」はリンク先URLを示す属性で、画面レイアウト制御の機能はありません。
  • 「Python」はサーバ側プログラミング言語で、クライアント側のスタイル切り替えには不向きです。
  • “Web API” や “SPA” といったキーワードに引きずられ、サーバ側技術を選択してしまうミスが起きやすい点に注意が必要です。

FAQ

Q: CSSのどの機能で端末ごとの最適表示を行うのですか?
A: 一般的には @mediaルール(メディアクエリ)を用い、画面幅・解像度・向きなどに応じてレイアウトやフォントサイズを切り替えます。
Q: JavaScriptで画面サイズを判定する方法と比べてCSSを選ぶ利点は?
A: CSSだけで完結すればダウンロードすべきスクリプトが減り、レンダリングもブラウザ任せにできるためパフォーマンス面で有利です。またアクセシビリティの観点からも推奨されます。
Q: SPAにしてもCSSは必要ですか?
A: はい。SPAは画面遷移をスクリプトで制御しますが、個々のコンポーネントやページを見やすく調整するのはCSSの役割です。SPAとCSSは補完関係にあります。

関連キーワード: CSS, レスポンシブデザイン, メディアクエリ, SPA

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問1:〔新システムの方針〕について答えよ。

問題文を見る
(2)本文中のbに入れる適切な字句を答えよ。

模範解答

b:JSON

解説

解答の論理構成

  • 【問題文】では、動的データの受け渡しについて「動的なデータはAPからWeb APIを通して提供し、データ形式は各端末のWebブラウザ上で実行されるスクリプトが扱いやすいbとする。」と明記されています。
  • 各端末(PC・タブレット・スマートフォン)のWebブラウザで直接扱いやすいデータフォーマットとして、現在もっとも一般的に用いられるのはJavaScriptのオブジェクト表現そのものをテキスト化した JavaScript Object Notation です。
  • JSONは
    1. JavaScriptでネイティブにparse / stringifyでき、追加ライブラリが不要
    2. 軽量かつ人間可読で、ネットワーク転送量を削減
    3. RESTful Web APIやSPAのデファクトスタンダード
      という特長を持ち、【新システムの方針】で掲げる「SPA (Single Page Application)」と「Web API」に最適合します。
  • よって b に入る字句は「JSON」と判断できます。

誤りやすいポイント

  • XMLと迷う
    • 旧来のWebサービスではXMLが多用されていたため、慣習的に選びがちです。しかし問題文は「Webブラウザ上で実行されるスクリプトが扱いやすい」と限定しており、パーサ不要で直接扱えるJSONが適切です。
  • CSVやYAMLを想起する
    • CSVは階層構造を表しにくく、YAMLはブラウザネイティブではありません。SPAで複雑なオブジェクトをやり取りする前提と合致しません。

FAQ

Q: JSONはバイナリデータを扱えますか?
A: 直接は扱えませんが、Base64などでエンコードすれば文字列として送受信可能です。画像はURLで参照させる設計なので問題ありません。
Q: JavaScriptが苦手な端末でもJSONは利用できますか?
A: 問題文の対象は「Webブラウザ上で実行されるスクリプト」が動く端末です。モダンブラウザを前提にしているためJSON解析機能は標準装備です。
Q: JSONと同時にスキーマ定義は必要ですか?
A: 厳密なバリデーションが必要であればJSON Schemaを別途用意しますが、本問ではフォーマットのみが問われており、スキーマまでは求められていません。

関連キーワード: SPA, Web API, JSON, キャッシュサーバ, REST

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問1:〔新システムの方針〕について答えよ。

問題文を見る
(3)表2中の下線①の方式にすることで、どのような記事がキャッシュサーバに格納されやすくなるか。15字以内で答えよ。

模範解答

参照回数の多い記事

解説

解答の論理構成

  • 【問題文】表2の “ITNewsDetail” には「キャッシュするデータは①LFU方式で管理する。」とあります。
  • 「LFU方式」はLeast Frequently Used、すなわち“参照頻度が少ないデータを追い出し、参照頻度が高いデータを残す”アルゴリズムです。
  • したがって、同方式を採用するとキャッシュ領域には参照頻度の高いデータが保持されやすくなります。
  • このデータとは「ITニュース記事画面でアクセスされる記事」のことであり、頻繁に読まれる記事ほどキャッシュに残るため、
    ➡︎ 答え「参照回数の多い記事」と結論づけられます。

誤りやすいポイント

  • LFUをLRU(最近使われた順)と取り違え、「最新の記事」や「直近に読まれた記事」と答えてしまう。
  • 「キャッシュサーバに格納されやすい」を“登録時点”と誤解し、「新着記事」などと回答してしまう。
  • 「参照回数=アクセス数」の理解不足で、単に「人気記事」と曖昧に書いて減点される。

FAQ

Q: LFU方式は常に最適ですか?
A: 高頻度アクセスが集中するニュースサイトのようなケースでは有効ですが、短期間に閲覧対象が急変する場合はLRU等の方が効果的なこともあります。
Q: “参照回数”はどのタイミングでカウントされますか?
A: Web API “ITNewsDetail” が呼び出された都度、当該記事の参照回数がインメモリデータベース上で更新されます。
Q: キャッシュ容量を超えた場合はどうなりますか?
A: LFUに基づき最も参照回数の少ない記事データが逐次削除され、新しいデータが格納されます。

関連キーワード: LFU方式, キャッシュアルゴリズム, インメモリデータベース, 参照頻度, Web API

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

本文中のc~fに入れる適切な数値を答えよ。

模範解答

c:280 d:200 e:138 f:246

解説

解答の論理構成

  1. ITニュース一覧画面 ― 初回表示
    • 測定結果No.1「“80ms”」+ No.2方式(2)「“200ms”」
    • よって → c は280
  2. ITニュース一覧画面 ― ページ切替
    • ページ切替時はHTMLなどを再取得しないのでNo.2方式(2)「“200ms”」のみ
    • よって d は200
  3. Web API “ITNewsDetail” の平均応答時間
    • キャッシュヒット率No.3方式(2)「“90%”」
    • ヒット時時間No.4方式(2)「“120ms”」
    • ミス時時間No.5「“300ms”」
    • 平均
    • よって e は138
  4. ITニュース記事画面 ― 平均応答時間
    • “ITNewsDetail” 平均138ms
    • “ITNewsHeadline” は6件、No.6方式(1)「“15ms”」より方式(1)は ms
    • 方式(1): → f は246

誤りやすいポイント

  • No.1の “80ms” をページ切替時にも加算してしまう
  • ヒット率を百分率でなく小数で計算し、 のように掛けてしまう
  • “ITNewsHeadline” が6件であること(表2で「6件」)を見落とす
  • 方式(1) と 方式(2) の測定値を混在させ、平均を誤る

FAQ

Q: 「ITNewsDetail」の平均を計算する際、ヒットとミスの時間以外のオーバーヘッドは考慮しないのですか?
A: 問題文に示された測定結果No.4とNo.5が「全て転送するまでの時間」と明記されているため、これらをそのまま加重平均します。
Q: ページ切替時にHTMLの再転送が不要になる根拠は?
A: SPA構成で「HTML、スクリプトなどのファイルはWebサーバに配置する」とあり、初回取得後はブラウザ内で画面を切替えるためです。
Q: “ITNewsHeadline” を並列呼び出しできるのでは?
A: 問題では「Web APIの応答時間を足し上げて算出する」形式で示されており、並列実行による短縮は前提にしていません。

関連キーワード: SPA, キャッシュヒット率, 加重平均, Web API, インメモリデータベース

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:〔不具合の指摘と改修〕について答えよ。

問題文を見る
(1)本文中のg、hに入れる適切な字句を、表2中のWeb API名の中から答えよ。

模範解答

g:ITNewsDetail h:ITNewsHeadline

解説

解答の論理構成

  1. 【問題文】の表3には、
    「ITニュース記事」画面のスクリプトは
    「表示させたい記事の記事番号を指定して Web API “ITNewsDetail” を呼び出し、…次に…一つずつ指定して Web API “ITNewsHeadline” を呼び出し…」
    と記載されています。
  2. つまりブラウザは1画面表示のたびに 1回の “ITNewsDetail” + 6回の “ITNewsHeadline” をインターネット越しに発行しており、往復遅延が累積します。
  3. 指摘(1)では「インターネットを介して実行された場合、試算した応答速度より大幅に遅くなる」とし、解決策として
    「Web API g 内から、Web API h を呼び出すように改修」とあります。
    これは「ブラウザ → APへのリクエスト数を1件に集約し、関連見出し取得をサーバ側で完結させよ」という意味です。
  4. サーバ側で関連記事の見出しを集約する主体は「対象記事のデータを返す」役割を持つ “ITNewsDetail” です。
    一方、集約対象となる「関連する記事1件分の画像のURLと見出し」を返すAPIは “ITNewsHeadline” です(表2を参照)。
  5. よって
    g=ITNewsDetail
    h=ITNewsHeadline
    が最適解となります。

誤りやすいポイント

  • “ITNewsHeadline” をブラウザが呼ぶ仕様が表3にあるため、「g にITNewsHeadline」と思い込みやすい。改修後は逆転する点に注意。
  • 表2の説明文で “ITNewsDetail” に「関連する記事の記事番号のリストを返す」とあることを読み飛ばすと、どちらが呼び出し元か判断できなくなる。
  • 「呼び出す側/呼び出される側」を混同しがち。呼び出し“内”に入るのは常に“上位”の業務API。

FAQ

Q: なぜ “ITNewsDetail” が呼び出し元と判断できるのですか?
A: 表2に「本文内に表示する画像のURL、関連する記事の記事番号のリストを返す」とあり、関連情報の統合役を担う設計だからです。ここに “ITNewsHeadline” の結果を組み込めばブラウザは1回の呼び出しで済みます。
Q: “ITNewsHeadline” を廃止して完全に不要にできませんか?
A: 既存モジュールの再利用を優先しているため、内部呼び出し部品として残します。将来APIを整理する際に統合を検討するのが現実的です。
Q: この改修でキャッシュヒット率に影響はありますか?
A: “ITNewsHeadline” の呼び出し自体は同じですが、AP内部呼び出しになるためネットワーク遅延が減少し、キャッシュの仕組み(①LFU方式)はそのまま機能します。

関連キーワード: SPA, キャッシュ戦略, API集約, レスポンス最適化, 関係データベース

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:〔不具合の指摘と改修〕について答えよ。

問題文を見る
(2)本文中の下線②にある不具合とは何か。35字以内で答えよ。

模範解答

ITニュース一覧と各記事に関連する記事の一覧が更新されない。

解説

解答の論理構成

  1. 問題文ではキャッシュ更新の仕組みとして
    「"APのOSのスケジューラーが5分間隔で、ITニュース一覧画面に表示する記事の一覧と、各記事に関連する記事の一覧のデータを更新する処理を起動する。」と記載されています。
  2. さらに同じ段落で
    「"なお、APのCPU使用率が高い場合、Web APIの応答速度を優先するために、更新処理は行わない。」との条件があります。
  3. つまりCPU使用率が高い状態が続くと、5分ごとの更新処理がスキップされ、キャッシュ内の
    ・「"ITニュース一覧画面に表示する記事の一覧"」
    ・「"各記事に関連する記事の一覧"」
    が古いままになります。
  4. 〔不具合の指摘と改修〕(2) では
    「"APに処理が偏ってCPU使用率が高い状態が続いた場合、②ある画面の表示内容に不具合が出てしまう。」と述べられています。
  5. この“ある画面”とは、前述の更新対象である「ITニュース一覧」および「各記事に関連する記事の一覧」を表示する画面です。CPU高負荷で更新が実行されないため “更新されない” という不具合が発生します。
  6. 以上より回答は「ITニュース一覧と各記事に関連する記事の一覧が更新されない。」となります。

誤りやすいポイント

  • 「Web APIがタイムアウトする」と勘違いし、表示内容ではなく応答時間の不具合と答えてしまう。
  • 更新対象が “記事本文” だと思い込み、本文が古くなると記述してしまう。問題文で更新対象は「記事の一覧」「関連する記事の一覧」に限定。
  • 方式(2) の集中キャッシュと混同し、「NoSQLが単点故障になる」といった対策面を不具合として書いてしまう。

FAQ

Q: CPU使用率が高い場合でも強制的に更新した方が良いのでは?
A: Web APIの応答速度を優先する要件があるため、優先度の低い更新処理はスキップする設計です。ただし負荷分散(スケールアウト)で回避する仕組みを追加します。
Q: 「関連する記事の一覧」はITNewsDetailのレスポンスとは別なのですか?
A: 更新処理で用意するのは一覧用データです。詳細画面用の「ITNewsDetail」でキャッシュがmissした場合は個別にキャッシュします。
Q: 方式(1) のキャッシュが更新されないと一覧以外に影響はありますか?
A: 主に一覧系の画面が最新状態でなくなるだけで、記事本文自体は要求時に個別キャッシュされるため影響しにくい構成です。

関連キーワード: キャッシュ更新, CPU負荷, スケジューラー, スケールアウト, インメモリデータベース

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

設問3:〔不具合の指摘と改修〕について答えよ。

問題文を見る
(3)本文中の下線③の理由を、40字以内で答えよ。

模範解答

記事間の遷移がWebサーバのアクセスログのURLでは解析できないから

解説

解答の論理構成

  1. 現状の関連記事抽出方法
    – 問題文には「夜間にWebサーバのアクセスログをRDBに取り込み、URL中の記事番号を用いたアクセス解析をRDB上のストアドプロシージャによって行っている。」とある。
    – つまりアクセスログの URLに含まれる記事番号 が解析の鍵になっている。
  2. 新システムへの変更点
    – 新方針では「APでの動的なHTMLの生成処理を行わない、SPA (Single Page Application) の構成にする。」
    – SPAではWebサーバは HTMLやスクリプトなどの静的ファイルのみを返却し、記事データ取得はWeb APIが担当する。
  3. 変更による影響
    – ブラウザが記事を閲覧する際に呼び出すのはWeb API “ITNewsDetail” であり、そのURLはWebサーバではなくAPが受け取る。
    – 従ってWebサーバのアクセスログには 記事番号を含むURLが記録されなくなる。
  4. 結論
    – 記事番号が含まれないため「記事間の遷移がWebサーバのアクセスログのURLでは解析できない」。これが下線③の理由である。

誤りやすいポイント

  • 「SPAでもURLは変化するから解析できる」と誤解しやすい
    SPAの画面遷移はフロント側のスクリプトが制御するため、サーバにHTTPリクエストが飛ばないケースが多い。
  • 「APのログも取り込んでいる」と思い込む
    現状の仕組みはWebサーバのログしか対象にしていないと明示されている。
  • 「静的ページにも記事番号が残る」と勘違いする
    記事本文は動的データとしてWeb APIで配信されるため、静的ファイルのURLに記事番号は含まれない。

FAQ

Q: SPAでもブラウザのアドレスバーは記事番号付きURLになりませんか?
A: ハッシュやpushStateで表示URLが変わることはありますが、ブラウザがサーバへ新規リクエストを送らない場合はWebサーバのアクセスログには記録されません。
Q: なぜAPのアクセスログ解析に改修するだけで解決できるのですか?
A: 記事データを配信するWeb API “ITNewsDetail” を受けるのはAPなので、APのアクセスログには確実に記事番号付きのリクエストが残り、従来と同じロジックで解析できます。
Q: Webサーバ側でリバースプロキシを使えばログ解析は続行できますか?
A: 可能ではありますが、APで直接取得した方が余分な転送や設定を省け、ログに必要な情報も揃っているため、問題文ではAP側への移行を選択しています。

関連キーワード: SPA, アクセスログ解析, キャッシュサーバ, LFU, Web API

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

戦国ITクイズ機能

\ せっかくなら /

応用情報技術者を
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について