-
Notifications
You must be signed in to change notification settings - Fork 5
NextJs
๋ฐ์งํ edited this page Nov 24, 2020
·
3 revisions
๋ฆฌ์กํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ SPA๋ฅผ ๋น ๋ฅด๊ฒ ๋น๋ํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ ์์ํฌ.
- ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง์ ์ ๊ณตํจ
- ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง์ ์ฅ์
- ๊ฒ์์์ง ์ต์ ํ
- ์ด๊ธฐ ๋ก๋ฉ ์ฑ๋ฅ ๊ฐ์
- ๊ทธ๋ฅ ๊ฒ์์์ง ์ต์ ํ SEO (Search Engine Optimization)
- ๋์ฑ ๋น ๋ฅธ ํ์ด์ง ๋ก๋๋ฅผ ์ํ ์ฝ๋ ์คํ๋ฆฌํ ์๋ํ
- HMR์ ์ง์ํ๋ ์นํฉ ๊ธฐ๋ฐ ํ๊ฒฝ
- Express๋ Node.js์ ๊ฐ์ http ์๋ฒ์ ํจ๊ป ๊ตฌํ ๊ฐ๋ฅ
- Babel, Webpack ์ค์ ์ปค์คํฐ๋ง์ด์ง ๊ฐ๋ฅ
- isomorphic-unfetch
๊ณตํต์ : page ์ปดํฌ๋ํธ์์ ์ฌ์ฉํด์ผ ํจ.
-
getStaticProps
- SSG
- ๋ค๋ฅธ ํจ์๋ค ๋ณด๋ค ์ด ํจ์๋ฅผ ์ฌ์ฉํ๊ธธ ๊ถ์ฅ
- ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๊ณ pre-rendering์ ์งํ, ๊ทธ๋ฌ๊ธฐ์ ์ข ๋ ์ข์ ์ฑ๋ฅ
- request์ ์์ ํ์ด์ง๋ฅผ ๋ ๋๋งํ ๋ ํ์ํ ๋ฐ์ดํฐ๊ฐ ์์ ๋
- ๋ฐ์ดํฐ๊ฐ ๊ณต์์ ์ผ ๋ (ํน์ ์ ์ ๋ ๊ด๊ณ๋๋ฉด ์๋)
- ๋ฐ์ดํฐ๊ฐ headless CMS๋ก ๋ถํฐ ์ฌ ๋,
** headless CMS?
- ๋จธ๋ฆฌ๋ ์ปจํ ์ธ ๋ฅผ ๋ณด์ฌ์ค ์๋จ, ๋ชธํต์ ์ปจํ ์ธ ๋ฅผ ์๋ฏธ
- ๋จธ๋ฆฌ(ํํ ์๋จ)๋ฅผ ์ธ์ ๋ ๋ฐ๊ฟ ๋ผ์ธ ์ ์๋ค๋ ๋ป์ด๋ค.
-
Headless CMS๋ ์ด๋ป๊ฒ ์๋ํ๋๊ฐ?
- ์ปจํ ์ธ ํธ์ง์์ ๊ฐ๋ฐ์๊ฐ ์๋ฒฝํ ๋ถ๋ฆฌ๋ ์ ์๋ค. ์ปจํ ์ธ ํธ์ง์๋ ์ต์ํ GUI๋ก ์ปจํ ์ธ ๋ฅผ ์ถ๊ฐ/์์ /์ญ์ ํ ์ ์๋ค.
-
getStaticPaths
- getStaticProps๋ฅผ ์ธ ๋๋ง ์ฌ์ฉ ๊ฐ๋ฅ
- route๊ฐ ๋์ ์ผ ๋ ์ฌ์ฉํ๋ค. /post/[pId]
- ๋จ, ๊ทธ๋ผ post id๊ฐ 20000๊ฐ ๊ฐ๋ ์์๋๋ ์ด๊ฑธ pre renderํ ๊ฒ์ด๋..? โ ์๋ฐฉ๋ฐฉ๋ฒ์ด ์๋คํจ.
-
getServerSideProps
- SSR
- ์์ฒญ๋ง๋ค ๋ฐํ ๋ฐ์ดํฐ๊ฐ์ด ๋ณํ๊ฐ ๋ง์ ๊ฒฝ์ฐ ์ด ํจ์๋ก ํธ์ถํ๋ฉด ์ข๋ค.
- ๋น๋ ์ดํ์๋ Data ๋ณ๊ฒฝ๊ฐ๋ฅ? ๊ทธ๋ผ SSR์ฌ์ฉ
pre-rendering : ๋ฏธ๋ฆฌ html์ ๋ง๋๋ ๊ฒ.
** ์ฌ๊ธฐ์ ๋น๋ํ์์ด๋? next-build
Static Generation
HTML์ ๋น๋ํ์์ ๋ง๋ค์ด๊ฐ์ง๊ณ , ๊ฐ๊ฐ request ๋ณด๋ผ ๋ ์ฌ ์ฌ์ฉํจ. getStaticProps๋ฅผ exportํด์ ์ฌ์ฉํ๋ค.
bundle.js์๋ ํฌํจ ์๋.(?)
Server-Side Rendering
HTML์ด ๊ฐ๊ฐ request๋ฅผ ๋ณด๋ผ ๋ ๋ง๋ค์ด์ง. getServerSideProps๋ฅผ exportํ์ฌ ์ฌ์ฉํ๋ค.
โ 2020. Project01-C-User-Event-Collector [J028_๊น๋๊ท , J089_๋ฐ์งํ, J139_์ด์๊ฒฝ, S059_์ต๊ดํ, S060_์ต๋๊ท] all rights reserved.