-
π ν΄λΌμ΄μΈνΈμ¬μ΄λ λ λλ§(CSR) VS μλ²μ¬μ΄λ λ λλ§(SSR) | SPA, μ₯λ¨μ Web Architecture 2020. 11. 23. 18:52
ν΄λΌμ΄μΈνΈμ¬μ΄λ λ λλ§
ν΄λΌμ΄μΈνΈμ¬μ΄λ λ λλ§μ κ°μ₯ λνμ μΈ κ²μΌλ‘ Single Page Application(SPA)κ° μλ€.
π SPAλ?
SPAλ μ ν΅μ μΈ Multi Page Application(MPA)κ³Ό λ€λ₯΄λ€. SPAλ λ¨ νλμ μΉνμ΄μ§(λ¨ νλμ html)μμλ§ λ λλ§μ΄ μ΄λ£¨μ΄μ§λ€.
λ€νΈμν¬ νμ 보면 λ¨ νλμ νμΌλ§ λ΄λ €λ°λ κ²μ λ³Ό μ μλ€. 리μ‘νΈλ₯Ό μ¬μ©νμ¬ νλ‘μ νΈλ₯Ό μ§ννμλλ° λ³΄μ΄λ κ²κ³Ό κ°μ΄ νλμ htmlνμΌλ§ λ°μμ€μ§λ§,
μ μ κ° νμμ μ ννλ©΄ λ λλ§ λλ κ²μ΄ λ¬λΌμ§λ κ²μ λ³Ό μ μλ€. μ΄λ¬ν λ°©μμ ν΄λΌμ΄μΈνΈμ¬μ΄λ λ λλ§μ΄λΌκ³ νλ€.
SPAλ μ²μ νλ©΄μ μΌ°μ λ, λΉμ΄μλ HTML νμΌμ λ°μμ¨λ€. κ·Έλ¦¬κ³ λ‘λ λλ©΄μ λ°μ΄ν°λ₯Ό μλ²μ μμ²νκ³ νλ©΄μ λ λλ§νλ€.
μ§μ ν΄λΌμ΄μΈνΈμμ μΈμ λ°μ΄ν°λ₯Ό λΆλ¬μ¬μ§ μ€μ ν΄μ£Όμ΄μΌ νλλ° reactμ react-router-dom λͺ¨λ μ¬μ©νμ¬ SPAλ₯Ό ꡬνν μ μλ€.
<Switch> <Route exact path="/intro" render={() => { return <Intro /> }} /> </Switch>
μ΄λ κ² react-router-domμμ λΌμ°ν μ ν΄μ£Όμ΄μ /intro, /login ... μΌλ‘ μλ³νλ μ£Όμλ₯Ό λ£μ μ μμλ€. μ£Όμκ° μμ΄μΌ λμ€μ λΆλ§ν¬λ₯Ό ν μλ μκ³ , κ΅¬κΈ κ²μμμ§(SEO)μ ν΅ν΄ μ μ μ΄ λ μ μκΈ° λλ¬Έμ μ£Όμλ₯Ό λ£μ΄μΌ νλ€. μΉ λΈλΌμ°μ μ£Όμμ°½ URLμ λ€λ₯Έ κ²μ΄ λ λλ§ λ λλ§λ€ μ£Όμ, λ λλ§λλ λ°μ΄ν°κ° λ°λκ²λλ€.
π SPAκ° λμ€κ² λ λ°°κ²½
SPAλ μ ν΅μ μΈ μΉ λ°©μμΈ SSRμ λ¬Έμ μ μ ν΄κ²°νκ³ μ λμ¨ λ°©μμ΄λ€. μΉμμ μ 곡νλ μ λ³΄κ° λ§μμ§μ λ°λΌ SSR λ°©μμΌλ‘ ν κ²½μ° λ§μ νκ³μ μ΄ μκ²Όλ€. μλ‘κ³ μΉ¨ ν λλ§λ€ μλ²μ μλ‘ μμ²μ 보λ΄μ htmlνμΌμ λ°μμμΌ νκΈ° λλ¬Έμ νΈλν½, μλ² μμμ΄ λλΉλμλ€. λ°λ©΄, SPAλ 맨 μ²μ νλμ html νμΌλ§ λ°μμ€κ³ λ°μ΄ν° λ³κ²½μ΄ μμ λλ§ μλ²μ μμ²μ νκΈ° λλ¬Έμ νμ€ν νΈλν½κ³Ό μλ² μμμ΄ κ°μνλ€.
π SPAμ μ₯μ
1. μ²μ λ‘λ©μ΄ λ λ νλμ htmlνμΌλ§ λ°μΌλ©΄ λκΈ° λλ¬Έμ λμ μΌλ‘ λΉ λ₯΄κ² λ λλ§ ν μ μλ€.(μ¬μ©μ UXκ° λ°μ΄λ¨)
2. μλ²μ μμ²νλ νμκ° μλ²μ¬μ΄λ λ λλ§κ³Ό λΉκ΅νμ λ ν¨μ¬ μ λ€.(μλ²λΆλ΄μ΄ λν¨ -> λ°μ΄ν° λ³κ²½μ΄ μμ λλ§ μμ²μ νλ€.)
π SPAμ λ¨μ
1. μ²μ λ‘λ©λ λ λͺ¨λ htmlκ³Ό staticνμΌμ΄ λ‘λλ λκΉμ§ κΈ°λ€λ €μΌ νλ€.
2. μλ°μ€ν¬λ¦½νΈ μμ§μ΄ λ΄μ₯λμ΄μλ κ΅¬κΈ κ²μμμ§μ΄ μλλΌλ©΄, ν¬λ‘€λ§μ μ λλ‘ νμ§ λͺ»νλ€. (μ€μ react μμ€λ₯Ό νμΈνλ©΄ λ΄μ©μ΄ λΉμ΄μλ€)
μλ²μ¬μ΄λ λ λλ§
1.html, 2.html, 3.html λ± μ¬λ¬κ°μ νμΌμ λ§λ€μ΄μ κ°κ° λ€λ₯Έ νμ΄μ§λ₯Ό λ λλ§νλ λ°©μμ΄λ€. μΉμλ²μ μμ²μ ν λλ§λ€ Browserμ μλ‘κ³ μΉ¨μ΄ μΌμ΄λκ³ , μλ²μ μλ‘μ΄ νμ΄μ§μ λν μμ²μ νλ€.
SSRμ μ²μλΆν° μλ²μκ² μμ±λ html νμΌμ λ°μμμ νλ©΄μ λ λλ§ λλ€.
π SSRμ μ₯μ
1. μ²μ λ‘λ©μ΄ λ λ, μμ ν html νμΌμ λ°μμ€κΈ° λλ¬Έμ μ¬μ©μκ° λΉ¨λ¦¬ λ λλ§λ νλ©΄μ λ³Ό μ μλ€.
2. κ²μμμ§μ΅μ ν(SEO) κ°λ₯
π SSRμ λ¨μ
1. λ§€λ² νμ΄μ§λ₯Ό μμ²ν λλ§λ€ μλ‘κ³ μΉ¨μ΄ μΌμ΄λμ μ¬μ©μ UXκ° λ¨μ΄μ§λ€.
2. λ§€λ² μλ²μ html νμΌμ μμ²μ νκΈ° λλ¬Έμ νΈλν½, μλ² λΆνκ° μ»€μ§λ€.
ν΄λΌμ΄μΈνΈμ¬μ΄λ λ λλ§, μλ²μ¬μ΄λ λ λλ§μ λν κ°κ°μ μ₯λ¨μ μ΄ μκΈ° λλ¬Έμ μ΄λ€ κ²μ μ¬μ©νλ©΄ μ’μμ§ κ³ λ―Όνκ³ μ¬μ©νλ©΄ μ’μ κ² κ°λ€.
[μ°Έκ³ μλ£] [μ£Όλμ΄νμΆκΈ°] μλ²μ¬μ΄λλ λλ§(SSR) & ν΄λΌμ΄μΈνΈμ¬μ΄λλ λλ§(CSR) -> bit.ly/3pRyLsA
CSR, SSR -> velog.io/@namezin/CSR-SSR
'Web Architecture' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
π μΉ λΈλΌμ°μ 1 | ν¬λ‘μ€λΈλΌμ°μ§ (μΉ νΈνμ±) (0) 2020.11.23 π ν¬μλ νλ‘μ vs 리λ²μ€ νλ‘μ | νλ‘μ κ°λ , ν¬μλμ 리λ²μ€μ μ°¨μ΄μ (0) 2020.11.23