静的レンダリングと動的レンダリングは、それぞれ何が起きていますか。
静的はビルド時にHTMLを作っておき、リクエストでは返すだけなので速くCDNにも置けます。動的はリクエストごとに作るため、その人にしか出せない内容を出せる代わりに毎回時間がかかります。
面接官が見ているのは用語の補強。
これは「あるページだけビルド時に生成されず、毎リクエスト実行されていました。原因として何を疑いますか。」への追撃質問です。
よくある答えと、面談でどう見られるか
- 静的はビルド時に HTML を作り、動的はリクエストごとに作る
「全員に同じものを見せてよいか」が分かれ目になります。 - 静的は HTML だけのページ、動的は JavaScript を含むページ
JS の有無ではありません。いつ HTML を作るか、の違いです。静的なページでも JavaScript は動きます。 - 静的は変更できないページ、動的は更新できるページ
静的でも再生成すれば更新されます。「変更できない」わけではありません。 - 静的は CDN に置けるが、動的はサーバーが要る
結果として正しく、運用面での違いを押さえられています。
面接官は何を見ているか
- 静的はビルド時に HTML を作ると言えた
- 動的はリクエストごとに作ると言えた
- どちらが向くかの基準を1つ挙げられた
模範解答
静的レンダリングは、ビルド時にあらかじめ HTML を作っておく方式です。リクエストが来たら出来上がったものを返すだけなので速く、CDN にも置けます。
動的レンダリングは、リクエストごとにサーバーで HTML を作る方式です。その人向けの内容や、常に最新であるべき内容を出せます。
向き不向きは「全員に同じものを見せてよいか」で分かれます。記事やドキュメントは静的向き、ログイン後のダッシュボードは動的向きです。