📖 読了目安 約11分
この記事の目次

フロントエンドとバックエンド

Web開発やアプリ開発において、「フロントエンド」と「バックエンド」という言葉をよく耳にします。この章では、それぞれの役割と違い、使われる技術、そして実際の業務パターンについて解説します。

なぜ分かれているのか

Webアプリケーションは、大きく2つの領域に分かれます。

graph LR
    subgraph フロントエンド
        A[ブラウザ/アプリ]
    end
    subgraph バックエンド
        B[サーバー]
        C[(データベース)]
    end
    A <-->|HTTP/API| B
    B <--> C
領域 役割 実行場所
フロントエンド ユーザーが見て操作する画面 ユーザーのブラウザ/端末
バックエンド データの保存・処理・ビジネスロジック サーバー

この分離には理由があります:

  • セキュリティ: 重要なデータや処理をサーバー側で管理
  • パフォーマンス: 重い処理をサーバーで、軽い処理をクライアントで分担
  • 保守性: 画面と処理を分けることで変更しやすくなる

フロントエンド技術

基本技術(必須)

どのフロントエンド開発でも使う基本技術です。

技術 役割
HTML 画面の構造を定義 ボタン、テキスト、入力欄など
CSS 見た目を装飾 色、配置、アニメーションなど
JavaScript 動きを付ける クリック処理、データ取得など

フロントエンドフレームワーク

現代の開発では、JavaScriptのフレームワークを使うことが一般的です。

フレームワーク 特徴 主な用途
React コンポーネント指向、大規模開発向け SPA、管理画面、複雑なUI
Vue.js 学習コストが低い、日本語情報が多い 中小規模サイト、社内システム
Angular フルスタック、TypeScript標準 大企業のエンタープライズ向け
jQuery 従来からある定番、シンプル レガシーシステム、簡単な動き

1年目のポイント: 現場で使っているフレームワークを学びましょう。どれを選ぶかは現場次第です。

SPAとMPA

フロントエンドには大きく2つのアーキテクチャがあります。

graph TB
    subgraph "SPA(Single Page Application)"
        S1[初回: HTML+JS一括取得]
        S2[以降: APIでデータのみ取得]
        S3[画面切替: JSで書き換え]
    end
    subgraph "MPA(Multi Page Application)"
        M1[毎回: サーバーでHTML生成]
        M2[画面切替: ページ遷移]
    end
方式 メリット デメリット
SPA 高速な画面遷移、リッチなUI 初期読込が遅い、SEO対策が必要 Gmail、Slack
MPA SEOに強い、シンプル 画面遷移が遅い 従来のWebサイト

バックエンド技術

サーバーサイド言語とフレームワーク

バックエンドの開発言語は多様です。現場によって使う技術が異なります。

言語 主なフレームワーク 特徴 よく使われる現場
Java Spring Boot, Struts 大規模開発に強い、型安全 金融、基幹系、SIer
C# ASP.NET, .NET Core Microsoft製品と親和性高い 業務システム、Windows系
PHP Laravel, CakePHP Web開発の定番、学習コスト低 Webサービス、CMS
Ruby Ruby on Rails 開発速度が速い、スタートアップ向け Web系スタートアップ
Python Django, Flask AI/ML連携しやすい、シンプル データ分析、API開発
Node.js Express, NestJS JSで統一できる、リアルタイム通信 リアルタイムアプリ、API
Go Gin, Echo 高速、並行処理に強い マイクロサービス、インフラ

1年目のポイント: 言語の優劣はありません。現場で使われている言語を習得することが大切です。

データベース

バックエンドはデータベースと連携してデータを管理します。

種類 代表例 特徴
RDB(関係データベース) MySQL, PostgreSQL, Oracle 構造化データ、トランザクション
NoSQL MongoDB, Redis, DynamoDB 柔軟な構造、高速アクセス

詳細は データベースの基礎 を参照してください。

フルスタックフレームワーク

フロントエンドとバックエンドを一つのフレームワークで開発できるものもあります。

主なフルスタックフレームワーク

フレームワーク ベース技術 特徴
Next.js React + Node.js SSR/SSG対応、API Routes内蔵
Nuxt.js Vue.js + Node.js Vue版のNext.js的存在
Ruby on Rails Ruby MVC、scaffold、高速開発
Laravel PHP Eloquent ORM、Blade テンプレート
Django Python 管理画面自動生成、堅牢
ASP.NET MVC C# Razorテンプレート、Visual Studio連携

