こんにちは、しまねこデザインのコンブです。
普段私たちは 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制作の面白いところですね!

Topへ戻る