# [[Client-Side Rendering (CSR) vs Server-Side Rendering (SSR)]] ## π Brief Summary Client-Side Rendering (CSR)μ λΈλΌμ°μ κ° μ΅μνμ HTML λΌλμ JavaScript λ²λ€μ λ€μ΄λ‘λν λ€ ν΄λΌμ΄μΈνΈ μΈ‘μμ λμ μΌλ‘ UIλ₯Ό ꡬμ±νλ λ λλ§ λ°©μμ λλ€ [1]. λ°λ©΄ Server-Side Rendering (SSR)μ μ¬μ©μμ μμ² μλ§λ€ μλ²κ° μ 체 HTML νμ΄μ§λ₯Ό λ λλ§νμ¬ λΈλΌμ°μ λ‘ μ¦μ μ μ‘νλ λ°©μμ λλ€ [2]. μ΄ λ κ°μ§ μ κ·Όλ²μ μΉμ¬μ΄νΈμ μ΄κΈ° λ‘λ μλ, κ²μ μμ§ μ΅μ ν(SEO), μνΈμμ©μ± λ° μλ² μν€ν μ²μ μ€λν μν₯μ λ―ΈμΉλ©°, νλ‘μ νΈμ λͺ©μ κ³Ό μꡬμ¬νμ λ°λΌ μ μ ν λ λλ§ μ λ΅μ μ ννλ κ²μ΄ νμμ μ λλ€ [3]. ## π Core Content * **λμ μ리μ μ£Όμ νΉμ§** * **CSR**: μλ²λ λΉ HTML(μ: `
`)μ λ°ννκ³ , μ€μ μ½ν μΈ λ λΈλΌμ°μ κ° JavaScriptλ₯Ό λ€μ΄λ‘λνκ³ μ€νν νμ λ λλ§λ©λλ€ [1, 4]. μ΄ λ°©μμ SPA(Single Page Application)λ λμ보λμ μ ν©νλ©°, νμ΄μ§ μ 체λ₯Ό μλ‘κ³ μΉ¨νμ§ μκ³ λ λΉ λ₯΄κ³ λ§€λλ¬μ΄ νλ©΄ μ νμ μ 곡ν©λλ€ [1, 5]. νμ§λ§ JavaScriptκ° λ‘λλλ λμ μ¬μ©μμκ² λΉ νλ©΄μ΄λ λ‘λ© νλ©΄μ΄ λ ΈμΆλμ΄ μ΄κΈ° μ²΄κ° μλκ° λ릴 μ μμ΅λλ€ [5]. * **SSR**: μμ²μ΄ λ€μ΄μ¬ λλ§λ€ μλ²κ° μ¦μ μ½ν μΈ κ° ν¬ν¨λ μμ±λ HTMLμ μμ±ν΄ λ°νν©λλ€ [2]. μ΄κΈ° λ‘λ μκ°μ΄ λΉ λ₯΄κ³ μ¬μ©μμκ² μ¦κ°μ μΌλ‘ μ μλ―Έν μκ°μ μ½ν μΈ λ₯Ό μ 곡ν μ μμ΄ λ§μΌν νμ΄μ§λ λΈλ‘κ·Έ, μ΄μ»€λ¨Έμ€ μ¬μ΄νΈ λ± μ½ν μΈ μ€μ¬μ μΉμ¬μ΄νΈμ μ΄μμ μ λλ€ [2, 6]. λ€λ§, μλ²μ λΆνκ° μ¦κ°νκ³ μν€ν μ²μ 볡μ‘μ±μ΄ μ»€μ§ μ μμ΅λλ€ [7]. * **κ²μ μμ§ μ΅μ ν (SEO) κ΄μ μ μν₯** * **CSRμ νκ³**: ꡬκΈλ΄ λ±μ κ²μ μμ§μ΄ μ ν΅μ μΈ React μ±μ ν¬λ‘€λ§ν λ μ΄κΈ°μλ ν λΉ HTML κ»λ°κΈ°λ§μ λ³΄κ² λ©λλ€ [4]. JavaScript μ€νμ΄ μ§μ°λκ±°λ μ€ν¨νλ©΄ μ½ν μΈ μΈλ±μ±μ΄ λλ½λ μ μμΌλ©°, λ λλ§μ μν΄ ν¬λ‘€λ§ μμ°μ λλΉνκ² λ©λλ€ [8, 9]. * **SSRμ μ΄μ **: κ²μ λ΄μ΄ μμ±λ HTMLκ³Ό λ©νλ°μ΄ν°, ꡬ쑰νλ λ°μ΄ν°λ₯Ό μ¦μ μμ νλ―λ‘, ν¬λ‘€λ§ μ§μ° μμ΄ μ¦κ°μ μΈ μΈλ±μ±μ΄ κ°λ₯ν©λλ€ [10-12]. λ°λΌμ λμ SEO μ±κ³Όκ° νμμ μΈ νλ‘μ νΈμμλ SSR μ±νμ΄ νμμ μ λλ€ [6]. * **μΉ μ±λ₯ λ° Core Web Vitals μ΅μ ν** * **LCP (Largest Contentful Paint)**: CSR νκ²½μμλ ν° JavaScript λ²λ€μ λ€μ΄λ‘λμ μ€ν, ν΄λΌμ΄μΈνΈ μΈ‘ λ°μ΄ν° ν¨μΉ λ±μΌλ‘ μΈν΄ LCPκ° ν¬κ² μ§μ°λ μ μμ΅λλ€ [13-15]. SSRμ ꡬννλ©΄ λ λλ§ μ§μ°μ μμ LCPλ₯Ό λν κ°μ ν μ μμ΅λλ€(μ¬λ‘μ λ°λ₯΄λ©΄ μ½ 1,000ms κ°μ κ°λ₯) [16-19]. * **μν(Hydration)μ INP**: SSRμ μ¬μ©ν΄ HTMLμ λΉ λ₯΄κ² μ 곡νλλΌλ, ν΄λΌμ΄μΈνΈ μΈ‘ JavaScriptκ° HTMLκ³Ό κ²°ν©νμ¬ μνΈμμ©μ νμ±ννλ 'μν(Hydration)' κ³Όμ μμ λ©μΈ μ€λ λκ° μ°¨λ¨λ μ μμ΅λλ€ [15]. μ΄λ μλ‘μ΄ μ±λ₯ μ§νμΈ INP(Interaction to Next Paint) μ νλ₯Ό μ λ°ν μ μμΌλ―λ‘ μ μ§μ μν(Progressive Hydration) κ°μ μ΅μ νκ° νμν©λλ€ [15, 20]. * **보μ κ³ λ €μ¬ν (Security)** * **CSR 보μ**: νλ‘ νΈμλμ λΉμ¦λμ€ λ‘μ§μ΄ λ ΈμΆλλ―λ‘ ν¬λ‘μ€ μ¬μ΄νΈ μ€ν¬λ¦½ν (XSS) μ·¨μ½μ μ λλΉν΄ μ½ν μΈ μλ κ³Ό κ°λ ₯ν μ½ν μΈ λ³΄μ μ μ± (CSP) μ μ©μ΄ μ€μν©λλ€ [21, 22]. * **SSR 보μ**: μλ²μμ λμ μΌλ‘ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ―λ‘ λ°μ΄ν° μ£Όμ (SQLi λ±)μ΄λ μλ² μΈ‘ μμ² μμ‘°(SSRF), λ―Όκ°ν λ΄λΆ API λ ΈμΆμ μνμ΄ μμ΄ λͺ¨λ μ μΆλ ₯μ λν μ² μ ν κ²μ¦κ³Ό κΆν λΆμ¬κ° νμν©λλ€ [21, 23]. * **λͺ¨λ μΉ μν€ν μ²μ μ§ν (Hybrid Rendering)** * μ΅κ·Όμ μΉ μμ§λμ΄λ§μ SSRκ³Ό CSR, κ·Έλ¦¬κ³ λΉλ νμμ HTMLμ μμ±νλ SSG(Static Site Generation)λ₯Ό κ²°ν©ν νμ΄λΈλ¦¬λ λ λλ§μ μ§ν₯ν©λλ€ [24]. * Next.jsλ Remix κ°μ νλ μμν¬λ₯Ό νμ©νμ¬, SEOκ° λ μ€μν μΈμ¦λ μ¬μ©μ λμ보λμλ CSRμ, μ€μκ° μ λ°μ΄νΈκ° νμν νμ΄μ§μλ SSRμ, μ μ λ§μΌν νμ΄μ§μλ SSGλ₯Ό μ νμ μΌλ‘ μ μ©νλ λ°©μμ΄ κΆμ₯λ©λλ€ [25-27]. ## π Knowledge Connections - **Related Topics:** [[Core Web Vitals]], [[Single Page Application (SPA)]], [[Static Site Generation (SSG)]], [[Search Engine Optimization (SEO)]] - **Projects/Contexts:** [[νμ΄λΈλ¦¬λ μΉ λ λλ§ μν€ν μ² μ€κ³]], [[Next.js λ° Remixλ₯Ό νμ©ν SEO μ΅μ ν νμ΄νλΌμΈ ꡬμΆ]] - **Contradictions/Notes:** CSR λ°©μμ μ΄κΈ° λ λλ§ μλκ° λλ¦¬κ³ SEOμ μΉλͺ μ μΈ μ½μ μ΄ μμ§λ§ [5, 8], JavaScript λ‘λκ° λλ μ΄νμλ νλ©΄ κΉλΉ‘μ μμ΄ λ§€λλ½κ² νμ΄μ§ κ° μ΄λμ΄ κ°λ₯ν΄ 'Time to Interactive(TTI)' μΈ‘λ©΄μμλ λμ νκ°λ₯Ό λ°μ΅λλ€ [28]. λ°λΌμ λͺ¨λ μν©μ SSRμ΄ μ λ΅μΈ κ²μ μλλ©°, νμ΄μ§λ³ λΉμ¦λμ€ λͺ©μ μ λ§κ² λ λλ§ μ λ΅(Hybrid Rendering)μ νΌν©νμ¬ μ¬μ©νλ κ²μ΄ λͺ¨λ μΉ μν€ν μ²μ ν΅μ¬μ λλ€ [24, 29]. --- *Last updated: 2026-04-26*