Next.js 13 ๋ฒ์ ์์ ์ถ๊ฐ๋ 4๊ฐ์ง ๊ธฐ๋ฅ
Next.js 13 ๋ฒ์ ์์๋ App Directory๊ฐ ์ถ๊ฐ๋์๋ค. ์ด์ ๋ฒ์ ์์ pages ํด๋์ ๋์๋๋ ๊ฒ์ผ๋ก, ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ง์ํ๋ค.
- Layouts: state๋ฅผ ์ ์งํ๊ณ ๋น์ฉ์ด ๋ง์ด ๋๋ ๋ฆฌ๋ ๋๋ง์ ํผํ๋ฉด์ ๋ผ์ฐํธ ์ฌ์ด์ UI๋ฅผ ์ฝ๊ฒ ๊ณต์ ํ ์ ์์.
- Server Components: ์๋ฒ์์ ๋ ๋๋ง๋๋ ์ปดํฌ๋ํธ๋ฅผ ๋ช ์์ ์ผ๋ก ๊ตฌํํ ์ ์์.
- Streaming: ์ ์ ๋ ๋ก๋ฉ ์ํ๋ฅผ ์ฆ์ ํ์ธํ ์ ์์ผ๋ฉฐ, UI๊ฐ ๋จ๊ณ์ ์ผ๋ก ๋ ๋๋ง๋จ.
์ํ๋ค๋ฉด App Directory ๋ด์ ์ปดํฌ๋ํธ ํ์ผ, ํ
์คํธ ํ์ผ, ์คํ์ผ ํ์ผ ๋ฑ ๋ผ์ฐํธ๊ฐ ์๋ ํ์ผ์ด ์กด์ฌํด๋ ๋๋ค.
์ด์ ๋ฒ์ ์์ pages ํด๋ ์์๋ ๋ฌด์กฐ๊ฑด NextPage Dynamic Routes๋ง ์กด์ฌํด์ผ ํ๋ ๊ฒ๊ณผ ๋น๊ต๋๋ค.
- Support for Data Fetching: ๋น๋๊ธฐ ์๋ฒ ์ปดํฌ๋ํธ๋ฅผ ์ง์ํ๋ฉฐ, ํ์ฅ๋ fetch API๋ก ์ปดํฌ๋ํธ ๋ ๋ฒจ์์ ๋ฐ์ดํฐ ํจ์นญ์ด ๊ฐ๋ฅํจ.
Next.js 13 ๋ฒ์ ์์๋ ๋์ฑ ์ ์ฐํ๊ณ ํธ๋ฆฌํ ๋ฐ์ดํฐ ํจ์นญ ๋ํ ์ง์ํ๋ค.
Layouts
Layouts์ ์ํ๋ฅผ ์ ์งํ๋ฉด์ ๋ผ์ฐํธ ๊ฐ์ UI๋ฅผ ๊ณต์ ํ ์ ์๋ ๊ธฐ๋ฅ์ด๋ค.
Layout์ ๋ค๋ฅธ Layout์ผ๋ก ๊ฐ์ ์ ์๋ค. ์ฆ, Layout ๊ฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์๋ค.
์ฌ๋ฌ ํ์ด์ง์ ๊ฑธ์ณ ๊ณต์ ๋๋ UI๋ฅผ ๋ ์ด์์์ผ๋ก ๊ตฌํํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ ์ป์ ์ ์๋ค.
- ์ํ๊ฐ ์ ์ง๋๋ฏ๋ก ๋น์ฉ์ด ๋ง์ด ๋๋ ๋ฆฌ๋ ๋๋ง์ ํผํ ์ ์๋ค.
- ์ผ๊ด๋ UI๋ฅผ ์ ์งํ ์ ์๋ค.
- ์ฝ๋๋ฅผ ๋ ๊ตฌ์กฐ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
Layouts์ผ๋ก Header, Footer, Nav ๋ฑ์ ๊ตฌํํ๋ค๋ฉด ์ ๊ฐ์ ์ด์ ์ ์ ํ์ฉํ ์ ์์ ๊ฒ์ด๋ค.
Server Components์ Client Components
Next.js 13 ๋ฒ์ ์์ ๋์ ๋ ๊ฐ์ฅ ์ค์ํ ๊ฐ๋ ์ด์ ๊ฐ์ฅ ํฐ ๋ณํ์ด๋ค.
- ์๋ฒ ์ปดํฌ๋ํธ: ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ๋ฏธ๋ฆฌ ๋ ๋๋งํ ํ ํด๋ผ์ด์ธํธ ์ฌ์ด๋๋ก ์ ๋ฌํด์ค๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํด๋ผ์ด์ธํธ ๋จ์์ ์ด๊ธฐ ๋ก๋ฉ ์๊ฐ์ ์ค์ด๋ค๊ณ , ๋ฒ๋ค ์ฌ์ด์ฆ๋ ๊ฐ์ํ๊ฒ ๋๋ค. ๐ ์ฃผ๋ก ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ฌ์ฉ
- ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ: ์๋ฒ๋ก๋ถํฐ ๋น ์ํ๋ง ์ ๋ฌ๋ฐ๋๋ค. ์ด ๋๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ api๋ฅผ ํธ์ถํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํจ์นญํ๊ณ ์ด๋ฅผ ๋ ๋๋งํ๋ค. ๐ ์ฃผ๋ก ์ ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ฌ์ฉ
Next.js๋ ์ด ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ช ์์ ์ผ๋ก ๋ถ๋ฆฌํ๊ณ ์กฐํฉํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค. ์ดํ๋ฆฌ์ผ์ด์ ์ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ๋์ ์ธ ๋ฐ์ดํฐ์ ์ ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ ๋์๋ค.
Streaming
๊ธฐ์กด์๋ ํ์ด์ง์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ค๋น๋๊ธฐ ์ ๊น์ง ๋ ๋๋ง์ด ๋์ง ์๋ ๋ฐฉ์์ด์๋ค. ํ์ง๋ง Next.js 13 ๋ฒ์ ์์๋ UI ๋จ์๊ฐ ์ค๋น๋๋ ๋๋ก ๋ ๋๋ง๋๋ค. (Next.js๊ฐ ์์์ ํด์ค๋ค!)
Streaming ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ค.
- ์ด๊ธฐ ํ์ด์ง์ ๋ก๋ฉ ์ํ๊ฐ ์ฆ์ ํ์๋๋ค
- ์๋ฒ์์ ๋ ๋๋ง๋ UI๊ฐ ์คํธ๋ฆฌ๋ฐ ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๋ ๋ ๋น ๋ฅด๊ฒ ์ด๊ธฐ ์ปจํ ์ธ ๋ฅผ ํ์ธํ ์ ์๋ค.
- ๋จ๊ณ์ ์ผ๋ก ๋ ๋๋ง๋๋ UI๋ ํ์ด์ง์ ๋ก๋ฉ ์ํ๋ฅผ ์ ์ ์๊ฒ ๋ช ํํ ๋ณด์ฌ์ค ์ ์๋ค.
Support for Data Fetching
13 ๋ฒ์ ์์ ์ง์ํ๋ fetch API๋,
- ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค
- ์ปดํฌ๋ํธ ์์ค์ ๋ฐ์ดํฐ ํจ์นญ์ ์ง์ํ๋ค
- ์๋ฒ ์ปดํฌ๋ํธ์์๋ ๋น๋๊ธฐ ๋ฐ์ดํฐ ํจ์นญ์ด ๊ฐ๋ฅํ๋ค.
์ด๋ฅผ ํตํด ์ปดํฌ๋ํธ ๊ฐ์ ๋ฐ์ดํฐ ์์กด์ฑ์ ๋์ฑ ์ธ๋ฐํ๊ฒ ๊ด๋ฆฌํ๊ณ ํ์ํ ๋ฐ์ดํฐ๋ง ํจ์นญํ๋ฏ๋ก์จ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์๋ค.
๋ง๋ฌด๋ฆฌ
Next.js 13 ๋ฒ์ ์์ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ ๋ ์ ์, ํ ํ์ด์ง ๋ด์์ SSR์ ํ ์ง, CSR์ ํ ์ง๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ปดํฌ๋ํธ ๋จ์๋ก ๊ฒฐ์ ํ ์ ์๋ค๋ ์ ์ด๋ค.
๋ํ, Streaming ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ๊ฒฝํ์ ํ ๋จ๊ณ ๋์ฝํด์ค ๊ฒ์ผ๋ก ๊ธฐ๋ํ๋ค. Streaming ๊ธฐ๋ฅ์ด ํจ๊ณผ์ ์ผ๋ก ๋์ํ๊ธฐ ์ํด์๋ Server Components๋ฅผ ์ ์ ํ๊ฒ ํ์ฉํด์ผ ํ ๊ฒ์ผ๋ก ์ถ์ธก๋๋ค.
์์ ์ธ๊ธํ ๋ค ๊ฐ์ง ๊ธฐ๋ฅ ์ธ์๋ ์ฌ๋ฌ ์ฑ๋ฅ ๊ฐ์ ์ด ์ด๋ฃจ์ด์ก๋ค. next/image์ ์ฑ๋ฅ ํฅ์, ํฐํธ ์ต์ ํ, ์๋ ๋ฆฌ์์ค ํ๋ฆฌํจ์น, Rust ๊ธฐ๋ฐ ๋ฒ๋ค๋ฌ์ธ Turbopack ์ ๋ํด ๋ ์์๋ณด๊ณ ์ถ๋ค.