Next.js SSG๋น๋ & SSR ๋น๋
SSG, SSR ๊ฐ๊ฐ ๋น๋๋ฅผ ํ๊ธฐ ์ํด ๋ช ๋ น์ด๋ฅผ ๋๋์ด์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค
1"scripts": {2"dev": "next dev",3"build": "next build",4"build:ssg": "next build && next export",5"start": "next start"6},
์ดํ ํฐ๋ฏธ๋์์ build ์ ์
๋ ฅํ๋ฉด SSR ๋น๋๋ฅผ, build:ssg ๋ฅผ ์
๋ ฅํ๋ฉด SSG ๋น๋๊ฐ ์งํ๋ฉ๋๋ค.
SSG ๋น๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด, out ํด๋๊ฐ ์์ฑ๋๋ฉฐ, ํด๋น ํด๋ ์์์ SSG ๋ฐฐํฌ์ ์ฌ์ฉ๋๋ ํด๋์ ํ์ผ๋ค(e.g. 404.html, boards.html)์ ํ์ธํ ์ ์์ต๋๋ค.
4.1 Trailing Slash
ํธ๋ ์ผ๋ง ์ฌ๋์๋ URL ์ฃผ์ ๋์ ๋ถ์ ์ฌ๋์ / ๋ฅผ ๋งํฉ๋๋ค.
- e.g.)
https://www.google.co.kr/๋ฅผ ๋ณด์๋ฉด ๋์ ์ฌ๋์๊ฐ ๋ถ์ด์์ต๋๋ค. - ์ฌ์ค
https://www.google.co.kr์ด๋ ๊ฒ ์ ์ด๋ ์ ๋์ํ์ง๋ง, - ๋ธ๋ผ์ฐ์ ๋ ๋ ๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ๋ค๋ฅธ ์ฃผ์๋ก ์ธ์ํฉ๋๋ค.
- ์ฃผ์ ๋์ ์ฌ๋์๊ฐ ๋ถ์ด์์ผ๋ฉด ์ด๊ฑด
๋๋ ํ ๋ฆฌ, ์ฆํด๋๋ผ๋ ์๋ฏธ์ด๊ณ ,- ์ฌ๋์๊ฐ ์๋ค๋ฉด ์ฌ๊ธฐ๊ฐ ๋, ์ฆ
ํ์ผ์ด๋ผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
- ์ฌ๋์๊ฐ ์๋ค๋ฉด ์ฌ๊ธฐ๊ฐ ๋, ์ฆ
Next.js์ ๊ธฐ๋ณธ ssg build ์ต์
์
/boards/index.jsํ์ด์ง๋ฅผ/boards.html์ด๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง html ํ์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค.- ํ์ง๋ง ์ด๋ฐ ํํ์ ํด๋๊ตฌ์กฐ๋ ๋ณด๊ธฐ ๋ถํธํ๊ธฐ ๋๋ฌธ์,
/boards/index.html๊ณผ ๊ฐ์ ํํ๋ก build ํ๋๋ก ์ค์ ์ ๋ณ๊ฒฝํด๋ณด๊ฒ ์ต๋๋ค.
next.config.js ํ์ผ์ ์ด์ด trailing slash ์ต์
์ ์ถ๊ฐํด์ค๋๋ค.
1/** @type {import('next').NextConfig} */2const nextConfig = {3reactStrictMode: true,4trailingSlash: true,5}67module.exports = nextConfig
๊ทธ๋ฆฌ๊ณ ๋์ ๋ค์ yarn build:ssg ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด build๋ ๊ฒ์ ํ์ธํ์ค ์ ์์ต๋๋ค.