[WEB π] CSR/SSR/SSG, SPA/MPA, AJAX λͺ½λ μ 리
νλ‘ νΈμλ κ°λ°μ μ±μ© μ°λμ¬νμ μ΄λ¬ν λ¬Έμ₯μ λ³Έ μ μ΄ μμ΅λλ€.
- CSR/SSR/SSG/ISRμ λν΄ μ΄ν΄νκ³ , μ€μ νμ΄μ§ κ°λ° μ ν΄λΉ κ°λ μ μ μ©ν΄λ³΄μ λΆ
κ·Έλ κΈ°μ κ΄λ ¨ CS μ§μμ νμ΅νκ³ μ 리ν΄λ΄ μλ€.
π CSR / SSR
π μ΄λμͺ½μμ λ λλ§μ μ€λΉνλμ§μ λ°λΌ λλλ€.
CSR | SSR |
μΉ νμ΄μ§μ λ λλ§μ΄ ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ ) μΈ‘μμ μΌμ΄λλ κ² λμ κ³Όμ 1) μ μ μ μΉλΈλΌμ°μ λ°©λ¬Έ 2) λΈλΌμ°μ μ μλ²λ‘ μ½ν μΈ μμ² 3) μλ²μ λΈλΌμ°μ λ‘ HTML, JS λ§ν¬ μ μ‘ 4) λΈλΌμ°μ λ JS λ€μ΄λ‘λ ν λμ DOM μμ± νΉμ§ 1. μΉ μ΄ν리μΌμ΄μ μ νμν μ μ 리μμ€λ₯Ό μ΄λ°μ λͺ¨λ λ€μ΄λ‘λ -> μ΄κΈ° λ‘λ© μλ λλ¦Ό 2. νμ΄μ§ κ°±μ μ νμν λ°μ΄ν°λ§ μ λ¬ λ°μ ν΄λΌμ΄μΈνΈμμ νμ΄μ§λ₯Ό κ°±μ -> λ‘λ© μ΄ν ꡬλ μλ λΉ λ¦, UX λ§μ‘± 3. μλ²λ‘λΆν° λΉ λΌλ HTMLμ λ°μ -> κ²μ μμ§ μ΅μ ν(SEO)μ λΆλ¦¬ 4. TTV === TTI -> λ‘λ©κ³Ό ν¨κ» μ΄λ²€νΈ λ°μμ΄ κ°λ₯ |
μΉ νμ΄μ§μ λ λλ§μ΄ μλ² μΈ‘μμ μΌμ΄λλ κ² λμ κ³Όμ 1) μ μ μ μΉλΈλΌμ°μ λ°©λ¬Έ 2) λΈλΌμ°μ μ μλ²λ‘ μ½ν μΈ μμ² 3) μλ²μ λΈλΌμ°μ λ‘ λ λλ§μ λ§μΉ HTMLκ³Ό JS Code μ μ‘ 4) λΈλΌμ°μ λ HTMLμ νμνκ³ , HTMLμ JS λ‘μ§ μ°κ²° νΉμ§ 1. JS μ°κ²° μ μ¬μ©μκ° HTML νλ©΄μ λ³Ό μ μμ -> λΉ λ₯Έ μ΄κΈ° λ‘λ© (Time To View) 2. JS λ‘μ§ μ°κ²° μ ν΄λ¦ μ΄λ²€νΈ λ±μ λμμ΄ μλ λΆκ° -> μ΄λ²€νΈ λ°μ μ€λΉ μκ°μ΄ κ±Έλ¦Ό (Time To Interactive) 3. λ λλ§μ λ§μΉ HTMLμ λ°μ -> SEOμ μ 리 4. νμ΄μ§ κ°±μ λλ§λ€ μλ²μμ λλλ§λ μ μ 리μμ€λ₯Ό λ°μμ΄ 5. TTV !== TTI -> λ‘λ©κ³Ό μ΄λ²€νΈ λ°μμ κ°λ₯ μκ°μ΄ λ€λ¦ |
+) SSG
Static Site Generation(static rendering)
μλ²μμ htmlμ 보λ΄μ£Όμ§λ§ μΈμ λ§λ€μ΄μ§λλμ μ°¨μ΄κ° μλ€.
- SSGλ μλ²μ λͺ¨λ λ§λ€μ΄λκ³ μμ² μμ ν΄λΉ νμ΄μ§λ₯Ό μλ΅
- λ°λμ§ μλ μΊμ± ν΄λλ©΄ μ’μ νμ΄μ§μ μ ν©
π SPA / MPA
SPA(Single Page Application) := νλμ νμ΄μ§λ‘ ꡬμ±λ μΉ μ΄ν리μΌμ΄μ
SPA β‘ ν€λ μ 보λ€μ κ³ μ λμ΄ μκ³ νΉμ μμμ λ³νλ§μ λ°μνλ CSR λ λλ§ λ°©μ
MPA β‘ μλ‘μ΄ HTMLμ λ°μμμ νμ΄μ§ μ 체λ₯Ό μλ‘κ² λ λλ§νλ SSR λ λλ§ λ°©μ
μΉ μ΄ν리μΌμ΄μ
κ°λ°μ μν΄ React.js, Angular, Vue.jsμ κ°μ
μλ°μ€ν¬λ¦½νΈ κΈ°λ° νλ μμν¬λ₯Ό μ¬μ©ν΄ SPAλ₯Ό κ°λ°ν¨
βοΈ SPA == CSR λΌλ μ€ν΄
νμ΄μ§κ° λͺκ°λ, λ λλ§μ μ΄λμ νλμ§λ‘ λ€λ₯Έ κ°λ μ λλ€.
βοΈ CSRμ΄ κ°μ₯ μ’μ λ λλ§ λ°©μμΈκ°?
λλΆλΆμ μΉ μ΄ν리μΌμ΄μ μ΄ SPAμ΄λ κ°μ₯ λ§μ΄ μ¬μ©λλ λ λλ§ λ°©μλ CSRμ΄κΈ΄ νμ§λ§
CSRμ κ²μμμ§μ λ ΈμΆλ νμ μκ³ , μ μ μμ μνΈμμ©μ΄ λ§μ νμ΄μ§μ μ ν©
SSRμ μμ² μ μλ²μμ μ¦μ λ§λ€μ΄μ μλ΅νκΈ° λλ¬Έμ λ°μ΄ν°κ° μμ£Ό λ°λκ³ , 미리 λ§λ€μ΄λκΈ° μ΄λ €μ΄ νμ΄μ§μ μ ν©
π AJAX
AJAX := JSμ XMLHttpRequest κ°μ²΄λ₯Ό μ¬μ©ν΄μ ν΄λΌμ΄μΈνΈμ μλ²κ° λΉλκΈ° λ°©μμΌλ‘ ν΅μ νλ κ²
XMLHttpRequest(XHR) := λΈλΌμ°μ μμ μ 곡νλ Web API κ°μ²΄, HTTP μμ² μ μ‘κ³Ό μλ΅ μμ μ μν λ©μλμ νλ‘νΌν° μ 곡
βοΈ κΈ°λ ν¨κ³Ό
- μνλ λΆλΆλ§ λμ μΌλ‘ ν΄λΌμ΄μΈνΈμμ κ°μλΌμΈ μ μμ
- λͺ¨λ°μΌ μ±μ²λΌ λμνκΈ°μ νλ©΄ νμκ° μλ‘κ² ν λ λ°μνλ νλ©΄ κΉλΉ‘μ μμ΄ Seamless UX
- ν΄λΌμ΄μΈνΈμ μλ²μ ν΅μ μ΄ λΉλκΈ° λ°©μμΌλ‘ λμ (μ΄μ μλ ν΄λΌμ΄μΈνΈκ° μλ²μ μλ΅μ κΈ°λ€λ¦¬λ ν΄λΌμ΄μΈνΈ λΈλ‘νΉμ΄ μμμ)
βοΈ Ajax μ΄μ© μΉ λμ μ리
- μ΄λ²€νΈκ° λ°μνλ€.
- νΈλ€λ¬μ μν΄ μλ°μ€ν¬λ¦½νΈλ₯Ό νΈμΆνλ€.
- μλ°μ€ν¬λ¦½νΈλ XMLHttpRequest κ°μ²΄ μμ±νμ¬ μλ²λ‘ μμ²μ 보λΈλ€.
- κ·Έλμ μΉ λΈλΌμ°μ λ μλ΅μ κΈ°λ€λ¦΄ νμ μμ΄ λ€λ₯Έ μμ μ μνν μ μλ€(λΉλκΈ°)
- μλ²λ XmlHttpRequest κ°μ²΄λ₯Ό μ λ¬ λ°μ Ajax μμ² μ²λ¦¬λ₯Ό νλ€.
- μλ΅μ μμ±ν΄ 보λΈλ€. (HTML, XML, JSON)
- λΈλΌμ°μ λ HTML λ° CSS λ°μ΄ν°λ₯Ό λ°μ μΌλΆλΆμ μ λ°μ΄νΈνλ€.