Next.js โ

๐ Official Docs
๐ References
์ธํ๋ฐ ๊ฐ์ ใํ ์ ํฌ๊ธฐ๋ก ์๋ผ๋จน๋ Next.jsใ
Next.js ์น์ ์ ๊ฐ์ ๋ด์ฉ์ ์ฐธ๊ณ ํ์ฌ, ๊ฐ์ธ์ ์ผ๋ก ์ดํดํ ๋ด์ฉ์ ์ ๋ฆฌํ๊ณ ๋ณด์ํ ๊ธ์ ๋๋ค.
์ผ๋ถ ์ฝ๋ ์์์ ์ด๋ฏธ์ง๋ ๊ฐ์ ์๋ฃ๋ฅผ ์ฐธ๊ณ ํ์ต๋๋ค.
Next.js๋? โ
Next.js๋ React ์ ์ฉ ์น ๊ฐ๋ฐ ํ๋ ์์ํฌ๋ค.
UI๋ React ์ปดํฌ๋ํธ๋ก ์์ฑํ๊ณ , ๋ผ์ฐํ
ยท๋ฐ์ดํฐ ํจ์นญยท๋ ๋๋งยท์ฑ๋ฅ ์ต์ ํ ๋ฑ
์น ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ฐ๋ณต์ ์ผ๋ก ๋ง์ฃผ์น๋ ๋ฌธ์ ๋ค์ ํ๋ ์์ํฌ ์ฐจ์์์ ํด๊ฒฐํด์ค๋ค.
Next.js๋ ๋ฌด์์ ํด๊ฒฐํ์๊น? โ
Next.js๋ ์ฌ์ ๋ ๋๋ง + Hydration ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ค.

