๋ณดํต ๋ฆฌ์กํธ์์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ useEffect ์์์ ๊ฐ์ ธ์ค์ง๋ง Next.js ์์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์๋ค.
1. getStaticProps
- Static Generation์ผ๋ก ๋น๋ํ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ๋ค. (๋ฏธ๋ฆฌ ๋ง๋ค์ด์ค)
- getStaticProps ํจ์๋ฅผ async๋ก export ํ๋ฉด, getStaticProps์์ ๋ฆฌํด๋๋ props๋ฅผ ๊ฐ์ง๊ณ ํ์ด์ง๋ฅผ pre-render ํ๋ค.
- ๋น๋ํ ๋ ํ์ด์ง๋ฅผ ๋ ๋๋ง ํ๋ค.
getStaticProps๋ฅผ ์ฌ์ฉํด์ผ ํ ๋
- ํ์ด์ง๋ฅผ ๋ ๋๋ง ํ๋ ๋ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์ ์์ฒญ๋ณด๋ค ๋จผ์ ๋น๋ ์๊ฐ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋
- ๋ฐ์ดํฐ๋ฅผ Headless CMS์์ ๊ฐ์ ธ์ฌ ๋
- ๋ฐ์ดํฐ๋ฅผ ๊ณต๊ฐ์ ์ผ๋ก ์บ์ ํ ์ ์์ ๋ (์ฌ์ฉ์๋ณ X)
- ํ์ด์ง๋ ๋ฏธ๋ฆฌ ๋ ๋๋ง ๋์ด์ผ ํ๊ณ (SEO์ ๊ฒฝ์ฐ) ๋งค์ฐ ๋นจ๋ผ์ผ ํ ๋ (getStaticProps๋ ์ฑ๋ฅ์ ์ํด CDN์์ ์บ์ ํ ์ ์๋ HTML ๋ฐ JSON ํ์ผ์ ์์ฑํ๋ค.)
2. getStaticPaths
- Static Generation์ผ๋ก ๋ฐ์ดํฐ์ ๊ธฐ๋ฐํ์ฌ pre-render ์ ํน์ ํ ๋์ ๋ผ์ฐํ ๊ตฌํ (pages/post/[id].js)
- ๋์ ๋ผ์ฐํ ์ด ํ์ํ ๋ getStaticPaths๋ก ๊ฒฝ๋ก ๋ฆฌ์คํธ๋ฅผ ์ ์ํ๊ณ , HTML์ ๋น๋ ์๊ฐ์ ๋ ๋๋ง ๋๋ค.
- Next.js๋ pre-render์์ ์ ์ ์ผ๋ก getStaticPaths์์ ํธ์ถํ๋ ๊ฒฝ๋ก๋ค์ ๊ฐ์ ธ์จ๋ค.
fallback
- false๋ผ๋ฉด getStaticPaths๋ก ๋ฆฌํด๋์ง ์๋ ๊ฒ์ ๋ชจ๋ 404 ํ์ด์ง๊ฐ ๋ฌ๋ค.
- true๋ผ๋ฉด getStaticPaths๋ก ๋ฆฌํด๋์ง ์๋ ๊ฒ์ 404 ํ์ด์ง๊ฐ ๋จ์ง ์๊ณ , fallback ํ์ด์ง๊ฐ ๋จ๊ฒ ๋๋ค.
3. getServerSideProps
- Server Side Rendering์ผ๋ก ์์ฒญ์ด ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ๋ค.
getServerSideProps๋ฅผ ์ฌ์ฉํด์ผ ํ ๋
- ์์ฒญํ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ผ ํ๋ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ๋ ๋๋ง ํด์ผ ํ ๋ ์ฌ์ฉํ๋ค.
- ์๋ฒ๊ฐ ๋ชจ๋ ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๊ณ์ฐํ๊ณ , ์ถ๊ฐ ๊ตฌ์ฑ ์์ด CDN์ ์ํด ๊ฒฐ๊ณผ๋ฅผ ์บ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ๊น์ง์ ์๊ฐ์ getStaticProps๋ณด๋ค ๋๋ฆฌ๋ค.