Next.js μκ°
Next.js μκ°
β’
Next.js λ?
β’
Next.js νΉμ§
β¦
μλ² μ¬μ΄λ λ λλ§ (SSR)
β¦
μ μ μ¬μ΄νΈ μμ± (SSG)
β¦
νμΌ κΈ°λ° λΌμ°ν
β¦
λμ λΌμ°ν
β¦
API λΌμ°νΈ
β¦
μλ μ½λ λΆν
β¦
μ΄λ―Έμ§ μ΅μ ν
β¦
TypeScript μ§μ
β¦
ν« λ¦¬λ‘λ©
β¦
μλ² μ»΄ν¬λνΈμ ν΄λΌμ΄μΈνΈ μ»΄ν¬λνΈ
β¦
λ―Έλ€μ¨μ΄
β¦
ν΄λΌμ°λ ν΅ν© (Vercel)
β¦
λ€κ΅μ΄ μ§μ (i18n)
β¦
App Router
β’
Next.js νμ΅ λ¬Έμ
Next.js λ?
SSR, SSG, μλ μ½λ λΆν κΈ°λ₯ λ±μ μ§μνλ React κΈ°λ° νμ€ν μΉ νλ μμν¬
β’
SSR (Server-Side Rendering)
β’
SSG (Static Site Generation)
β’
μλ μ½λ λΆν (Automatic Code Splitting)
β’
νμΌ κΈ°λ° λΌμ°ν
SSR (Server-Side Rendering)
μλ²μμ HTMLμ μμ±νκ³ ν΄λΌμ΄μΈνΈμ μ λ¬νλ λ λλ§ λ°©μμ
λλ€.
β’
μλ λ°©μ: μ¬μ©μκ° μΉ νμ΄μ§λ₯Ό μμ²νλ©΄, μλ²κ° ν΄λΉ νμ΄μ§λ₯Ό λ λλ§νκ³ μμ±λ HTMLμ ν΄λΌμ΄μΈνΈμ λ°νν©λλ€. ν΄λΌμ΄μΈνΈλ λ°νλ HTMLμ μ¦μ νμν μ μμ΅λλ€.
β’
μ₯μ : μ΄κΈ° νμ΄μ§ λ‘λ© μλκ° λΉ λ₯΄κ³ , κ²μ μμ§ μ΅μ ν(SEO)μ μ 리ν©λλ€. μ¬μ©μκ° μμ²ν λλ§λ€ μλ²μμ νμ΄μ§λ₯Ό λ λλ§νλ―λ‘ μ΅μ λ°μ΄ν°κ° ν¬ν¨λ νμ΄μ§λ₯Ό μ 곡ν©λλ€.
β’
λ¨μ : μλ²μ λΆνκ° κ±Έλ¦΄ μ μμΌλ©°, 맀 μμ²λ§λ€ μλ²μμ λ λλ§μ μννλ―λ‘ μλ΅ μκ°μ΄ μ¦κ°ν μ μμ΅λλ€.
SSG (Static Site Generation)
λΉλ μμ μ HTML νμΌμ μμ±νμ¬ μλ²μ λ°°ν¬νλ λ°©μμ
λλ€.
β’
μ₯μ : μλ² λΆνκ° μ κ³ νμ΄μ§ λ‘λ© μλκ° λΉ λ¦
λλ€. CDNμ ν΅ν΄ μ μΈκ³μ μΌλ‘ λΉ λ₯΄κ² μ 곡ν μ μμ΅λλ€.
β’
λ¨μ : νμ΄μ§λ₯Ό μμ±ν λμ λ°μ΄ν°λ μ μ μ΄λ©°, μ΄ν λ°μ΄ν° λ³κ²½ μ λ€μ λΉλν΄μΌ ν©λλ€.
μλ μ½λ λΆν (Automatic Code Splitting)
μ ν리μΌμ΄μ
μ JavaScript μ½λλ₯Ό μ¬λ¬ κ°μ λ²λ€λ‘ λλμ΄ νμν λΆλΆλ§ λ‘λνλ κΈ°μ
β’
μ₯μ : μ΄κΈ° λ‘λ© μκ°μ΄ λ¨μΆλκ³ μ±λ₯μ΄ ν₯μλ©λλ€. νμ΄μ§μ μ»΄ν¬λνΈ λ¨μλ‘ μ½λκ° λλμ΄μ Έ μμ΄, νμν λλ§ λ‘λλλ―λ‘ μ 체 μ ν리μΌμ΄μ
μ μ½λκ° ν λ²μ λ‘λλμ§ μμ΅λλ€.
β’
λ¨μ : μ½λ λΆν μ λ무 μΈλΆννλ©΄ μΆκ°μ μΈ λ€νΈμν¬ μμ²μ΄ λ°μν μ μμ΅λλ€.
νμΌ κΈ°λ° λΌμ°ν
νμΌ μ΄λ¦κ³Ό λλ ν 리 κ΅¬μ‘°κ° URL κ²½λ‘λ₯Ό κ²°μ νμ¬ λΌμ°ν
μ κ΄λ¦¬νλ κΈ°μ
β’
νμΌ κ΅¬μ‘°
β’
URL κ²½λ‘
νμΌ κ΅¬μ‘°
/pages
/index.js
/about.js
Plain Text
볡μ¬
URL κ²½λ‘
URL κ²½λ‘ | νμΌ κ²½λ‘ | μ€λͺ
|
/ | pages/index.js | ν νμ΄μ§ |
/about | pages/about.js | About νμ΄μ§ |
Next.js νΉμ§
νΉμ§ | μ€λͺ
|
μλ² μ¬μ΄λ λ λλ§ (SSR) | μλ²μμ νμ΄μ§λ₯Ό λ λλ§νμ¬ ν΄λΌμ΄μΈνΈμ HTMLμ μ λ¬ν©λλ€. |
μ μ μ¬μ΄νΈ μμ± (SSG) | λΉλ μμ μ μ μ HTML νμΌμ μμ±νμ¬ νμ΄μ§λ₯Ό μ 곡ν©λλ€. |
νμΌ κΈ°λ° λΌμ°ν
| pages λλ ν 리 λ΄μ νμΌκ³Ό ν΄λ ꡬ쑰λ₯Ό κΈ°λ°μΌλ‘ μλμΌλ‘ λΌμ°νΈλ₯Ό μμ±ν©λλ€. |
λμ λΌμ°ν
| νμΌ μ΄λ¦μ λκ΄νΈ []λ₯Ό μ¬μ©νμ¬ λμ κ²½λ‘λ₯Ό μ μν©λλ€. |
API λΌμ°νΈ | pages/api λλ ν 리 λ΄μ API μλν¬μΈνΈλ₯Ό μ μνμ¬ μλ²λ¦¬μ€ APIλ₯Ό ꡬνν©λλ€. |
μλ μ½λ λΆν | νμ΄μ§ λ¨μλ‘ μ½λκ° λΆν λμ΄ νμν λΆλΆλ§ λ‘λλ©λλ€. |
μ΄λ―Έμ§ μ΅μ ν | next/image μ»΄ν¬λνΈλ₯Ό μ¬μ©νμ¬ μ΄λ―Έμ§μ μ΅μ νμ μ§μ° λ‘λ©μ μ§μν©λλ€. |
TypeScript μ§μ | TypeScriptμ μννκ² ν΅ν©λμ΄ νμ
μμ μ±μ μ 곡ν©λλ€. |
ν« λ¦¬λ‘λ© | μ½λ λ³κ²½ μ νμ΄μ§κ° μλμΌλ‘ μ
λ°μ΄νΈλμ΄ κ°λ° μλκ° λΉ¨λΌμ§λλ€. |
μλ² μ»΄ν¬λνΈμ
ν΄λΌμ΄μΈνΈ μ»΄ν¬λνΈ | μλ²μμλ§ λ λλ§λλ μ»΄ν¬λνΈμ ν΄λΌμ΄μΈνΈμμ λ λλ§λλ μ»΄ν¬λνΈλ₯Ό ꡬλΆν©λλ€. |
λ―Έλ€μ¨μ΄ | μμ²μ κ°λ‘μ±κ³ μ²λ¦¬ν μ μλ λ―Έλ€μ¨μ΄ κΈ°λ₯μ μ 곡ν©λλ€. |
ν΄λΌμ°λ ν΅ν© (Vercel) | Vercelκ³Όμ ν΅ν©μ ν΅ν΄ λΉ λ₯΄κ³ κ°νΈν λ°°ν¬λ₯Ό μ§μν©λλ€. |
λ€κ΅μ΄ μ§μ (i18n) | λ€κ΅μ΄ μ ν리μΌμ΄μ
μ μν κ΅μ ν(i18n) κΈ°λ₯μ μ§μν©λλ€. |
App Router | app λλ ν 리λ₯Ό μ¬μ©νμ¬ λ μ μ°ν λΌμ°ν
κ³Ό λ μ΄μμ κ΄λ¦¬λ₯Ό μ§μν©λλ€. |