- ์๋ฒ์์ HTML์ ๋ฏธ๋ฆฌ ์์ฑ
- ๋ธ๋ผ์ฐ์ ๋ HTML์ ๋ฐ์๋ง์ ํ๋ฉด์ ํ์
- ์ดํ JavaScript๊ฐ ๋ก๋๋๋ฉด์ Hydration ์ํ
- ์ดํ๋ถํฐ๋ React SPA์ฒ๋ผ ๋์
๋น ๋ฅธ ์ฒซ ํ๋ฉด + ๋น ๋ฅธ ํ์ด์ง ์ด๋ ๋ ์ฅ์ ์ ๋ชจ๋ ๊ฐ์ ธ๊ฐ๋ค.
๐งฉ TTI (Time to Interactive)
์ฌ์ฉ์๊ฐ ์ค์ ๋ก ํ์ด์ง์ ์ํธ์์ฉํ ์ ์๋ ์์ โ ํด๋ฆญยท์ ๋ ฅ์ด ๊ฐ๋ฅํ ์์
๐ง Hydration
์๋ฒ์์ ๋ด๋ ค์จ HTML์ ์ ์ ์ธ ๋งํฌ์
์ด๋ค. ๋ณด์ด๊ธฐ๋ง ํ ๋ฟ, ํด๋ฆญ์ ๋์ง ์๋๋ค.Hydration์ ์ด HTML์ React๊ฐ ์ด๋ฒคํธ์ ์ํ๋ฅผ ์ฐ๊ฒฐํด ์ํธ์์ฉ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๊ณผ์ ์ด๋ค.
- HTML์ ๋น ๋ฅด๊ฒ ๋ณด์ด์ง๋ง, JS ๋ก๋ฉ ์ ๊น์ง๋ ๋ณด๊ธฐ๋ง ๊ฐ๋ฅ
- JS๊ฐ ๋ก๋๋๋ฉด ๊ทธ๋๋ถํฐ ํด๋ฆญ, ์ ๋ ฅ ๋ฑ์ด ์๋
- ์๋ฒ HTML๊ณผ ํด๋ผ์ด์ธํธ์์ ์์ฑ๋๋ ๊ตฌ์กฐ๊ฐ ๋ค๋ฅด๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค
์ด๋ฌํ ๊ตฌ์กฐ๋ ๊ฒฐ๊ตญ React์ Next.js์ ํต์ฌ์ ์ธ ์ฐจ์ด๋ก ์ด์ด์ง๋ค.
React์ Next.js์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ค ํ๋๋
๋ฐ์ดํฐ๋ฅผ ์ธ์ ๊ฐ์ ธ์ค๊ณ , HTML์ ์ธ์ ์์ฑํ๋๋์ ์๋ค.
์ด ์ฐจ์ด๋ ์ด๊ธฐ ๋ ๋๋ง ์ฑ๋ฅ, ์ฌ์ฉ์ ๊ฒฝํ(UX), SEO์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ค.
Next.js๋ Framework โ
Next.js์ React์ ์ฐจ์ด๋ ๊ธฐ๋ฅ ๊ตฌํ์ ์ฃผ๋๊ถ์ ์๋ค.
React: UI ๊ฐ๋ฐ์ ์ํ JavaScript LibraryNext.js: React ์ ์ฉ์ ์น ๊ฐ๋ฐ Framework
Library์ ํน์ง โ
Library๋ ๊ฐ๋ฐ์๊ฐ ์ฃผ๋๊ถ์ ๊ฐ์ง๋ค.
ํ์ํ ๊ธฐ๋ฅ์ ์ง์ ์ ํํ๊ณ , ์ํ๋ ๋ฐฉ์์ผ๋ก ์กฐํฉํด ์ฌ์ฉํ๋ค.
์๋ฅผ ๋ค์ด React์์ ํ์ด์ง ๋ผ์ฐํ ์ด ํ์ํ๋ค๋ฉด
React Router,TanStack Router๋ฑ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๋ฅผ ์ ํํด์ผ ํ๋ค.
- ์์ ๋๊ฐ ๋๋ค.
- ๊ธฐ๋ณธ ๊ธฐ๋ฅ๋ง ์ ๊ณตํ๋ฉฐ, ๋๋จธ์ง๋ ์ง์ ๊ตฌ์ฑํด์ผ ํ๋ค.
Framework์ ํน์ง โ
Framework๋ ํ๋ ์์ํฌ๊ฐ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ์ฃผ๋ํ๋ค.
๊ฐ๋ฐ์๋ ํ๋ ์์ํฌ๊ฐ ์ ๊ณตํ๋ ๊ท์น๊ณผ ๋ฒ์ ์์์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค.
์๋ฅผ ๋ค์ด Next.js์์ ํ์ด์ง ๋ผ์ฐํ ์ ๊ตฌํํ ๋๋
Next.js๊ฐ ์ ๊ณตํ๋Pages Router๋๋App Router๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- ์์ ๋๋ ์๋์ ์ผ๋ก ๋ฎ๋ค.
- ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ค.
App Router์ Pages Router โ
Next.js๋ ๋ ๊ฐ์ง ๋ผ์ฐํ ๋ฐฉ์์ ์ ๊ณตํ๋ค.
Pages Router โ
ํ์ด์ง ๋ผ์ฐํฐ๋ Next.js ์ด์ฐฝ๊ธฐ๋ถํฐ ์ ๊ณต๋์ด ์จ ๊ธฐ์กด ๋ผ์ฐํฐ ๋ฐฉ์์ด๋ค.pages ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ผ ๊ตฌ์กฐ์ ๋ฐ๋ผ ๋ผ์ฐํ
์ด ๊ฒฐ์ ๋๋ค.
- ์ค๋ซ๋์ ์ฌ์ฉ๋์ด ์์ ์ฑ์ด ๋๋ค.
- ๊ธฐ์กด ๋ ๊ฑฐ์ ํ๋ก์ ํธ์์ ์ฌ์ ํ ๋๋ฆฌ ์ฌ์ฉ๋๋ค.
- ๊ตฌ์กฐ๊ฐ ๋จ์ํด Next.js ์ ๋ฌธ์๊ฐ ์ดํดํ๊ธฐ ์ฝ๋ค.
App Router โ
์ฑ ๋ผ์ฐํฐ๋ Next.js 13๊ณผ ํจ๊ป ๊ณต๊ฐ๋ ์๋ก์ด ๋ผ์ฐํ
๋ฐฉ์์ด๋ค.app ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ์๋ฒ ์ค์ฌ ์ํคํ
์ฒ๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๋ค.
- React Server Components
- ๋ฐ์ดํฐ ํจ์นญ ๋ฐ ํ์ด์ง ๋จ์ ์บ์ฑ
- ์คํธ๋ฆฌ๋ฐ(Streaming)
- Server Actions
๐ค ๊ทธ๋ผ ํ์ด์ง ๋ผ์ฐํฐ๋ ์ด์ ์ ๋ฐฐ์๋ ๋ ๊น?
App Router๊ฐ ๋ฑ์ฅํ์ง๋ง, Pages Router ๊ธฐ๋ฐ์ ํ๋ก์ ํธ๋ ์ฌ์ ํ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ค.
๋ ๋ผ์ฐํฐ์ ์ฐจ์ด๋ฅผ ํจ๊ป ์ดํดํด ๋๋ฉด Next.js์ ๋ณํ ํ๋ฆ์ ํ์
ํ๋ ๋ฐ์๋,
๊ธฐ์กด ๋ฐฉ์์ ์ด๋ค ํ๊ณ๋ฅผ ๋ณด์ํ๋์ง ์ดํดํ๋ ๋ฐ์๋ ๋์์ด ๋ ๊ฒ ๊ฐ๋ค!