๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
WEB

CSR vs SSR

by mingzoo 2022. 1. 2.

CSR ๊ณผ SSR ์˜ ์ฐจ์ด๋ฅผ ํ•™์Šตํ•  ๋•Œ๋Š” ํ•„์ˆ˜์ ์œผ๋กœ SPA์™€ MPA์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ๋จผ์ € ๋‚˜์™€์•ผํ•œ๋‹ค.

ํ•ด๋‹น ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด๋ณด๋ฉด ์ข‹์„๊ฒƒ๊ฐ™๋‹ค.

 

์ด์ œ ๋ณธ๊ฒฉ์ ์œผ๋กœ CSR๊ณผ SSR์— ๋Œ€ํ•œ ์–˜๊ธฐ๋กœ ๋„˜์–ด๊ฐ€๋ณด์ž.

์ฐพ์•„๋ณด๋ฉด CSR์€ SPA์™€ ์—ฐ๊ฒฐ์ง€์–ด์„œ ๋งŽ์ด ์„ค๋ช…์ด ๋˜์–ด์žˆ๊ณ , SSR์€ MPA์™€ ์—ฎ์—ฌ์„œ ๋งŽ์ด ์„ค๋ช…์ด ๋˜์–ด์žˆ๋‹ค.

์š”๋ ‡๊ฒŒ

์˜ˆ์ „์—๋Š” ์ด๊ฒƒ๋งŒ ๋ณด๊ณ  ๊ทธ๋Ÿผ ์„œ๋กœ์„œ๋กœ ๊ฐ™์€ ๊ฐœ๋…์ธ๊ฐ€?๋ผ๋Š” ์ƒ๊ฐ์„ ํ–ˆ์—ˆ๋Š”๋ฐ ์•„๋‹ˆ๋‹ค.

๋ช…์‹ฌํ•  ๊ฒƒ์€ CSR์ด ์ „๋ถ€ SPA๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ๋Š” ์ !

๊ทธ๋ ‡๋‹ค๋ฉด csr, ssr์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž!

 

CSR(Client Side Rendering)

ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง. ๋ง ๊ทธ๋Œ€๋กœ๋‹ค

ํด๋ผ์ด์–ธํŠธ ์ชฝ์—์„œ ๋ Œ๋”๋ง์ด ์ผ์–ด๋‚œ๋‹ค๋Š” ์–˜๊ธฐ๋‹ค.

์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  -> ์‘๋‹ต์„ ๋ฐ›๊ณ  -> ๊ทธ๋ฆฌ๊ณ  ์ด ๊ณผ์ • ๋ฐ˜๋ณต

๋น„์œ  : ์„œ๋ฒ„์—์„œ ๋ณด๋‚ด์˜จ ์š”๋ฆฌ ์žฌ๋ฃŒ๋ฅผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง์ ‘ ์š”๋ฆฌํ•ด์„œ ์‚ฌ์šฉ์ž๋ผ๋Š” ์†๋‹˜ํ•œํ…Œ ๋Œ€์ ‘ํ•˜๋Š” ๊ฒƒ

์š”๋ฆฌ ์žฌ๋ฃŒ = ๋ฐ์ดํ„ฐ

์ง์ ‘ ์š”๋ฆฌ = ๋ Œ๋”๋ง

์†๋‹˜ = ์‚ฌ์šฉ์ž

์„œ๋ฒ„๋Š” ์žฌ๋ฃŒ๋งŒ ๋ธŒ๋ผ์šฐ์ €ํ•œํ…Œ ๋˜์ ธ์ฃผ๋Š” ๊ฒƒ์ด๊ธฐ์— ํด๋ผ์ด์–ธํŠธ ์ž…์žฅ์—์„œ SSR๋ณด๋‹ค ์„œ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ›๋Š” ์‹œ๊ฐ„์ด ์งง๊ณ , ์š”๋ฆฌ์žฌ๋ฃŒ๋ฅผ ์ง์ ‘ ์š”๋ฆฌ(๋ Œ๋”๋ง)ํ•ด์•ผํ•˜๊ณ , ๋ง›๋„ ์žˆ์–ด์•ผํ•˜๋‹ˆ๊นŒ(๊ธฐ๋Šฅ๋„ ๋“ค์–ด๊ฐ€์•ผํ•˜๋‹ˆ๊นŒ) ์‚ฌ์šฉ์ž์—๊ฒŒ ์™„์ „ํ•˜๊ฒŒ ๋Œ€์ ‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆด ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

 

SSR(Server Side Rendering)

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง

์ฃผ๋กœ MPA๊ฐ€ SSR๋ฐฉ์‹์œผ๋กœ ๋ Œ๋”๋งํ•œ๋‹ค.

