π Reference
π https://codingapple.com/unit/nextjs-0-ot/
π https://dev-ellachoi.tistory.com/28
π https://www.youtube.com/watch?v=YuqB8D6eCKE
React , Angular , Vue μ κ°μ JS κΈ°λ° νλ μμν¬λ₯Ό μ¬μ©ν΄ SPA λ₯Ό κ°λ°νλ€.
ν΄λΌμ΄μΈνΈ μμ λ λλ§μ΄ μ§νλλ λ°©μμ λ§νλ€.
μ μ¬μ§μ CSR μ λμκ³Όμ μ΄λ©°, μ 리νλ©΄ μλμ κ°λ€.
HTML κ³Ό λ€μ΄λ‘λν μ μλ JavaScript λ§ν¬ λ₯Ό μλ΅(Response)νλ€.HTML μ JSλ₯Ό μ μ©νκΈ°μν΄ μλ΅λ°μ JavaScript λ§ν¬ λ₯Ό ν΅ν΄ μλ²λ‘λΆν° JS νμΌμ λ°μμ¨λ€.HTML μ λ°μμ¨ JS νμΌμ μ μ©μμΌ λμ νμ΄μ§λ‘ λ§λ€μ΄ λΈλΌμ°μ μ μΆλ ₯νλ€.CSR μ€λͺ
μ€ 4λ² νλͺ©μ μ£Όλͺ©νλ©΄ μ’λ€. CSRμ λΈλΌμ°μ κ° JS νμΌμ λ€μ΄λ‘λνκ³ λμ μΌλ‘ DOMμ μμ±νλ μκ°μ κΈ°λ€λ €μΌ νκΈ° λλ¬Έμ μ΄κΈ° λ‘λ© μλκ° λ리λ€.
νμ§λ§, μ΄κΈ° λ‘λ© μ΄νμ λ°μλλ νμ΄μ§ μΌλΆ λ³κ²½ μ¬νλ€μ λν μ²λ¦¬λ λΉ λ₯΄λ€λ νΉμ§μ΄ μλ€. μλ²μμ λ³κ²½νκ³ μ νλ λ°μ΄ν°λ§ μμ²νλ©΄ λκΈ° λλ¬Έμ΄λ€.
λλΆμ΄, μλ²λ JSλ₯Ό μ½μ
νμ§ μλ λΉ λΌλμ λ€λ¦μλ HTMLλ§ μλ΅νλ μν μ μννκΈ°μ μλ² μΈ‘μ λΆνκ° μ λ€. λΏλ§ μλλΌ μλ²κ° μλ, ν΄λΌμ΄μΈνΈμμ μ°μ°κ³Ό λΌμ°ν
λ±μ λͺ¨λ μ§μ μ²λ¦¬νκΈ°μ λ°μμλκ° λΉ λ₯΄λ©° UXλν μ°μνλ€.
λ¨, CSRμ κ²½μ° SEO(κ²μ μμ§ μ΅μ ν) μΈ‘λ©΄μμ λΆλ¦¬νλ€. SEOλ₯Ό μ§ννλ μΉ ν¬λ‘€λ¬ λ΄ μ
μ₯μμλ HTML μ΄ ν
λΉμ΄μλ κ²μ²λΌ 보μ΄κΈ°μ μμΈν λ§ν 컨ν
μΈ κ° μ‘΄μ¬νμ§ μλ κ²μΌλ‘ μΈμνλ€. λ°λΌμ μ΄μ¬ν μλΉμ€λ₯Ό κ°λ°νλλΌλ κ²μ μ¬μ΄νΈμ λ
ΈμΆμ΄ μ λμ§ μλ κ²½μ°κ° λ°μν μ μλ€.
β μ€μ , μμ§ μλ²½ν λ¨κ³κ° μλκΈ°μ κ΅¬κΈ μΈ‘μμλ SSRμ κ³ λ €νλΌλ λ§μ λ§λΆμ΄κ³ μλ€β¦
μλ² μμ λ λλ§μ΄ μ§νλλ λ°©μμ λ§νλ€.
μ μ¬μ§μ SSR μ λμκ³Όμ μ΄λ©°, μ 리νλ©΄ μλμ κ°λ€.
SSR μ€λͺ
μ€ 2λ²μ μ£Όλͺ©νμ. SSR μ μλ²μμ μ΄λ―Έ λͺ¨λ λ°μ΄ν°κ° HTML μ λ΄κΈ΄ μ±λ‘ λΈλΌμ°μ λ‘ μ λ¬λμ΄ SEO(κ²μ μμ§ μ΅μ ν) μ μ 리νλ€.
SEO λ₯Ό μ§ννλ μΉ ν¬λ‘€λ¬ λ΄μ΄ μλ²λ‘λΆν° λμ΄μ¨ μμ±λ HTMLμ μ½μ μ μκΈ° λλ¬Έμ΄λ€. λν, JS μ½λλ₯Ό λ€μ΄λ‘λ λ°κ³ μ€ννκΈ° μ μ μ¬μ©μλ μ΄λ―Έ HTML μ΄ λ λλ§λ νλ©΄μ λ³Ό μ μλ€. λ°λΌμ JS μ½λλ₯Ό λ€μ΄λ°κ³ κΈ°λ€λ €μΌνλ CSR λ³΄λ€ μ΄κΈ° ꡬλ μλκ° λΉ λ₯΄λ€.
μ΄λ, μκΈ°μ κ°μ΄ μ΄λ―Έ HTMLμ΄ λ λλ§λ νλ©΄μ λ³Ό μ μλ€. λΌλ 문ꡬλ₯Ό μ£Όλͺ©νμ. ν΄λΉ μμ μμλ μ¬μ©μκ° λ²νΌμ ν΄λ¦νκ±°λ μ΄λ²€νΈλ₯Ό λ°μμν€λ € ν λ μ무 λ°μμ΄ μμ μ μλ€. μ¬μ©μμ λ°μν μ μλ νμ΄μ§κ° μ¬μ€μ λ΄μ©κ³Ό μ€νμΌλ§ μ
νμ§ κ»λ°κΈ°μ λΆκ³ΌνκΈ° λλ¬Έμ΄λ€. μ€μ λ‘λ μλ²λ‘λΆν° λ°μμ¨ JS κ° μ€νλκ³ νΈλ€λ¬κ° 첨λΆλ JS λ‘μ§μ΄ μ°κ²°λ λκΉμ§ νμ΄μ§λ μ¬μ©μμ μ
λ ₯μ μλ΅ν μ μλ€.
CSRκ³Ό SSRμ μ°¨μ΄λ μ΄λ€
Sideμμ λ λλ§μ΄ μ§νλλκ°μ μλ€.
SSRμTTV(Time to View, νλ©΄μ 보μ΄λ μκ°)μTTI(Time to Interact, λ°μλλ μκ°)κ°μ μκ° κ°κ²©μ΄ μ‘΄μ¬νλ κ²μ΄ λ¨μ μ΄λ€.
CSRμJSκ° λμ μΌλ‘DOMμ μμ±νκΈ° λλ¬ΈμHTMLμJSλ‘μ§μ΄ λͺ¨λ μ°κ²°λ μνμ΄κΈ°μ μ¬μ©μκ° λ³΄λ κ΄μ (TTV)μ μ΄μ©ν μ μλ μμ (TTI)κ° λμΌνλ€.
Static Rendering μ΄λΌκ³ λ λΆλ¦¬λ λ°©μμ μ¬μ©μμκ² λ³΄μ¬μ£ΌκΈ° μν νμ΄μ§λ€μ μλ²μμ λͺ¨λ λ§λ λ€ μμ²μ΄ μμ λ λ§λ€μ΄λ νμ΄μ§λ₯Ό μλ΅νλ λ°©μμ΄λ€. β μ¦, λ°λ μΌμ΄ κ±°μ μμ΄ μΊμ±ν΄ λλ©΄ μ’μ νμ΄μ§μ μ¬μ©νλ©΄ μ ν©νλ€.μΈμ λ§λ€μ΄μ£Όλμ§μ λ°λΌ μ°¨μ΄κ° μ‘΄μ¬νλ€.CSR κ³Ό SSR μ μ₯λ¨μ μ 리μ₯μ
-> νλ©΄ κΉλΉ‘μ μμ
-> μ΄κΈ° λ‘λ© μ΄ν ꡬλ μλκ° λΉ λ¦
-> TTVμ TTI μ¬μ΄ κ°κ·Ή μμ
-> μλ²μ λΆνλ₯Ό λΆμ°ν μ μμ
λ¨μ
-> μ΄κΈ° λ‘λ© μλκ° λλ¦Ό
-> SEOμ λΆλ¦¬
μ₯μ
-> μ΄κΈ° ꡬλ μλκ° λΉ λ¦
-> SEOμ μ 리
λ¨μ
-> νλ©΄ κΉλΉ‘μμ΄ μ‘΄μ¬
-> TTVμ TTI μ¬μ΄ κ°κ·Ή μμ
-> μλ²μ λΆνκ° μ¬ μ μμ
β μ¬μ©μμ μνΈμμ©μ΄ λ§μ μλΉμ€
π‘ λλΆλΆμ΄ κ³ κ°μ κ°μΈμ 보λ€λ‘ μ΄λ£¨μ΄μ§ νμ΄μ§λ€ β κ²μμμ§μ λ
ΈμΆλ νμ X (SEO 무μλ―Έ)
β λꡬμκ²λ νμ κ°μ λ΄μ©μ 보μ¬μ£Όλ νμ΄μ§
βνμ¬ ννμ΄μ§ νΉμ μΌνλͺ° λ± ν보 νΉμ κ²μμμ§μ λ ΈμΆμ΄ λ§μ΄ λμ΄μΌνλ μλΉμ€
β μ
λ°μ΄νΈκ° λΉλ²ν΄ νμ΄μ§ λ΄μ©μ΄ μμ£Ό λ°λλ νμ΄μ§
π‘ κ²μμμ§μ μμ£Ό λ
ΈμΆλμ΄μΌνκΈ°μ SEOμ μ 리
β SSR κ³Ό λμΌνκ² λꡬμκ²λ νμ κ°μ λ΄μ©μ 보μ¬μ£Όλ νμ΄μ§.
β ν보 νΉμ μμ λ
ΈμΆμ΄ νμν νμ΄μ§
β λ¨, π‘μ
λ°μ΄νΈλ₯Ό κ±°μ νμ§ μλ νμ΄μ§
β μ¬μ©μμ λ°λΌ νμ΄μ§ λ΄μ©μ΄ λ³νλ κ²½μ°
β λΉ λ₯Έ λ°μ λ° μλ΅κ³Ό νλ©΄ κΉλΉ‘μ νμμ΄ μμ΄μΌ νλ κ²½μ°
β SEOλ₯Ό ν¬κΈ°ν μ μλ κ²½μ° (= ν보 λ° μμ λ ΈμΆμ νμμ±)