# [[Client-Side Rendering (CSR)|Client-Side Rendering (CSR]] ## πŸ“Œ Brief Summary Client-Side Rendering (CSR)은 λΈŒλΌμš°μ €(ν΄λΌμ΄μ–ΈνŠΈ)κ°€ μ„œλ²„λ‘œλΆ€ν„° μ΅œμ†Œν•œμ˜ HTML λΌˆλŒ€μ™€ [[JavaScript|JavaScript]] λ²ˆλ“€μ„ 전달받은 ν›„, JavaScriptλ₯Ό μ‹€ν–‰ν•˜μ—¬ λ™μ μœΌλ‘œ μ›Ή νŽ˜μ΄μ§€μ˜ μ½˜ν…μΈ λ₯Ό λ Œλ”λ§ν•˜κ³  UIλ₯Ό κ΅¬μΆ•ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€ [1-3]. 이 방식은 주둜 Reactλ‚˜ Vue와 같은 라이브러리λ₯Ό 톡해 단일 νŽ˜μ΄μ§€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜(SPA) ν˜•νƒœλ‘œ κ΅¬ν˜„λ©λ‹ˆλ‹€ [2, 4, 5]. 초기 λ‘œλ”© μ΄ν›„μ—λŠ” 전체 νŽ˜μ΄μ§€ μƒˆλ‘œκ³ μΉ¨ 없이 즉각적인 ν™”λ©΄ μ „ν™˜μ΄ κ°€λŠ₯ν•˜μ—¬ λ§€λ„λŸ½κ³  μ•±κ³Ό 같은 μ‚¬μš©μž κ²½ν—˜μ„ μ œκ³΅ν•˜λŠ” 것이 νŠΉμ§•μž…λ‹ˆλ‹€ [1, 6-8]. ## πŸ“– Core Content * **μž‘λ™ λ©”μ»€λ‹ˆμ¦˜**: CSR ν™˜κ²½μ—μ„œ μ„œλ²„λŠ” μ½˜ν…μΈ κ°€ 거의 μ—†λŠ” 빈 HTML 파일과 JavaScript μ½”λ“œλ₯Ό ν΄λΌμ΄μ–ΈνŠΈλ‘œ μ „μ†‘ν•©λ‹ˆλ‹€ [1-3]. λΈŒλΌμš°μ €λŠ” 이 JavaScriptλ₯Ό λ‹€μš΄λ‘œλ“œν•˜κ³  νŒŒμ‹± 및 μ‹€ν–‰ν•œ 뒀에야 ν•„μš”ν•œ 데이터λ₯Ό κ°€μ Έμ˜€κ³  [[DOM (Document Object Model)|DOM(Document Object Model]]을 μƒμ„±ν•˜μ—¬ μ‹€μ œ 화면에 μ‹œκ°μ  μ½˜ν…μΈ λ₯Ό λ Œλ”λ§ν•©λ‹ˆλ‹€ [1, 2, 9]. * **μ£Όμš” μž₯점**: * **ν’λΆ€ν•œ μƒν˜Έμž‘μš© 및 UX**: 첫 νŽ˜μ΄μ§€ λ‘œλ“œ 이후 후속 μ‘°μž‘ μ‹œ μ„œλ²„μ— 전체 νŽ˜μ΄μ§€λ₯Ό λ‹€μ‹œ μš”μ²­ν•  ν•„μš” 없이 λ™μ μœΌλ‘œ ν•„μš”ν•œ λ°μ΄ν„°λ§Œ μ—…λ°μ΄νŠΈν•˜λ―€λ‘œ, μ „ν™˜μ΄ λ§€λ„λŸ½κ³  λ„€μ΄ν‹°λΈŒ μ•±κ³Ό 같은 μ‚¬μš©μž κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€ [1, 6-8]. * **μ„œλ²„ λΆ€ν•˜ 및 ν˜ΈμŠ€νŒ… λΉ„μš© κ°μ†Œ**: μ„œλ²„λŠ” νŽ˜μ΄μ§€ λ Œλ”λ§ 연산을 μˆ˜ν–‰ν•˜μ§€ μ•Šκ³  정적 파일(HTML, CSS, JS)만 μ œκ³΅ν•˜λ©΄ λ˜λ―€λ‘œ λ¦¬μ†ŒμŠ€ 뢀담이 적으며, Amazon S3λ‚˜ Netlify와 같은 μ €λ ΄ν•œ 정적 ν˜ΈμŠ€νŒ… μ„œλ²„λ₯Ό ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [6, 10]. * **λΉ λ₯Έ 개발 속도**: κ°œλ°œμžκ°€ μ„œλ²„ 츑의 μ œμ•½μ΄λ‚˜ ν˜Έν™˜μ„±μ„ κ±±μ •ν•˜μ§€ μ•Šκ³  `window` 객체와 같은 λΈŒλΌμš°μ € μ „μš© APIλ₯Ό 자유둭게 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [10]. * **μ£Όμš” ν•œκ³„ 및 단점**: * **초기 λ‘œλ”© 속도 μ €ν•˜**: λΈŒλΌμš°μ €κ°€ μœ μ˜λ―Έν•œ μ½˜ν…μΈ λ₯Ό ν‘œμ‹œν•˜κΈ° μœ„ν•΄ 전체 JavaScript λ²ˆλ“€μ„ λ‹€μš΄λ‘œλ“œν•˜κ³  μ‹€ν–‰ν•  λ•ŒκΉŒμ§€ κΈ°λ‹€λ €μ•Ό ν•˜λ―€λ‘œ 초기 λ Œλ”λ§(First Contentful Paint) 속도가 λŠλ¦½λ‹ˆλ‹€ [1, 6, 8, 9]. μ΄λŠ” μ‚¬μš©μžμ˜ κΈ°κΈ° μ„±λŠ₯μ΄λ‚˜ λ„€νŠΈμ›Œν¬ μƒνƒœμ— 크게 μ˜μ‘΄ν•©λ‹ˆλ‹€ [11]. * **검색 μ—”μ§„ μ΅œμ ν™”(SEO) μ œμ•½**: 검색 μ—”μ§„ ν¬λ‘€λŸ¬λ‚˜ μ†Œμ…œ λ―Έλ””μ–΄ 봇이 μ›Ήμ‚¬μ΄νŠΈμ— μ ‘κ·Όν•  λ•Œ μ΄ˆκΈ°μ—λŠ” 빈 νŽ˜μ΄μ§€λ§Œ 보게 λ˜λ―€λ‘œ, JavaScriptλ₯Ό μ œλŒ€λ‘œ νŒŒμ‹±ν•˜μ§€ λͺ»ν•˜λ©΄ μ½˜ν…μΈ  색인화 및 미리보기 생성이 λˆ„λ½λ  수 μžˆμŠ΅λ‹ˆλ‹€ [1, 8, 9, 12, 13]. * **졜적의 μ‚¬μš© 사둀(Use Cases)**: CSR은 SEOκ°€ μƒλŒ€μ μœΌλ‘œ μ€‘μš”ν•˜μ§€ μ•Šκ³ , μ‚¬μš©μž μƒν˜Έμž‘μš©κ³Ό μ‹€μ‹œκ°„ 데이터 μ—…λ°μ΄νŠΈκ°€ ν•„μˆ˜μ μΈ ν™˜κ²½μ— μ΄μƒμ μž…λ‹ˆλ‹€ [6, 14]. 둜그인 μž₯λ²½ 뒀에 μžˆλŠ” λŒ€μ‹œλ³΄λ“œ, [[SaaS|SaaS]] ν”Œλž«νΌ, λ‚΄λΆ€ λΉ„μ¦ˆλ‹ˆμŠ€ 도ꡬ 및 μ†Œμ…œ λ―Έλ””μ–΄ ν”Œλž«νΌ 등이 λŒ€ν‘œμ μΈ 적용 μ‚¬λ‘€μž…λ‹ˆλ‹€ [2, 5, 14, 15]. ## πŸ”— Knowledge Connections - **Related Topics:** `[[Server-Side Rendering (SSR)|Server-Side Rendering (SSR]]`, `Single-Page Applications (SPA)`, `[[Static Site Generation (SSG)|Static Site Generation (SSG]]`, `Document Object Model (DOM)` - **Projects/Contexts:** `SaaS ν”Œλž«νΌ 및 λŒ€μ‹œλ³΄λ“œ 개발`, `React 기반 κ³ λ„μ˜ 동적 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ꡬ좕` - **Contradictions/Notes:** μ†ŒμŠ€ μ „λ°˜μ—μ„œ CSR의 'λ›°μ–΄λ‚œ μƒν˜Έμž‘μš©μ„±'κ³Ό 'SEO 및 초기 λ‘œλ”©μ˜ 취약점'에 λŒ€ν•œ ν‰κ°€λŠ” μΌμΉ˜ν•˜λ©° μƒμΆ©ν•˜λŠ” λ‚΄μš©μ€ μ—†μŠ΅λ‹ˆλ‹€ [1, 6, 8, 9, 12, 13]. λ‹€λ§Œ μ΅œκ·Όμ—λŠ” CSR의 ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ [[Next.js|Next.js]]와 같은 ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ—¬ νŽ˜μ΄μ§€μ˜ λͺ©μ μ— 맞게 SSRμ΄λ‚˜ SSGλ₯Ό ν˜Όν•©(ν•˜μ΄λΈŒλ¦¬λ“œ λ Œλ”λ§)ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 방식이 ꢌμž₯되고 μžˆμŠ΅λ‹ˆλ‹€ [15-17]. --- *Last updated: 2026-04-25*