ソフトウェアは、どんな部品でできているか

プログラミングを学び始めると、「フロントエンド」「バックエンド」「データベース」「デプロイ」といった言葉が次々に出てくる。ここは、それらがそれぞれ何をしていて、どうつながって一つのソフトウェアになるのかを、初学者向けに一枚の地図にしたサイトです。

地図の上に、各分野の代表的なツール 52 件を置いています。どのツールも「できること」だけでなく「できないこと」と「限界値」を、公式ドキュメントの出典つきで同じ形で載せています。使い方は載せません。使い方は公式ドキュメントが最も正確だからです。

全体像

ソフトウェアを構成する12の分野と、そのつながり 利用者 API 読み書き 上の3つは、この言語で書く 載せる 届ける 見守る 入口で守る 周辺:コードを書かずにつなぐ・繰り返す 利用:溜まったデータを使う 画面・フロントエンド 見せる サーバー・API 決める・返す データの保存 覚える 言語・実行環境 書くための言葉 実行基盤・ホスティング 動かす場所 開発基盤・CI/CD 届ける 監視・可観測性 見守る 認証・セキュリティ 守る 自動化・連携 繰り返す ノーコード・SaaS 書かずに済ます データ処理・分析 集計する AI・機械学習 生成・予測
上の段が「利用者に見えて、動いている部分」。下へ行くほど、それを支える仕組みになる。箱を押すと分野の解説へ移る。

図の読み方と、学ぶ順番の解説へ

12の分野

上から順に学ぶことを想定した並び。各分野に「最初に触るなら」を1件ずつ挙げている。

  1. 言語・実行環境 プログラムを書くための「言葉」と、それを動かす仕組み
    すべての分野の部品は、いずれかの言語で書かれている。地図のいちばん下にある土台。 最初に触るなら Python
  2. 画面・フロントエンド 利用者が見て、触る画面をつくる。ブラウザの中で動く部分
    利用者にいちばん近い層。ここから裏側(サーバー)に頼み事をして、返ってきたデータを見せる。 最初に触るなら Astro
  3. サーバー・API 画面の裏側で、頼まれた処理をしてデータを返す係
    画面とデータの間に立ち、「誰が何をしてよいか」を決める。アプリのルールはここにある。 最初に触るなら Supabase
  4. データの保存 データをなくさず置いておく場所。形(表・文書・ファイル)で種類が分かれる
    アプリの「記憶」。サーバーが読み書きし、溜まったものは後で分析にも使う。 最初に触るなら SQLite
  5. 実行基盤・ホスティング 書いたコードを、自分のパソコンの外で動かし続ける場所
    画面・サーバー・データベースを「載せる」土台。ここに載せて初めて、他人が使える。 最初に触るなら GitHub Pages
  6. 開発基盤・CI/CD コードの変更を、壊さずに本番へ届ける仕組み
    「書いた」と「動いている」の間をつなぐベルトコンベア。履歴・検証・配信の3つを担う。 最初に触るなら Git
  7. 監視・可観測性 動いているものの様子を知り、壊れたら気づく
    公開したあとの「目」。これがないと、壊れても利用者から言われるまで分からない。 最初に触るなら Sentry
  8. 認証・セキュリティ 誰がアクセスできるかを決め、守る
    画面とサーバーの入口に立つ門番。本人確認(認証)と、してよいことの範囲(認可)を扱う。 最初に触るなら Clerk
  9. 自動化・連携 決まった作業を、人手なしで繰り返す
    人が毎回やっていた作業を機械に渡す。周りの分野をつなぐ接着剤でもある。 最初に触るなら Google Apps Script
  10. ノーコード・SaaS コードを書かずに済ませる選択肢
    学習の近道であり、限界に当たったときに「コードが必要な理由」を教えてくれる。 最初に触るなら Zapier
  11. データ処理・分析 溜まったデータを集計・変換・可視化する
    保存されたデータを「使う」側。分析と AI の前段にあたる。 最初に触るなら pandas
  12. AI・機械学習 文章の生成・要約・分類や、予測をアプリに組み込む
    最後に足す部品。API を呼ぶだけなら、他の分野を一通り知った初学者でも使える。 最初に触るなら Claude API(Anthropic)

ツール一覧(52件)

分野ごとに、学習コストの低い順。名前を知っている道具から入ってもよい。 検索では略称(GAS、S3、PG)でも引ける。

言語・実行環境

  • Python 読みやすさを優先した動的型付け言語。データ処理・自動化・AI分野の共通語
  • Go 単一バイナリに固めて配布できる静的型付け言語。並行処理と配布が軽い
  • TypeScript JavaScriptに静的型を足した言語。Node.jsでブラウザとサーバーを同じ言語で書く
  • Rust メモリ安全性をコンパイル時に保証する、GCを持たない静的型付け言語

画面・フロントエンド

  • Astro 既定でJavaScriptを出さない静的サイト生成器。必要な部分だけ島として動かす
  • React コンポーネントと状態でUIを組む、ブラウザ画面向けのJavaScriptライブラリ
  • SvelteKit Svelteでルーティング・サーバー処理・静的出力までを完結させるフレームワーク
  • Next.js Reactにルーティング・サーバー描画・APIを足した、Web アプリのフレームワーク

