こんにちは、しまねこデザインのコンブです。
普段私たちは HTML/CSS/JS という「表側」の技術ばかり触っていますが、今日は少しだけ「裏側(サーバーサイド)」の厨房を覗いてみましょう。
1. お弁当屋 vs レストラン
Webサイトには大きく分けて2種類の提供スタイルがあります。
「静的サイト(Static)」と「動的サイト(Dynamic)」です。
graph TD
subgraph Bentoya [🍱 静的サイト(お弁当屋)]
Customer1[お客さん] -->|注文| Clerk1[店員さん]
Clerk1 -->|即座に渡す| Bento[作り置き弁当
(HTMLファイル)]
Bento --> Customer1
end
subgraph Restaurant [🍽️ 動的サイト(レストラン)]
Customer2[お客さん] -->|注文| Clerk2[店員さん]
Clerk2 -->|オーダー通す| Chef[👨🍳 シェフ
(サーバー言語)]
Chef -->|調理開始| Kitchen[厨房
(データベース)]
Kitchen -->|食材取得| Chef
Chef -->|盛り付け| Dish[出来立て料理
(HTML生成)]
Dish --> Customer2
end
style Chef fill:#FFCC80
style Kitchen fill:#ffcccc
この「SHIMANEKO TECH LOG」はお弁当屋さん(静的サイト)です。
私が事前に作っておいた HTML ファイルを、皆さんがサーバーから取っていくだけ。
だから提供が爆速なんです。
一方、Amazon や X(Twitter)のようなサイトはレストラン(動的サイト)です。
「あなたへのオススメ」や「最新の投稿」など、人によって違う内容をその場で作って出す必要があります。
そこで活躍するのが、厨房にいる「シェフ(サーバーサイド言語)」たちです。
2. 厨房の3人のシェフ
Web業界には有名な3人のシェフがいます。
彼らの特徴を知っておくと、システム屋さんの話が少し分かるようになるかもしれません。
🐘 PHP(ピーエイチピー)
「へいらっしゃい!何にする?ま、とりあえず座んな!」
世界で一番普及しているCMS「WordPress」の生みの親。
歴史が長く、どんなサーバー(厨房)にも大抵いる。ちょっとコードが雑でも動いてくれる、懐の深いおっちゃん。
💎 Ruby(ルビー)
「美しくない料理は出さないわ」
日本人の まつもとゆきひろ氏 が生み出した言語。「開発者がハッピーになれること」を理念に持っており、コードが直感的で美しい。
日本発のベンチャー企業などで大人気。
🐍 Python(パイソン)
「この食材の栄養価と焼成温度の最適解は…」
AI(人工知能)や機械学習が得意な理系シェフ。
最近のAIブームで人気爆発中。Web料理も作れるし、裏で複雑な計算もこなす万能選手。
3. 深掘り:厨房の重要人物たち
シェフ(言語)だけではレストランは回りません。
実は、他にも重要な役割を持ったスタッフが働いています。
🤵 API(エーピーアイ):優秀なウェイター
お客さん(ブラウザ)は、直接厨房に入ってシェフに注文することはできません(不衛生だし危険です)。
必ず「API」という窓口(ウェイター)を通して注文し、料理を受け取ります。
※ Application Programming Interface の略
sequenceDiagram
participant Customer as 😋 お客さん (ブラウザ)
participant API as 🤵 API (ウェイター)
participant Chef as 👨🍳 シェフ (サーバー)
Customer->>API: 注文:ハンバーグ定食
API->>Chef: オーダー入ります!
Chef->>Chef: 調理...
Chef->>API: 完成!
API->>Customer: お待たせしました
🧊 Database(データベース):無限の冷蔵庫
何万件もの記事、ユーザー情報、商品データ…
これらを全て頭の中に入れておくのは不可能です。
シェフは必要な時に、巨大な倉庫「データベース(MySQLなど)」から、瞬時に必要な食材を取り出します。
graph LR
Chef[👨🍳 シェフ]
subgraph Database [🧊 データベース]
Table1[ユーザーの棚]
Table2[記事の棚]
Table3[コメントの棚]
end
Chef -->|SQL: ユーザーAの情報ちょーだい| Table1
Table1 -->|はいよ!| Chef
4. なぜ今回はシェフを雇わなかったの?
これだけ優秀なシェフたちがいるのに、なぜこのテックログは「お弁当屋」スタイルを選んだのでしょうか?
details
title なぜ静的サイトなのか?
Item1[全員に同じ内容を見せる] --> Reason1[オーダーメイド不要]
Item2[スピード重視] --> Reason2[調理時間ゼロ]
Item3[コスト削減] --> Reason3[シェフの人件費ゼロ]
Reason1 --> Conclusion[✨ 静的サイトで十分!]
Reason2 --> Conclusion
Reason3 --> Conclusion
ブログのような「全員に同じ記事を見せる」サイトなら、わざわざ注文のたびにシェフが調理する必要はありません。
美味しいお弁当(HTML)を事前に作って並べておく方が、お客さん(皆さん)を待たせず、サーバー代(場所代)も安く済むのです。
適材適所。これがWeb制作の面白いところですね!