Lecture 07技術理解 — 第 3

Lecture 07サーバーとは?

Web Appの裏側で処理を行うサーバーの役割を理解します。

読了の目安 約 6 分図解 準備中難易度

Web Appには、ユーザーが見える 表側 と、見えない 裏側 があります。 裏側で静かに働いているのが サーバー。 ログイン確認、データの保存、決済、AIへの問い合わせなど、画面だけでは完結しない処理はすべてここで動いています。

このレクチャーでは、画面(クライアント)とサーバーの違い、 なぜ秘密情報をサーバーに置くのか、Next.jsだと両方を同じプロジェクトで作れる点を見ていきます。

1ユーザーから見える側と、見えない側

画面に表示されるボタンや文字は クライアント 側、 ボタンを押したあとの本格的な処理を裏側で受け持つのが サーバー 側です。 劇場でいえば、お客さんに見えるのが舞台、見えないところで動いているのが裏方さんです。

クライアントは ユーザーに近い ので反応が速く、 サーバーは 裏で動く ので秘密情報を扱えます。 この役割分担がWeb Appの基本です。

2サーバーが担当する処理

  • ログイン確認:メールアドレスとパスワードが正しいかを照合する。
  • データの保存:注文、投稿、設定などをデータベースに書き込む。
  • 決済処理:決済サービス(Stripeなど)に支払いを依頼する。
  • AIへの問い合わせ:AI APIに文章生成や要約を頼む。

いずれも「ブラウザだけでは終わらない」「秘密情報を扱う」「お金が絡む」処理です。 こういうものはクライアントに置かず、必ずサーバーで動かします。

Figure 7.1ブラウザ(表)と サーバー(裏) の役割分担
図解 準備中(生成プロンプトは下記)
生成後は public/lectures/lecture-07-server/split.png に差し替え予定
image · 1400 × 900 (14:9)

3なぜ秘密情報はクライアントに置けないのか

ブラウザの画面は、誰でも中身を覗ける 仕組みになっています。 ページを右クリックして「ソースを表示」とすると、HTMLや一部のコードが見えてしまうのは経験があるかもしれません。

Warn

API Keyをブラウザに置くと盗まれます

APIキーやパスワードのような 秘密情報 をクライアント側のコードに書くと、 悪意のある人にコピーされて勝手に使われてしまいます。 こうした秘密情報はサーバー側にだけ置くのが鉄則です(詳しくはLecture 10と11で扱います)。

4Next.jsなら画面とサーバーを1つのプロジェクトで作れる

このレクチャーで使っている Next.js は、 画面(React Component)とサーバー側の処理を 同じプロジェクト内で扱える 仕組みになっています。

別々のサーバーを立てる必要がなく、AI開発との相性も良いです。 「画面はクライアント、データ保存はサーバー」と頭で分けつつ、 コード上は1つのプロジェクトでまとまる、という体験になります。

やってみよう · Exercise

ブラウザ向き / サーバー向きを振り分ける

次の処理は、ブラウザで動かすべきか、サーバーで動かすべきか、考えてみましょう。 答えは下のCalloutで確認できます。

  • ボタンの色を変える
  • ユーザーのパスワードを確認する
  • AI APIを呼び出す
  • 入力フォームの文字数を数える
  • 注文情報を保存する
Tip

答え合わせ

ブラウザ向き:ボタンの色を変える、入力フォームの文字数を数える。
サーバー向き:パスワード確認(秘密情報)、AI API呼び出し(APIキーが必要)、注文情報の保存(データベース)。
「秘密情報を扱うか」「データを保存するか」で見分けるのがコツです。

進捗にチェックをつける

5理解確認チェックリスト

  • サーバーは「裏側の処理」を担当すると理解している。
  • 秘密情報はクライアントに置かない、と理解している。
  • Next.jsでは画面とサーバー処理を同じプロジェクトで扱えると理解している。
End of Lecture 07