next.js๋ React ๊ฐ๋ฐ์๋ผ๋ฉด ๋ฐ๋์ ์์์ผ ํ๋ ํ๋ ์ ์ํฌ์ ๋๋ค.
์์ React๋ ์คํ๋ ค ์ ์ฐ๊ณ , React์ Next.js๋ฅผ ์น์ด์ ์ฃผ๋ก ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ฑํ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ฉด Next.js๋ ๋ฌด์์ธ์ง๋ถํฐ ํด์ ๊ฐ์ด ๊ณต๋ถ๋ฅผ ํ๋ ค๊ณ ํฉ๋๋ค.
์ด๋ฏธ ํ๋ก์ ํธ ์งํํ ๋ ๊ณ์ํด์ ์ฌ์ฉํ๊ณ ๋ ์์ง๋ง, ๋ฑํ ๊ณต๋ถ๋ฅผ ํด์ ์๊ณ ์ ์ฌ์ฉํ๊ธฐ๋ณด๋ค๋
๊ทธ๋๊ทธ๋ ๋ง์ถฐ์ ์ฐพ์๋ณด๊ณ ํ๋ ํฐ๋ผ ์ด๋ฒ๊ธฐํ์ ์ ๋ฆฌํ ๊ฒธ ๊ณต๋ถํ ๊ฒธ ๊ฒธ์ฌ๊ฒธ์ฌ ํ๊ณ ์ถ์์ต๋๋ค.
Next.js๋?
React๋ก ๋ง๋ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(SSR) ํ๋ ์ ์ํฌ์ ๋๋ค.
์ ํํ๋ SSG์ ๊ตฌ๋ถ๋ ๊ฒ์ ๋๋ค.
CSR์ธ Reactํ๊ฒฝ์์ SSR๊ธฐ๋ฅ์ ๊ตฌ์ฌํ ์ ์๊ฒ ํด ์ค๋๋ค.
- SSR์ ํน์์ ๊ตฌํํ ์ ์๊ธฐ ๋๋ฌธ์, ๋ง์ฝ ๋ฆฌ์์ค๊ฐ ํฐ ํ์ด์ง๊ฐ ์๊ฑฐ๋, ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํด ๋๋ ๊ฒ ์ข๋ค๊ณ ํ๋จ๋๋ค๋ฉด, SSR๋ก ํน์ ํ์ด์ง๋ง ๊ตฌํํ ์ ์์ต๋๋ค.
- CSR์ ๋จ์ ์ธ SEO์ ์ทจ์ฝํ ์ ์ ๋ณด์ํ ์ ์์ต๋๋ค. SSR๋ก ๊ตฌํํ๊ฒ ๋๋ฉด์ ๊ฒ์์์ง์ ๋ ธ์ถ์ด ๋ ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค.
- ์ถ๊ฐ๋ก metaํ๊ทธ๋ฅผ ์์ ๋กญ๊ฒ ์ถ๊ฐํ์ฌ SEO๋ฅผ ์ฉ์ดํ ์ ์์ต๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
- Hot reloading
- ๊ฐ๋ฐ ์ค ์ ์ฅ๋๋ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์๋ก๊ณ ์นจ ํด์ค๋๋ค.
- Automatic routing
- pageํด๋์ ์๋ ํ์ผ ์ด๋ฆ์ผ๋ก ๋ผ์ฐํ ์ด ๋ฉ๋๋ค. (13 ๋ฒ์ ๋ถํฐ๋ ํ์ผ ๊ตฌ์กฐ๊ฐ ์กฐ๊ธ ๋ฐ๋ ๊ฑฐ ๊ฐ์ต๋๋ค..)
- Single file components
- JSX, TSX ์ปดํฌ๋ํธ ๋ด๋ถ๋ง ์ค์ฝํ๋ฅผ ๊ฐ์ง๋ CSS๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
- Global style
- ํ๋ก์ ํธ ์ ์ฒด CSSํ์ผ์ธ globals.css ํ์ผ์ด ์์ผ๋ฉฐ, _app.tsx์์ ์ ์ํ์ฌ ์ ์ฒด๋ก ์ ์ฉํ ์ ์์ต๋๋ค.
- SSR
- ๊ณ์ ์๊ธฐํ๋ ์๋ฒ์ฌ์ด๋๋ ๋๋ง์ ๊ตฌํํ ์ ์์ต๋๋ค.
- Code splitting
- dynamic import๋ฅผ ์ด์ฉํ๋ฉด ์์ฝ๊ฒ ์ฝ๋ ์คํ๋ฆฌํ ์ด ๊ฐ๋ฅํฉ๋๋ค
- ๋์ ๋ก๋
- ํด๋ ๊ตฌ์กฐ๋ฅผ pages/test/[id].tsx๋ก ๋ง๋ค๊ฒ ๋๋ฉด ๋์ ์ผ๋ก id๋ณ๋ก ๋ง๋ค ์ ์์ต๋๋ค.
Code splitting
webpack ๊ฐ์ ๋ชจ๋ ๋ฒ๋ค๋ฌ๋ฅผ ์ด์ฉํด์ ํ๋์ ๋ฒ๋คํ์ผ์ ์ฌ๋ฌ ๊ฐ๋ก ๋๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋๋ ๋ฒ๋ค์ ์ด์ ํ์ํ ๋ถ๋ถ๋ง ๋ถ๋ฌ์์ ์๋๊ฐ ๋นจ๋ผ์ง๊ฒ ๋ฉ๋๋ค.
์ด๊ฑฐ ๋ง๊ณ ๋ Next.js ํตํด ํ ์ ์๊ณ , ์ค์ ํด ์ค ์ ์๋ ๊ฒ ๊ต์ฅํ ๋ง์ ๊ฒ์ ๋๋ค.
์ฌ๋งํ๋ฉด ํ๋์ฉ ๋ค ๊ณต๋ถํด ๋ณด๊ณ ์ฌ์ฉํ์ง ์๋๋ผ๋ ์๊ณ ๋ง ์๋ ์ชฝ์ผ๋ก? ์๊ฐํ๊ณ ์์ต๋๋ค.
'Front-End > Next.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Next.js] ํ๋ก์ ํธ ํด๋ ๊ตฌ์กฐ (0) | 2023.08.15 |
---|---|
Next.js] Next.js ์ค์น ๋ฐ ์์, ํ๋ก์ ํธ ์์ฑ (Insallation) (0) | 2023.08.09 |