Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
非フロントエンジニア観点でのMPA・SPA・SSR・SSGの違い
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Satoshi Kaneyasu
December 27, 2023
Programming
1.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
非フロントエンジニア観点でのMPA・SPA・SSR・SSGの違い
Satoshi Kaneyasu
December 27, 2023
More Decks by Satoshi Kaneyasu
See All by Satoshi Kaneyasu
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
3
200
Amazon_Cognito_で構築する_スケーラブルな_Web_アプリケーション__シングルページ_Web_アプリケーションに認証を組み込む
satoshi256kbyte
0
38
人間とAI、どちらが書いたコードもCI/CDでチェックしてみよう
satoshi256kbyte
0
41
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
280
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎
satoshi256kbyte
1
60
人間とAI、どちらが書いたコードもCICDでチェックしてみよう
satoshi256kbyte
1
73
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
630
お客様とSIerではじめたスクラム開発(で得た学び)
satoshi256kbyte
0
140
From Pipenv to UV: Migrating to a Monorepoto Tame a Complex Repository
satoshi256kbyte
0
81
Other Decks in Programming
See All in Programming
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
590
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
140
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
190
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
630
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
360
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
270
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
200
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
120
Agentic UI
manfredsteyer
PRO
0
200
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
5.7k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Six Lessons from altMBA
skipperchong
29
4.3k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
New Earth Scene 8
popppiees
3
2.4k
The Cult of Friendly URLs
andyhume
79
6.9k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
250
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
400
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
190
Transcript
⾮フロントエンジニア観点での MPA・SPA・SSR・SSGの違い 2023.12.27 SATOSHI KANEYASU
⾃⼰紹介 ⽒名︓兼安 聡 職種︓クラウドエンジニア 趣味︓サックス、筋トレ、CS ゲーム 資格︓ X(Twitter)︓@satoshi256kbyte など
本資料について • 本資料は、MPA・SPA・SSR・SSGの違いをざっくり説明したものです。 • ⾮フロントエンジニアが違いを理解するための資料とお考えください。
ざっくりとした⽐較表 項⽬ MPA SPA SSR SSG 開発のしやすさ 中 ⾼ 中〜⾼
⾼ レスポンス 中 ⾼ ⾼ 最⾼ データ量 ⼤ 中 中 ⼩ ネットワーク通信量 ⼤ ⼩ 中 最⼩ SEO ⾼ 低 ⾼ ⾼
MPA (Multi-Page Application) • 画⾯遷移する度にサーバー側で画⾯全体を作ってクライアントに渡す • 例)Wordpress • 画⾯遷移のたびにブラウザの更新ボタンが×になる •
私たちが使うとモノリシックな作り⽅になりがち • 先にバックエンドを実装して、画⾯の実装が後回しになりがち • 昔⾔われてた「戻るボタン効かない問題」はMPAでも解決可能 • 別にMPAそのものにそんなに問題があるわけではない コレ
MPAの通信の流れ 初回 画⾯全体 リクエスト PHP SQL レスポンス 描画 画像 リクエスト
レスポンス 描画 CSS リクエスト レスポンス 描画 JS リクエスト レスポンス 実⾏ n回⽬ 画⾯全体 リクエスト PHP SQL レスポンス 描画 画像 リクエスト レスポンス 描画 CSS リクエスト レスポンス 描画 JS リクエスト レスポンス 実⾏ ページ遷移ごとに全ての通信と処理が⾛る
SPA (Single-Page Application) • ⼀発⽬に画⾯⼀式分を返す その後は差分だけ返してクライアント側で描画する • 例)React.js、Vue.js • かなり難しい
• フロントにFWが存在するという概念⾃体がピンとこない⼈もいる • デザイナーとの分業が⽐較的しやすい • 分業しないと画⾯の変更要望に追いつけない現実もある • SEOが弱い • 検索botは画⾯の差分を動的に作ってくれない、リンクを辿ってくれない • 同じ理由で、Xのサムネイルが出ない
SPAの通信と処理の流れ 初回 画⾯全体 リクエスト PHP SQL レスポンス 描画 画像 リクエスト
レスポンス 描画 CSS リクエスト レスポンス 描画 JS リクエスト レスポンス 実⾏ n回⽬ 差分データ リクエスト PHP SQL レスポンス 描画 初回に画⾯⼀式を返したあとはあとは差分
SSR (Server-Side Rendering) • MPAとSPAの中間のような技術 • ある程度の画⾯をサーバー側で描画する • 例)Next.js(React.jsの派⽣)、Nuxt.js(Vue.jsの派⽣) •
サーバー側とクライアント側が混在するのでまた違う難しさ • デザイナーとの分業がしやすい︖ • 私たちから⾒たらピンとこないが、フロント界隈ではメジャーなのかも • ⽐較的SEOが強い • 作れる画⾯はサーバー側で作るので、検索botがリンクを辿ってくれる • Xのサムネイルが出る
SSG (Static Site Generation) • 全ページをサーバーで完全にHTML化して、配置。 リクエストされたらただ返すだけの状態にする技術。 • 記事を投稿したら、全ページ⼀気に作り直して再配置する。 •
例)Gatsby.js • ものすごく軽くて早い • CMSのようなものと捉えるとものすごく機能不⾜を感じる • 回避策はなくはないが • ランディングページとかに向いてると予想 • 縁がないのでわからない・・・
もう⼀回表 項⽬ MPA SPA SSR SSG 開発のしやすさ 中 ⾼ 中〜⾼
⾼ レスポンス 中 ⾼ ⾼ 最⾼ データ量 ⼤ 中 中 ⼩ ネットワーク通信量 ⼤ ⼩ 中 最⼩ SEO ⾼ 低 ⾼ ⾼ 得⼿不得⼿はあるけど特定の技術でないとできない︕ ってのは少ない だからこそ⼀つの技術で突っ⾛るのではなく、 ⽬的に合わせて使い分けたい
最後に • フロントの⼈じゃなくても⽤語は知って欲しい • 最近Next.jsでSPAをしようとしてなんか違うなと思ったので、 みなさんは適材適所してね︕