カテゴリIの次に、サーバーの内側へ

カテゴリIの次に、サーバーの内側へ

カテゴリIでは、利用者が触れる画面側、つまりフロントエンドを作りました。ここからのカテゴリJは、その画面から送られたリクエストをサーバーが受け取った後、内側で何が起きるのかを見ていく章です。フロントエンドが利用者への窓口だとすれば、バックエンドはその奥で判断を下す場所にあたります。まずはこのカテゴリの全体像として、サーバーが担う責任範囲を押さえておきましょう。

このスライドのポイント

  • カテゴリIで作ったのは、利用者が触れる画面側(フロントエンド)
  • カテゴリJは、送られたリクエスト(D-03)をサーバーが受け取った後の章
  • フロント=利用者への窓口/バックエンド=奥で判断を下す場所
  • まずは全体像として、サーバーの責任範囲を押さえる

バックエンドの5責務

バックエンドの5責務

バックエンドとは、サーバーの中で5つの責務を担う層のことです。1つ目は入力検証、信頼できない入力を検査する仕事です。2つ目は業務ルールの適用。3つ目は認証と権限の判断、つまり誰なのか、その操作をしてよいのかを決めることです。4つ目はデータベースへの保存や取得の指示、5つ目は決済や通知といった外部サービスへの接続です。これらはI-01で学んだフロントエンドの5責務と、ちょうど対になっています。

このスライドのポイント

  • バックエンド=サーバーの中で次の5つの責務を担う層

どっちに書くべきかを判断するために

どっちに書くべきかを判断するために

この5責務を知らないと、ある処理を画面側とサーバー側のどちらに書くべきかを判断できません。その結果、AIが親切心でフロントエンドに書いた防御を、そのまま通してしまいます。これはI-01で見た話の裏面にあたります。画面側の入力チェックは利用者への親切であって、防御の本体ではありません。判断と防御はサーバー側の仕事だと決めておくことが、安全なアプリを作るための前提になります。

このスライドのポイント

  • 5責務を知らないと「この処理は画面側かサーバー側か」を判断できない
  • 結果: AIがフロントに書いた防御を、そのまま通してしまう(I-01の裏面)
  • 画面側の入力チェックは利用者への親切であって、防御の本体ではない
  • 判断と防御はサーバー側の仕事、と決めておくことが安全の前提

リクエストがサーバー内を通る断面

リクエストがサーバー内を通る断面

バックエンドの全体像は、1本のリクエストがサーバーの中を通り抜ける断面として描けます。受付を通り、入力検証を受け、認証で誰かを判断され、業務ルールで処理を決められ、必要ならデータベースや外部サービスへ渡り、最後に応答となって返ります。この一続きの断面が、カテゴリJの残り9講義でひとつずつ深掘りしていく地図になります。いまはまず、通る順番と登場人物を眺めておいてください。

このスライドのポイント

  • 全体像=1本のリクエストがサーバーの中を通り抜ける断面
  • 受付 → 入力検証 → 認証判断 → 業務ルール → DB/外部 → 応答
  • この断面が、カテゴリJの残り9講義でひとつずつ深掘りする地図
  • いまは順番と登場人物を眺めておく

経費申請が届いてから返るまで

経費申請が届いてから返るまで

具体例で追います。経費申請の送信リクエストがサーバーに届いたとします。まず入力検証で、金額や日付が正しい形かを確かめます。次に申請者が本人かを確認し、金額に応じて承認ルートを判定します。問題がなければデータベースへ保存を指示し、最後に、申請が作成できたことを表す応答を返します。この検証から応答までの一部始終が、5つの責務が順番に働いている姿そのものです。

このスライドのポイント

  • 例: 経費申請の送信リクエスト(D-03の例)がサーバーに届く
  • 流れ: 入力検証 → 申請者が本人かの確認 → 承認ルートの判定 → 保存の指示 → 作成成功の応答
  • この検証から応答までが、5責務が順番に働いている姿

技術サンプル: 5責務と担当講義の対応表

技術サンプル: 5責務と担当講義の対応表

技術サンプルは、5責務とそれを詳しく扱う講義の対応表です。入力検証はJ-06、業務ルールはJ-07、リクエストの振り分けはJ-04、前後に挟む共通処理はJ-05、エラーの扱いはJ-08で深掘りします。読み方のポイントは、5責務がばらばらの話ではなく、この章全体の目次になっていることです。AIへの質問例としては、この機能のサーバー側処理を、5責務のどれに当たるか分類して説明してください、と聞くとよいでしょう。

フロントエンドとバックエンドの役割の違い

フロントエンドとバックエンドの役割の違い

混同しやすいのは、フロントエンドとバックエンドの役割です。フロントエンドは表示と利用者への親切を担い、バックエンドは判断と防御を担います。同じ入力チェックでも、画面側のものは操作を助けるための表示であり、サーバー側のものは通してよいかを決める防御です。見た目が似ていても目的はまったく別で、判断の最終権限は、常にサーバー側にあると覚えてください。

このスライドのポイント

  • フロントエンド=表示と利用者への親切
  • バックエンド=判断と防御
  • 同じ入力チェックでも、画面側は「操作を助ける表示」、サーバー側は「通してよいかの防御」
  • 判断の最終権限は、常にサーバー側にある

バイブコーディングでの確認点

バイブコーディングでの確認点

バイブコーディングでの確認点です。AIが生成したサーバーのコードに、5責務がそろっているかを確かめる習慣をつけてください。とくに抜けやすいのが入力検証です。画面側で確認しているから大丈夫だろう、と省かれることがありますが、前のスライドで見たとおりそれは防御になりません。生成されたコードを見たら、5つの責務のうちどれが書かれていて、どれが欠けているかを、自分の言葉で確認しましょう。

このスライドのポイント

  • AIが生成したサーバーコードに、5責務がそろっているかを確かめる習慣
  • とくに抜けやすいのは「入力検証」(画面側で確認済みだからと省かれがち)
  • 生成コードを見たら「どの責務が書かれ、どれが欠けているか」を自分の言葉で確認

まとめと次回

まとめと次回

最後に一問一答です。認証の最終判断は、フロントエンドとバックエンドのどちらでしょうか。……答えは、バックエンドです。フロント側の表示は補助にすぎません。30秒まとめとして、バックエンドは、入力検証・業務ルール・認証と権限・保存と取得の指示・外部接続の5責務を担う、判断と防御の本体だと押さえてください。次回は、サーバーが持つ2つの顔、Webサーバーとアプリケーションサーバーへ進みます。関連資料は「Webアプリ構築 完全ワークフロー」と「AIアプリのセキュリティ超入門」です。

このスライドのポイント

  • 一問一答:「認証の最終判断はフロントとバックのどちら?」
  • 答: バックエンド(フロントの表示は補助にすぎない)
  • 30秒まとめ: バックエンド=5責務(検証・業務ルール・認証と権限・保存と取得の指示・外部接続)を担う、判断と防御の本体
  • 次回: サーバーの2つの顔、Webサーバーとアプリケーションサーバーへ
  • 関連資料: 「Webアプリ構築 完全ワークフロー」「AIアプリのセキュリティ超入門」