Next.js λ λ°λ‘ μ€μ μ ν΄μ£Όμ§ μκ³ λ SSR, SEOλΆν° TypeScriptκΉμ§ μμ°μ νμν λ§μ κΈ°λ₯λ€μ μ 곡νλ μμ£Ό κ°λ ₯ν React νλ μμν¬ μ λλ€.
2. μ΄λμ λ§λ€μλ
Next.jsλ Vercelμ΄λΌλ Frontend Teamμμ λ§λ€μμ΅λλ€.
3. μ¬μ©ν΄μΌ νλ μ΄μ
3.1 SSR
Next.js λ₯Ό μ¬μ©νλ κ°μ₯ ν° μ΄μ μ
λλ€.
μ΄ν΄νκΈ° μ’κ² λ¨Όμ λ°λ κ°λ
μΈ SPA μ CSR μ λν΄ λ¨Όμ μ 리 νκ² μ΅λλ€.
3.1.1 SPA (Single Page Application)
μ ν΅μ μΈ μΉ νμ΄μ§ λ§λλ λ°©μμ
- client μμ server λ‘ μ΅μ΄μ μμ²μ 보λ΄κ³
- server λ μμ²μ λ°μ client μκ² μλ΅μ λ³΄λΈ ν, clientμμ νλ©΄μ΄ λ³΄μ λλ€.
- μ΄ν client μμ μνΈμμ©μ΄ μμ λ λ§λ€, serverλ‘ μμ²μ 보λ΄κ³
- server λ μ΄μ μλ΅νλ©° νμ΄μ§κ° Reload λ©λλ€.
- νμ§λ§ μμ κ°μ λ°©λ²μΈ κ²½μ° μ¬μ©μκ° μλ‘μ΄ μμ²μ 보λ΄κ³ μλ΅μ λ°μ λ λ§λ€, μ¬μ©μμ νμ΄μ§κ° Reload λκΈ° λλ¬Έμ μ¬μ©μ κ²½νμ΄λ μλ²μ λΆλ΄μ΄κ° λΉμ©μ μΈ μΈ‘λ©΄μμ μ’μ§ μμ΅λλ€.
- μμ κ°μ λ°©λ²μ ν΄κ²° ν μ μλ κ²μ΄ SPA μ λλ€.
- SPA λ νμν μ μ 리μμλ₯Ό μ΅μ΄μ λͺ¨λ λ€μ΄λ‘λ ν©λλ€.
-> μ΄ν λ³κ²½μ΄ μμ λλ§λ€ νμ΄μ§ μ 체λ₯Ό Reload νμ§ μκ³ λ³κ²½λ λΆλΆλ§ κ°±μ ν©λλ€.
3.1.2 CSR (Client Side Rendering)
CSR λμ μμλ
- μλ²μμ λΈλΌμ°μ λ‘ μλ΅μ 보λ λλ€.
- λΈλΌμ°μ μμ JS λ₯Ό λ€μ΄ λ°μ΅λλ€.
- λΈλΌμ°μ κ° React λ₯Ό μ€ν ν©λλ€.
- νμ΄μ§κ° 보μ΄κ³ μνΈμμ©μ΄ κ°λ₯ ν©λλ€.
CSR μ μ₯μ
- μ»΄ν¬λνΈ λ¨μλ‘ UIλ₯Ό ꡬμ±νκΈ° λλ¬Έμ μ¬μ¬μ©μ μ©μ΄ ν©λλ€.
- νμ΄μ§ μ νμ΄ λΆλλ½κ³ λΉ λ¦ λλ€.
- λ³κ²½λ μ¬νλ§ serverλ‘ μ λ¬νκΈ° λλ¬Έμ μλ²μ λΆλ΄μ΄ λνκ³ λΉμ©μ μΈ μΈ‘λ©΄μμ ν¨μ¨μ μ λλ€.
CSR μ λ¨μ
- μ΄κΈ° λ‘λ© λ λͺ¨λ μ μ 리μμ€λ€μ λ€μ΄ λ°μμ μ΄κΈ° νμ΄μ§ λ‘λ©μ΄ λ립λλ€.
- SEOκ° μ’μ§ μμ΅λλ€.
3.1.3 SSR (Server Side Rendering)
SSR μ λμ μμλ
- μλ²λ λ λλ§ν μ€λΉκ° λ HTMLμ μλ΅μ λΈλΌμ°μ μκ² λ³΄λ λλ€.
- λΈλΌμ°μ λ νμ΄μ§λ₯Ό λ λλ§νκ³ μ΄ λ νμ΄μ§λ₯Ό λ³Ό μ μκ³ μ΄ λ, λΈλΌμ°μ κ° JSλ₯Ό λ€μ΄λ‘λ λ°μ΅λλ€.
- λΈλΌμ°μ κ° Reactλ₯Ό μ€νν©λλ€.
- νμ΄μ§λ₯Ό μνΈμμ© ν μ μμ΅λλ€.
SSR μ μ₯μ
- CSRμ λΉν΄ μ΄κΈ° λ λλ§ μλκ° λΉ λ¦ λλ€.
- SEO κ° μ’μ΅λλ€.
SSR μ λ¨μ
- CSRμ λΉν΄ μλ²μ μμ²νλ νμκ° λ§μ μλ²μ λΆλ΄μ΄ κ° μ μμ΅λλ€.
- νμ΄μ§ μ ν μ λ§λ€ μλ‘κ³ μΉ¨μ΄ μΌμ΄λ©λλ€.
3.1.4 CSR κ³Ό SSR μ μ°¨μ΄
1. μ¬μ©μμκ² λ 빨리 보μ¬μ§λ κ² -> SSR
2. view μ μνΈμμ©
CSR : μ΅μ’
μ μΌλ‘ λ‘λ©μ΄ λλ ν κ°λ₯
SSR : Pageκ° λ¨Όμ 보μ¬μ§λ JS μ React λ‘λ©μ΄ λλ ν κ°λ₯
3.2 SEO (Search Engine Optimization)
κ²μμμ§ μ΅μ ν μ
λλ€.
κΈ°μ‘΄ 리μ‘νΈμμ μ¬μ©νλ CSR λ°©μμ SEOκ° μ’μ§ μμ΅λλ€.
λ°λΌμ κ²μ μμ§ μ΅μ νλ₯Ό μν΄μλ SSRμ΄ μ€μν μν μ ν©λλ€.
3.2.1 κ²μμμ§ μ΅μ νλ₯Ό νλ μ΄μ
μΉ μ¬μ΄νΈλ₯Ό λ§λ€κ³ λΈλΌμ°μ μ κ²μμ νμ λ, μ¬μ΄νΈκ° μλ¨μ μμΉν΄μΌ μ μ
μ΄ λ§μμ§ κ² μ
λλ€.
νμ§λ§ CSR λ°©μμ κ²μμμ§μ λ
ΈμΆμ΄ μ λμ§ μμ΅λλ€. ( λ
ΈμΆμ΄ μλλ κ²μ΄ μλλλ€!! )
κ²μμμ§ λ΄λ€μ JavaScriptλ₯Ό ν΄μνκΈ° νλ€κΈ° λλ¬Έμ HTMLμμ ν¬λ‘€λ§νκ² λ©λλ€.
CSR λ°©μμ Client μΈ‘μμ νμ΄μ§λ₯Ό ꡬμ±νκΈ° μ μ HTMLμ μ무κ²λ μμΌλ―λ‘ λ°μ΄ν°λ₯Ό μμ§νμ§ λͺ»ν΄ κ²μμμ§μ λ ΈμΆμ΄ μ΄λ €μ΄ κ² μ λλ€.
3.3 λ§μ§λ§ Next.js μ μλ λ°©μ
- μ¬μ©μκ° μ΄κΈ°μ Serverμ νμ΄μ§ μ μμ μμ²ν κ²½μ° SSR λ°©μ μΌλ‘ λ λλ§ λ HTMLμ 보λ λλ€.
- λΈλΌμ°μ λ JSλ₯Ό λ€μ΄λ°κ³ React λ₯Ό μ€ν ν©λλ€.
- μ¬μ©μκ° νμ΄μ§μ μνΈμμ©μ νμ¬ λ€λ₯Έ νμ΄μ§λ‘ μ΄λν κ²½μ° CSR λ°©μ server κ° μλ λΈλΌμ°μ μμ μ²λ¦¬ ν©λλ€.
μ 리
Next.js λ Vercel μμ λ§λ SSR, SEO λ₯Ό νκΈ° μν React μ νλ μμν¬
- μ΄κΈ°μ server μ νμ΄μ§ μ μμ μμ² ν κ²½μ° SSR λ°©μ μΌλ‘ λ λλ§ λ HTML μ 보λ΄μ€μΌλ‘μ¨ SEO μ΅μ νκ° λμ΄ κ²μ μμ§μ λ ΈμΆμ΄ λ©λλ€.
- νμ΄μ§μ μνΈ μμ©μ ν λλ CSR λ°©μμΌλ‘ μ²λ¦¬ν¨μΌλ‘ SPA μ₯μ μ κ°μ§κ³ μμ΅λλ€.
μ°Έκ³
- https://vercel.com/
- https://nextjs.org/
- https://medium.com/walmartglobaltech/the-benefits-of-server-side-rendering-over-client-side-rendering-5d07ff2cefe8
- https://www.excellentwebworld.com/what-is-a-single-page-application/
- SSR κ°λ μ΄ν΄μ Next.jsλ‘ μ€μ΅κΉμ§ ν΄λ³΄λ SSR νκ²½ ꡬμΆνκΈ°
- NextJS, κ·Έκ² λλ°?
'π 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 |
Reactμ λ¬Έμ μ κ³Ό NextJSμ λμ (0) | 2022.10.26 |