๋น„์œ  : ์„œ๋ฒ„์—์„œ ์ด๋ฏธ ์š”๋ฆฌ์žฌ๋ฃŒ๋ฅผ ์†์งˆํ•˜๊ณ  ์กฐ๋ฆฌ๊นŒ์ง€ ํ•ด์„œ ์™„์„ฑ๋œ ์š”๋ฆฌ๋ฅผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฐ›์•„์„œ ์†๋‹˜ํ•œํ…Œ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ

์„œ๋ฒ„์—์„œ ์š”๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ธฐ์— ๋ธŒ๋ผ์šฐ์ €๋Š” ์ฒ˜์Œ์— ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€๋งŒ, ๋ฐ›์œผ๋ฉด ๋ฐ”๋กœ ์ œ๊ณตํ•ด์ค„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— CSR๋ณด๋‹ค๋Š” UI๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์‹œ๊ฐ„์ด ๋น ๋ฅผ ๊ฒƒ์ด๋‹ค.

 

CSR๊ณผ SSR์˜ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋‘ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์•„๋Š” ๊ฒŒ ํŽธ๋ฆฌํ•˜๋‹ค.

TTV(Time To View) : ์ฒ˜์Œ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŽ˜์ด์ง€ UI ์š”์†Œ๊ฐ€ ๋ณด์ด๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๋Š” ์ง€ํ‘œ

TTI(Time To Interact) : ์ƒํ˜ธ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•œ ํŽ˜์ด์ง€๊ฐ€ ๋˜๊ธฐ ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๋Š” ์ง€ํ‘œ

 

์ด ๊ฐœ๋…์„ ์•Œ๋ฉด, SSR์€ CSR๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ TTV๋Š” ๋Š๋ฆฌ์ง€๋งŒ, TTI๋Š” ๋น ๋ฅด๋‹ค๊ณ ๋„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทผ๋ฐ ์‚ฌ์šฉ์ž์ž…์žฅ์—์„œ๋Š” TTI์™€ TTV ๋‘๋งˆ๋ฆฌ ํ† ๋ผ๋ฅผ ๋‹ค ์žก์•„์•ผ ์ข‹์€๊ฑฐ ์•„๋‹Œ๊ฐ€..?

์•„๋งˆ ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ ๋‹ค๋“ค ์ตœ์ ์˜ ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด์„œ ๋งŽ์ด ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

์ด๊ฑฐ๋Š” ๊ณ„์† ์ƒ๊ฐํ•ด๋ณด๊ณ  ๊ตฌํ˜„ํ•ด๋ณด๊ณ  ํ•˜๋ฉด์„œ ์ฐพ์•„์•ผํ•˜๋Š” ๋ถ€๋ถ„์ธ ๊ฑธ๋กœ ๋ณด์ธ๋‹ค.

 

์ถ”๊ฐ€์ ์œผ๋กœ, Next.js๋ฅผ ๋ณด๋ฉด ๋งŽ์ด ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋Š” SSG๋Š” ๋ฌด์—‡์ธ๊ฐ€ํ•˜๋ฉด,

์ด๊ฒŒ ๋จผ์ € ์ƒ๊ฐ๋‚ฌ์ง€๋งŒ, ์ด๊ฑด ์•„๋‹ˆ๋‹ค..

SSG (Static Site Generation)

์›น์‚ฌ์ดํŠธ์˜ HTML, CSS, Javascript ํŒŒ์ผ์„ ๋Ÿฐํƒ€์ž„์— ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๋Œ€์‹  ๋นŒ๋“œ ์‹œ์ ์—์„œ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜๋Š” ์‚ฌ์ดํŠธ ์ƒ์„ฑ ์ „๋žต

๋™์ ์œผ๋กœ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ

๊ทธ๋ ‡๋‹ค๋ฉด ๊ตณ์ด ์™œ ์‚ฌ์šฉํ• ๊นŒ...?

SSG๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๊ฐ™์€ ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋˜๊ณ  ํ™”๋ฉด์— ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ๊ตฌ๋™์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๊ณ , js๋ฅผ ํ†ตํ•œ ๋นˆ๋ฒˆํ•œ ๋ฐ์ดํ„ฐ ๊ตํ™˜์ด ์—†๊ฑฐ๋‚˜ ์ ์–ด์„œ ๋ณด์•ˆ์ธก๋ฉด์—์„œ ์œ ๋ฆฌํ•˜๊ณ , ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ธ”๋กœ๊ทธ, ์ด๋ ฅ์„œ์™€ ๊ฐ™์ด ๋ณ€๋™์ด ์ž์ฃผ ์ผ์–ด๋‚˜์ง€์•Š๋Š” ์•ฑ์„ ๊ตฌ์ถ•ํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค.

์˜ˆ์‹œ๋กœ๋Š” Gatsby, jekyll๋“ฑ์ด ์žˆ๋‹ค. (์•„ํ•˜ ์ด๋ž˜์„œ ์ด ๋„๊ตฌ๋“ค๋กœ ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŽ์ด ๊ฐœ์„คํ•˜๋Š” ๊ฑฐ์˜€๊ตฌ๋‚˜,,)

