SMALL
0311 โ๏ธ
๐ฎ Next.js ์ ๊ธฐ๋ณธ ์๊ฐ
Vercel
์์ React.js
๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ , ์น ๊ฐ๋ฐ์ ์ํ ํ๋ ์์ํฌRoute Handler
๋ฅผ ํตํด ๋ฐฑ์๋๋ฅผ ๋ค๋ฃฐ ์ ์์ด, ํ ์คํ ์น ๊ฐ๋ฐ์ด ๊ฐ๋ฅ
+ ์ฌ๊ธฐ์ ํ๋ ์์ํฌ๋?
๊ฐ๋ฐ์๊ฐ ๊ธฐ๋ฅ ๊ตฌํ์๋ง ์ง์คํ ์ ์๊ฒ ํ์ํ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ์์ ์ง์ํ๋ '๊ธฐ์ ์ ์กฐํฉ'์ผ๋ก,
๋ณ๋์ ์ ํ ์ ๊ฐ๋ฐ์๊ฐ ํ ํ์ ์์ด ํ๋ ์์ํฌ๊ฐ ๋ค ์์์ ํด์ค์ ํธ๋ฆฌํ๊ฒ ๊ฐ๋ฐํ ์ ์๋ค!
Ex ) Next.js, ํน์ JS๊ธฐ๋ฐ ์น FE SPA ํ๋ ์์ํฌ๋ค์ธ Vue.js, Augular.js ๋ฑ)
+ ์ด์ ๋ฐํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋
๊ณตํต ๊ธฐ๋ฅ์ ๋ชจ๋ํ๊ฐ ์ด๋ฃจ์ด์ง ํ๋ก๊ทธ๋จ์ ์งํฉ.
๊ฐ๋ฐ์์ ๋ณ๋ ์ ํ ์ด ํ์ํ๋ฉฐ, ํ๋ ์์ํฌ๋ณด๋ค ๊ธฐ๋ฅ์ ์ผ๋ก ๋ถ์กฑํ๋ค๊ณ ํ ์ ์๋ค.
์๋ฅผ ๋ค์ด, Routing ์ด๋ผ๋ ํน์ ๊ธฐ์ ์ ๊ตฌํํ๊ธฐ ์ํด์๋
React.js ์ ๊ฐ์ (UI๋ฅผ ๋ง๋ค๊ธฐ์ํ) ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ ๋ณ๋๋ก react-router-dom ๋ฑ์ ์ค์นํด routing ์ค์ ์ฝ๋๋ฅผ ์์ฑํด์ผํ์ง๋ง,
Next.js ์ ๊ฐ์ ํ๋ ์์ํฌ์์๋ ์ด๋ฏธ routing ์ ํ ์ด ๋์ด์์ด์, ๊ทธ๋ฅ ์ ํด์ง ๋ฐฉ๋ฒ์ ๋ง๊ฒ ์ฝ๋ ์์ฑ๋ง ํด์ฃผ๋ฉด routing์ ์ฌ์ฉํ ์ ์๋ค. ( => ๊ฐ๋ฐ์๊ฐ ์๋ ํ๋ ์์ํฌ๊ฐ ๊ธฐ์ ์ ์ ์ด - (IoC : Inversion of Control ์ ์ด์ ์ญ์ )
๐ช Next.js ์ ๊ธฐ๋ฅ๊ณผ ์ด์
- React.js๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ์ ํ์ฅํ React ํ๋ ์์ํฌ
- ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ค์ํ ๊ธฐ๋ฅ, ๊ตฌ์กฐ ์ ๊ณต
1) ๋ค์ํ ๋ ๋๋ง ๊ธฐ๋ฒ : ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง CSR ๋ฟ๋ง ์๋๋ผ, ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง SSR, SSG, ISR ๊ฐ๋ฅํด ( => TTV๊ฐ ์งง๋ค๊ฑฐ๋, SEO์์ ์ ๋ฆฌํ๋ค๋ ์ฅ์ ๋ฑ)
2) Routing : ํ์ผ(ํด๋) ๊ธฐ๋ฐ ๋ผ์ฐํ
3) Route Handler : ๋ฐฑ์๋ ๊ฐ๋ฅ (GET,POST,DELETE,PATCH์ ๊ฐ์ ์์ฒญ ๊ฐ๋ฅํ ๋ฐฑ์๋ ๊ฐ๋ฐ. ๋ฐ์ดํฐ ์ ๊ณต์๋ก์์ ๋ฐฑ์๋ ์ญํ ์ํ ๊ฐ๋ฅ)
4) ์คํ์ผ๋ง : CSS, Sass, CSS-in-JS, TailwindCSS ๋ฑ ๊ฐ๋ฅ
5) ์ต์ ํ, ๋ฒ๋ค๋ง : ์ฝ๋ splitting, ์ด๋ฏธ์ง ์ต์ ํ, ์นํฉ ์ค์ ๋ฑ์ ํด์ค
๐จ Next.js ์ ํ๊ณ
1) Route Handler ํตํด ๋ฐฑ์๋๊น์ง ๋ค๋ฃจ๋ ํ์คํ ์น ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ์ง๋ง,
๋ณต์กํ ๋ฐฑ์๋ ๋ก์ง ๊ตฌํ์ ์์ง ์ด๋ ต๋ค. (ex) WebSocket, WebRTC ๋ฑ)
2) FE ๋ก์ง์ ๋ํ ์ข ์์ฑ : ๋ฐฑ์๋ ๋ก์ง๋ง ๋ณ๊ฒฝํด์ ๋ฐฐํฌํ๊ณ ์ถ๋ค๊ณ ํด๋, ํ๋ก ํธ์๋๋ ํจ๊ป ๋ฐฐํฌํด์ผ
๐ Next.js์ ๊ฐ๋จํ History
- ๋ชจ๋ ์ฐ๋ ๊ธฐ๋ก X ์๋ต๋ ๋ถ๋ถ ์์ต๋๋ค
* 2016 : ๊นํ๋ธ ์คํ์์ค ํ๋ก์ ํธ๋ก ์ฒซ ์ถ์
6๊ฐ์ง ์์น ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐ
1. out-of-the-box functionality requiring no setup ๋ณ๋์ ์ ํ ์์ด
2. JavaScript everywhere ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ด๋์๋ ์ฐ์ด๊ฒ + all functions are written in JavaScript
3. automatic code-splitting and server-rendering ์ฝ๋ ์คํ๋ฆฌํ , ์๋ฒ ๋ ๋๋ง
4. configurable data-fetching ์ต์ ๋ํ๊ฒ ๋ฐ์ดํฐ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ์ค์ ๊ฐ๋ฅ
5. anticipating requests ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง๋ฅผ ๋จผ์ ์์ธก = ์๊ตฌ์ฌํญ ์์ธก
6. simplifying deployment ๋ฐฐํฌ ์ฝ๊ฒ
* 2020 :
Ver. 9.3 SSG, SSR๋ฟ๋ง ์๋๋ผ, `ISR` (Incremental Static Regeneration - ์ผ์ ์ฃผ๊ธฐ๋ง๋ค ๋ฐ์ดํฐ ๊ฐฑ์ ๊ฐ๋ฅ) ๋ ๋๋ง ํจํด์ ๋ฑ์ฅ
* 2022 :
Ver. 13์ ํ๊ธฐ์ ์ธ ๋ฑ์ฅ!! `app route` ๋ฑ์ฅ. React ver.13์ ๋ฑ์ฅํ `์๋ฒ ์ปดํฌ๋ํธ` ์ ์ฉ . `(nested) layouts` ๋ฑ์ฅ.
* 2023 :
Ver. 14 ๋ฑ์ฅ. ๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ ํฅ์ (`edge runtime` - ์ ์ธ๊ณ ์ฌ๋ฌ ์๋ฒ ์ค ์ฌ์ฉ์์๊ฒ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฒ์์ ์คํํ๋ ๊ธฐ์ )
SMALL