サーバー・API

  • FastAPI 型ヒントからAPI仕様と検証を自動生成する、Pythonの非同期Webフレームワーク
  • Firebase Google Cloud上で動く、モバイル/Web向けのドキュメント指向BaaS
  • Hono Web標準APIのみで書かれ、エッジからNode.jsまで同一コードで動く軽量フレームワーク
  • Supabase PostgreSQLを中核に認証・ストレージ・リアルタイムをまとめたBaaS

データの保存

  • Amazon S3 容量無制限・従量課金の、AWS のオブジェクト(ファイル)ストレージ
  • Meilisearch あいまい検索とタイポ許容に強い、数十ミリ秒で応答する全文検索エンジン
  • Redis 全データをメモリに置く、ミリ秒未満で応答するキー・値/データ構造サーバー
  • SQLite サーバー不要、単一ファイルで動く組み込み型の関係データベース
  • MongoDB JSON風のドキュメントをスキーマレスに保存する、水平分散前提のNoSQL DB
  • PostgreSQL 標準SQLに忠実で拡張性の高い、オープンソースの関係データベース

実行基盤・ホスティング

  • GitHub Pages GitHubリポジトリから静的サイトを無料で公開するホスティング
  • Render Git連携でWebサービス・常駐ワーカー・DBを運用するHeroku型のPaaS
  • Vercel Gitに連携し、Next.jsなどのフロントエンドを自動デプロイするホスティング基盤
  • AWS Lambda サーバー管理なしでコードをイベント駆動・従量課金で実行するAWSの基盤
  • Cloudflare Workers V8アイソレートで動く、Cloudflareのエッジサーバーレス実行基盤
  • Docker アプリと実行環境をイメージに固め、どこでも同じに動かすコンテナ基盤
  • Fly.io Dockerイメージを世界中のリージョンにVM(Machine)として配置するPaaS

開発基盤・CI/CD

  • GitHub Git リポジトリのホスティングに PR・Issue・CI を統合した開発基盤
  • GitHub Actions GitHub リポジトリの push・PR・スケジュールで動く CI/CD 実行基盤
  • Git 分散型バージョン管理システム。全履歴を手元に持ち、ほぼ全操作がローカル
  • GitLab リポジトリ管理からCI/CDまでを一体化したDevOpsプラットフォーム
  • Playwright Chromium/Firefox/WebKitを1つのAPIで自動操作するE2Eテストフレームワーク
  • Terraform クラウド資源を HCL で宣言し、差分を計算して適用する IaC ツール

監視・可観測性

  • Sentry アプリで起きた例外をスタックトレース付きで集め、発生源を特定するエラー追跡サービス
  • Datadog インフラ指標・ログ・APM・エラーを一つの画面に集約する、ホスト課金の SaaS 監視基盤
  • Prometheus + Grafana 時系列メトリクスを収集する Prometheus と、可視化・通知を担う Grafana の定番の組み合わせ

認証・セキュリティ

  • Clerk 作り込み済みUIコンポーネントごと導入できる開発者向け認証サービス
  • Auth0 多様なID連携に対応するエンタープライズ向け認証・認可基盤
  • Cloudflare WAF / DDoS 保護 エッジでHTTPリクエストを検査し攻撃・DDoS・ボットを遮断するCDN型WAF
  • OAuth 2.0 / OpenID Connect 認可・認証の標準仕様。実装はAuth0等の各サービスに委ねる

自動化・連携

  • cron / systemd timer Linux 標準の定期実行機構。分単位の予定でコマンドを起動する
  • Google Apps Script Googleの各サービスをJavaScriptで自動操作する、サーバー不要の実行環境
  • n8n SaaS 連携をノードで組む自動化ツール。自己ホスト可で実行回数課金

ノーコード・SaaS

  • Airtable スプレッドシートの操作感でリレーショナルなデータを扱うノーコードDB
  • Make(旧Integromat) SaaS間をノーコードで繋ぐビジュアル自動化ツール。操作数(オペレーション)課金
  • Notion ドキュメント・DB・Wikiを1つにまとめ、Webサイトとしても公開できるツール
  • Zapier 数千のSaaSをノーコードでつなぐ自動化サービス。タスク数課金

データ処理・分析

  • DuckDB 1プロセスに組み込んで動く、列指向の分析(OLAP)用 SQL エンジン
  • BigQuery サーバーレスで TB 級のデータを SQL で集計する、Google Cloud のデータウェアハウス
  • pandas Python で表形式データをメモリ上で整形・集計・可視化する標準ライブラリ

AI・機械学習

  • Claude API(Anthropic) Anthropic の Claude モデルを HTTP で呼び出す、従量課金の LLM API
  • Ollama LLMを手元のPC・サーバーで動かす、OSSのローカル実行ランタイム
  • OpenAI API OpenAIのGPTモデルをHTTPで呼び出す、従量課金のLLM・埋め込みAPI
  • Hugging Face 機械学習モデル・データセットを共有し、推論も呼び出せるハブ兼API