React์ ๋ฒ๊ฑฐ๋ก์ด ๋ถ๋ถ
๋ฆฌ์กํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒ์๋ถํฐ ๋น๋ํ๋ ค๋ฉด ์ ๊ฒฝ ์จ์ผํ๋ ์ธ๋ถ์ฌํญ์ด ๋ง์ต๋๋ค.
- Webpack์ผ๋ก ๋ฒ๋ค๋ง & Babel ์ปดํ์ผ๋ฌ๋ก JSX → JS ๋ก ๋ณํ
- ์ต์ ํ (Code Splitting ๋ฑ)๋ฅผ ํด์ผํจ
- Static Pre-Rendering (์ฑ๋ฅ๊ณผ SEO๋ฅผ ์ํด) / SSR ๋๋ CSR ๋ฅผ ํด์ผํจ
- ๋ฆฌ์กํธ ์ฑ๊ณผ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์๋ฒ ์ธก ์ฝ๋ ์์ฑ
NextJS: React ํ๋ ์์ํฌ
NextJS๋ React ์ ๋ฒ๊ฑฐ๋ก์ด ์ ์ ๊ฐํธํ๊ฒ ํด๊ฒฐ ํ์ต๋๋ค.
- ์ง๊ด์ ์ธ ํ์ด์ง ๊ธฐ๋ฐ ๋ผ์ฐํ (Dynamic routes ๋ ์ง์ํจ)
- Pre-rendering, static generation (SSG), server-side rendering (SSR) ์ด ํ์ด์ง ๋จ์๋ก ์ ๊ณต๋จ
- ์๋ Code Splitting
- prefetching์ ํตํ ์ต์ ํ๋ CSR
- Fast Refresh
- ์๋ฒ๋ฆฌ์ค ํจ์๋ก API ์๋ํฌ์ธํธ๋ฅผ ๋น๋ํ๊ธฐ ์ํ API routes
- ํ์ฅ์ฑ
Code Splitting ( ์ฝ๋ ๋ถํ )
์ฝ๋ ๋ถํ ์ ์ฑ๊ธ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA) ์ ์ฑ๋ฅ ์ ํฅ์ ์ํค๋ ๋ฐฉ๋ฒ
Next.js ์ค์น
- ์ค์น
npx create-next-app@latest ( ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ ์ฌ์ฉ )
# or
yarn create next-app
- ๋ง์ฝ ํ์ ์คํฌ๋ฆฝํธ์ ๊ฐ์ด ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด
npx create-next-app --typescript
- ์ค์น ์๋ฃ๋๋ฉด ์๋ ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด์ ์คํ
npm run dev
# or
yarn dev
ํด๋ ๊ตฌ์กฐ
Next.js ๋ ํ๋ ์์ํฌ
React ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฌ์ฉ์๊ฐ ์ํ ๋ ์ธ์ ๋ ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ๋ถ๋ฅผ ์ ์์ต๋๋ค.
ํ์ง๋ง Next ๋ ํ๋ ์์ํฌ๋ก ๊ทธ์ ํด๋นํ๋ ํ์์์ ์์
์ ํด์ผ ํฉ๋๋ค.
Pages ํด๋์์ ์ผ์ด๋๋ ์ผ
pages ํด๋ ์์ ํ์ผ์ ๋ง๋ค๋ฉด
- ์ด๋ค ์ค์ ์ด๋, router ์ค์น๋ฅผ ์ํด๋
- ๋ณ ๋ค๋ฅธ ์ค์น๋ ์ค๋น๋ฅผ ํ์ง ์์๋ ์๋์ ์ผ๋ก ์๋ฒ์
home
์ผ๋ก ๊ฐ๋ณด๋ฉด
- ๋ณผ ์ ์์ต๋๋ค.
์ ๋ฆฌ
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ : ๊ฐ๋ฐ์๊ฐ ์ด๋ค ํ๋ก๊ทธ๋จ์ ๊ฐ์ ธ๋ค ์ฐ๋ ๊ฒ
- ์ฌ์ฉ์๊ฐ ํ์ผ ์ด๋ฆ์ด๋ ๊ตฌ์กฐ ๋ฑ์ ์ ํ๊ณ , ๋ชจ๋ ๊ฒฐ์ ์ ๋ด๋ฆผ
- ํ๋ ์์ํฌ : ๊ฐ๋ฐ์์ ์ฝ๋๋ฅผ ํ๋ก๊ทธ๋จ์ด ๋ถ๋ฌ์ค๋ ๊ฒ
- ํ์ผ ์ด๋ฆ์ด๋ ๊ตฌ์กฐ ๋ฑ์ ์ ํด์ง ๊ท์น์ ๋ฐ๋ผ ๋ง๋ค๊ณ ๋ฐ๋ฆ
๋ ์ฌ์ด์ ์ฃผ์ ์ฐจ์ด์ ์ 'Inversion of Control' ( ํต์ ์ ์ญ์ ) ์ ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์ฌ์ฉ์๊ฐ ์ ์ด ํ ์ ์์ง๋ง, ํ๋ ์์ํฌ์์๋ ์ ์ด๊ฐ ์ญ์ ๋์ด ํ๋ ์์ํฌ๊ฐ ์ฌ์ฉ์๋ฅผ ํธ์ถ ํฉ๋๋ค.
์ฐธ๊ณ
'๐ Front-End > Next.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Next.js - Link (0) | 2022.10.26 |
---|---|
Next.js - Routing (0) | 2022.10.26 |
Next.js - Pre Rendering (0) | 2022.10.26 |
Next.js - Data Fetching (0) | 2022.10.26 |
Next.js ์ ์ (0) | 2022.10.26 |