λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT

ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§(Client-Side Rendering)의 이해와 ν™œμš©

by πŸ’²πŸŽ΅βœ–οΈβœ”οΈβ˜Ό 2024. 2. 23.
728x90

ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§(Client-Side Rendering)의 이해와 ν™œμš©

1. ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§ κ°œμš”

1.1. ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ΄λž€?

ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ μ‚¬μš©μžμ˜ λΈŒλΌμš°μ €μ—μ„œ λ™μž‘ν•˜λŠ” λ Œλ”λ§ λ°©μ‹μž…λ‹ˆλ‹€. μ΄λŠ” μ„œλ²„μ—μ„œ 받은 데이터λ₯Ό ν΄λΌμ΄μ–ΈνŠΈ μΈ‘μ—μ„œ λ™μ μœΌλ‘œ μ²˜λ¦¬ν•˜κ³  λ Œλ”λ§ν•˜λŠ” 방식을 λ§ν•©λ‹ˆλ‹€.

1.2. ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ˜ 유래

κΈ°μ‘΄μ—λŠ” μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§(SSR)이 μ£Όλ₯˜μ˜€μœΌλ‚˜, μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ³΅μž‘μ„±κ³Ό μ‚¬μš©μž κ²½ν—˜ ν–₯μƒμ˜ ν•„μš”λ‘œ ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ΄ λ“±μž₯ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

2. ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ˜ ν™œμš©

2.1. ν™œμš© 도메인

  • μ‹±κΈ€ νŽ˜μ΄μ§€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜(SPA): ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ€ SPAμ—μ„œ 주둜 ν™œμš©λ˜λ©°, νŽ˜μ΄μ§€ 이동 μ‹œμ— μƒˆλ‘œκ³ μΉ¨ 없이 λ™μ μœΌλ‘œ μ½˜ν…μΈ λ₯Ό κ°±μ‹ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • μΈν„°λž™ν‹°λΈŒν•œ UI: ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ€ μ‚¬μš©μžμ™€μ˜ μƒν˜Έμž‘μš©μ΄ λ§Žμ€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ λΆ€λ“œλŸ¬μš΄ ν™”λ©΄ μ „ν™˜μ΄ κ°€λŠ₯ν•˜λ©°, λΉ λ₯Έ 응닡 속도λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

2.2. λŒ€μ‘°λ˜λŠ” 기술: μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§ (SSR)

  • SSR의 νŠΉμ§•: μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§μ€ μ„œλ²„μ—μ„œ 초기 HTML을 κ΅¬μ„±ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈμ— μ „μ†‘ν•˜λ―€λ‘œ 초기 λ‘œλ”© 속도가 λΉ λ₯΄μ§€λ§Œ, μ‚¬μš©μž κ²½ν—˜κ³Ό 속도 λ©΄μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§κ³Ό 차이가 μžˆμŠ΅λ‹ˆλ‹€.

3. ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§κ³Ό SSR의 μž₯단점

3.1. ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ˜ μž₯점

  • μ‚¬μš©μž κ²½ν—˜ ν–₯상: λΉ λ₯Έ νŽ˜μ΄μ§€ μ „ν™˜κ³Ό λΆ€λ“œλŸ¬μš΄ ν™”λ©΄ κ°±μ‹ μœΌλ‘œ μ‚¬μš©μž κ²½ν—˜μ„ ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€.

  • 캐싱 및 비동기 λ‘œλ”©: ν•„μš”ν•œ μžμ›λ§Œμ„ λ™μ μœΌλ‘œ 뢈러였고 관리할 수 μžˆμ–΄ 효율적인 캐싱 및 비동기 λ‘œλ”©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

3.2. ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ˜ 단점

  • 초기 λ‘œλ”© 속도: 초기 νŽ˜μ΄μ§€ λ‘œλ”© 속도가 느릴 수 있고, 검색 엔진 μ΅œμ ν™”κ°€ μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§λ³΄λ‹€ μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€.

  • μžλ°”μŠ€ν¬λ¦½νŠΈ μ˜μ‘΄μ„±: ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ€ μžλ°”μŠ€ν¬λ¦½νŠΈμ— μ˜μ‘΄ν•˜λ―€λ‘œ, μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ λΉ„ν™œμ„±ν™”λœ ν™˜κ²½μ—μ„œλŠ” κΈ°λŠ₯이 정상 λ™μž‘ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

4. ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ˜ ꢌμž₯ μ‹œλ‚˜λ¦¬μ˜€

ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ€ λ‹€μŒκ³Ό 같은 μƒν™©μ—μ„œ ꢌμž₯λ©λ‹ˆλ‹€.

  • κ³ μ„±λŠ₯ μΈν„°λž™ν‹°λΈŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜: μ‚¬μš©μžμ™€μ˜ μƒν˜Έμž‘μš©μ΄ λ§Žμ€ κ²½μš°μ— μ ν•©ν•©λ‹ˆλ‹€.

  • SEOκ°€ μ€‘μš”ν•˜μ§€ μ•Šμ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜: 검색 엔진 μ΅œμ ν™”κ°€ 크게 μ€‘μš”ν•˜μ§€ μ•Šμ€ κ²½μš°μ— ν™œμš©λ©λ‹ˆλ‹€.

  • SPA κ΅¬ν˜„μ΄ ν•„μš”ν•œ 경우: SPAλ₯Ό κ΅¬ν˜„ν•˜κ³ μž ν•  λ•Œ ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

5. 마무리

ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§μ€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯ 및 μ‚¬μš©μž κ²½ν—˜μ„ ν–₯μƒμ‹œν‚€λŠ” 데 κΈ°μ—¬ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 상황에 따라 μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§κ³Όμ˜ μ‘°ν™”λ₯Ό κ³ λ €ν•˜μ—¬ 졜적의 μ†”λ£¨μ…˜μ„ μ„ νƒν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. μ‚¬μš© λͺ©μ μ— 맞게 적절히 μ„ νƒν•˜μ—¬ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

λŒ“κΈ€