Next.jsの例

Next.jsでは、同じプロジェクト内でフロントエンドとAPIを開発できます。

my-app/
├── app/                    # フロントエンド(React)
│   ├── page.tsx           # トップページ
│   └── users/
│       └── page.tsx       # ユーザー一覧ページ
├── app/api/               # バックエンド(API)
│   └── users/
│       └── route.ts       # ユーザーAPI
└── package.json
graph LR
    subgraph Next.js
        F[フロントエンド<br/>React コンポーネント]
        B[バックエンド<br/>API Routes]
    end
    F -->|fetch| B
    B --> DB[(データベース)]

実際の業務パターン

現場では、様々な開発パターンがあります。自分がどのパターンで開発するのか把握しましょう。

パターン1: フロントエンドのみ開発

graph LR
    subgraph 担当範囲
        A[フロントエンド]
    end
    subgraph 別チーム/外部
        B[既存API]
    end
    A -->|API呼び出し| B

特徴:

  • 既存のAPIを使って画面を作る
  • API仕様書を読んで連携する
  • 画面設計・UIに集中できる

よくある現場:

  • 大規模プロジェクトで分業している
  • 外部サービスのAPIを利用する
  • モバイルアプリ開発

パターン2: バックエンドのみ開発

graph LR
    subgraph 別チーム
        A[フロントエンド]
    end
    subgraph 担当範囲
        B[API開発]
        C[(データベース)]
    end
    A -->|API呼び出し| B
    B --> C

特徴:

  • API設計・実装に集中
  • データベース設計も担当することが多い
  • API仕様書を作成する側

よくある現場:

  • マイクロサービス開発
  • 複数クライアント(Web・モバイル)向けAPI
  • データ処理・バッチ処理

パターン3: フロントエンドもバックエンドも開発

graph LR
    subgraph 担当範囲
        A[フロントエンド]
        B[バックエンド]
        C[(データベース)]
    end
    A --> B
    B --> C

特徴:

  • 機能全体を一人(または少人数)で担当
  • 画面からデータベースまで一貫して理解
  • 小回りが利く

よくある現場:

  • スタートアップ・ベンチャー
  • 小規模チーム
  • 社内ツール開発

パターン4: フルスタックフレームワークで一体開発

graph LR
    subgraph 担当範囲(Next.js/Rails等)
        A[画面]
        B[API/コントローラ]
        C[モデル/DB]
    end
    A --> B --> C

特徴:

  • 一つのフレームワークで完結
  • 開発環境がシンプル
  • チーム全員が同じ技術スタック

よくある現場:

  • Webサービス開発
  • プロトタイプ開発
  • 中小規模のプロジェクト

技術選定の背景を理解する

なぜその技術が選ばれているか

現場で使われている技術には理由があります。

観点 選定理由の例
既存資産 過去のシステムとの互換性、既存ライブラリの活用
チームスキル メンバーが習熟している技術を選ぶ
要件 パフォーマンス、セキュリティ、スケーラビリティ
コスト ライセンス費用、インフラ費用、学習コスト
エコシステム ライブラリの充実度、コミュニティの活発さ

1年目のポイント: 「なぜこの技術を使っているのか」を先輩に聞いてみましょう。技術選定の背景を知ることで、システム全体の理解が深まります。

技術の組み合わせ例

よくある技術スタックの組み合わせです。

パターン フロントエンド バックエンド データベース
JAMstack React/Vue Node.js/Go MongoDB/PostgreSQL
LAMP jQuery/Vue PHP (Laravel) MySQL
MEAN Angular Node.js (Express) MongoDB
Java系 React/Vue/Thymeleaf Spring Boot Oracle/PostgreSQL
.NET系 Razor/React ASP.NET Core SQL Server
Rails系 Hotwire/React Ruby on Rails PostgreSQL

まとめ

覚えておくべきこと

  1. フロントエンド: ユーザーが見る画面(ブラウザ/アプリ側)
  2. バックエンド: データ処理・保存(サーバー側)
  3. 開発パターン: 現場によって担当範囲が異なる
  4. 技術選定: 現場の事情に応じて選ばれている

1年目にやるべきこと

  • [ ] 自分の現場がどのパターンか把握する
  • [ ] 使われている技術スタックを確認する
  • [ ] 担当範囲(フロント/バック/両方)を明確にする
  • [ ] 技術選定の理由を先輩に聞いてみる

関連ページ