์ด๋Ÿฐ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๋‹น์—ฐํžˆ ๋™์  ์ฝ˜ํ…์ธ ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์„๋•Œ์—๋Š” SSG๊ฐ€ ์ ํ•ฉํ•˜์ง€ ์•Š๊ฒ ๋‹ค!

 

์ •๋ฆฌ๋ฅผ ํ•ด๋ณด์ž๋ฉด,

๊ทน๋‹จ์ ์ธ CSR๊ณผ SSR์€ ์„œ๋กœ ์ƒ๋ฐ˜๋œ๋‹ค!
- CSR์˜ ์žฅ์ ์€ SSR์˜ ๋‹จ์ , CSR์˜ ๋‹จ์ ์€ SSR์˜ ์žฅ์ ์ด๋‹ค.

SSR์€ ํ•ญ์ƒ SSG๋ณด๋‹ค ํ•ญ์ƒ ๋ณ„๋กœ์ธ๊ฐ€?
- ์†๋„๋Š” SSG๋ณด๋‹ค ๋Š๋ฆด ์ˆ˜์žˆ๋‹ค.

ํ•˜์ง€๋งŒ SSR์˜ ์žฅ์ ์€ SSG์—์„œ ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ "์‹ค์‹œ๊ฐ„" ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ๋ณด๋‹ค ์™„์ „ํ•œ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต(response)์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

ISR(Incremental Static Regeneration)

SSG์™€ ๋™์ผํ•˜๊ฒŒ ๋นŒ๋“œ ์‹œ์ ์— ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

SSG์˜ ๋‹จ์ ์ด์—ˆ๋˜ ์ƒํ˜ธ์ž‘์šฉ์ด ๋™์ ์œผ๋กœ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์™„ํ•˜์—ฌ ๋นŒ๋“œํ• ๋•Œ ์ •์ ์‚ฌ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹ ์—, ๋Ÿฐํƒ€์ž„์— ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์ •์  ์ƒ์„ฑ๋˜๋„๋ก ํ•˜์—ฌ์„œ ๋™์  ์ƒํ˜ธ์ž‘์šฉ์ด ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋นŒ๋“œ (์ผ์ •์‹œ๊ฐ„์ด ์ง€๋‚œ ํ›„ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑ)

์ฆ‰, ์ตœ์‹  ๋ฐ์ดํ„ฐ๋กœ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ์žฌ๋นŒ๋“œ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

ex, Next.js Nuxt.js


๊ทธ๋Ÿผ ํ”„๋กœ์ ํŠธ์—์„œ CSR, SSG, SSR ์ค‘์— ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•ด์•ผํ• ๊นŒ? 

๊ฐ ๋ Œ๋”๋ง ๋ฐฉ์‹์˜ ์žฅ๋‹จ์ ์ด ๋ช…ํ™•ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœํ•˜๋ ค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๊ฒฉ์„ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค.

์ด ์„ธ ๋ Œ๋”๋ง ๋ฐฉ์‹ ์ค‘, ์–ด๋Š ๊ฒƒ๋„ ์™„๋ฒฝํ•œ ์ƒ์œ„ ํ˜ธํ™˜์ด ๋˜์ง€ ์•Š์œผ๋‹ˆ, ๊ฐ ๋ Œ๋”๋ง์˜ ์žฅ๋‹จ์ ์„ ์ดํ•ดํ•˜๊ณ  ๋ณธ์ธ์ด ๋งŒ๋“œ๋ ค๋Š” ์„œ๋น„์Šค์— ์ ํ•ฉํ•œ ๋ Œ๋”๋ง ๊ธฐ๋ฒ•์„ ์„ ํƒํ•˜์ž.

ํ•ญ์ƒ ์ƒ๊ฐํ•˜์ง€๋งŒ, ์ฝ”๋”ฉ ๊ตฌํ˜„์—๋Š” ์ •๋‹ต์€ ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ ์ƒํ™ฉ์— ๋งž๊ฒŒ, ํ•ด๋‹น ๋ฐฉ์‹์—์„œ ์žฅ์ ์„ ๊ทน๋Œ€ํ™”์‹œํ‚ฌ ์ˆ˜ ์žˆ์„ ๋งŒํ•œ ์ƒํ™ฉ์„ ์ž˜ ํŒ๋‹จํ•ด์„œ ๊ฒฐ์ •ํ•˜๋ฉด ๋œ๋‹ค.

 

 

์ฐธ๊ณ 

https://www.youtube.com/watch?v=MGTKRYJ020o 

https://velog.io/@hanei100/TIL-SSR-vs-CSR-%EC%B0%A8%EC%9D%B4

https://tecoble.techcourse.co.kr/post/2021-09-10-ssr/

https://velog.io/@altmshfkgudtjr/CSR-SSR-SSG-%EC%A1%B0%ED%99%94%EB%A5%BC-%EC%9D%B4%EB%A3%A8%EB%8B%A4

728x90