๐Ÿ”ฌComputer Science/๋„คํŠธ์›Œํฌ

TIL) SSR๊ณผ CSR ์ฐจ์ด์ , ์›น ๊ฐœ๋ฐœ์—์„œ ์ค‘์š”ํ•œ ๊ฐœ๋…

hellohailie 2022. 6. 9. 16:10

SSR(Server Side Rendering)

์›น ํŽ˜์ด์ง€๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ Œ๋”๋งํ•˜๋Š” ๋Œ€์‹ ์— ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋งํ•œ๋‹ค.

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์˜ URI๋กœ GET ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด, ์„œ๋ฒ„๋Š” ์ •ํ•ด์ง„ ์›น ํŽ˜์ด์ง€ ํŒŒ์ผ์„ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „์†กํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„์˜ ์›น ํŽ˜์ด์ง€๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ๋„์ฐฉํ•˜๋ฉด ์™„์ „ํžˆ ๋ Œ๋”๋ง๋œ๋‹ค. ์„œ๋ฒ„์—์„œ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ณด๋‚ด๊ธฐ ์ „์— ์„œ๋ฒ„์—์„œ ์™„์ „ํžˆ ๋ Œ๋”๋งํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— Server Side Rendering ์ด๋ผ๊ณ  ํ•œ๋‹ค.

โœ”๏ธ ์›น ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ ๋‹ค์Œ, ์›น ํŽ˜์ด์ง€๋ฅผ ์™„์ „ํžˆ ๋ Œ๋”๋ง ๋œ ํŽ˜์ด์ง€๋กœ ๋ณ€ํ™˜ํ•œ ํ›„์— ๋ธŒ๋ผ์šฐ์ €์— ์‘๋‹ต์œผ๋กœ ๋ณด๋‚ธ๋‹ค.

โœ”๏ธ ์›น ํŽ˜์ด์ง€๋ฅผ ์‚ดํŽด๋ณด๋˜ ์‚ฌ์šฉ์ž๊ฐ€, ๋ธŒ๋ผ์šฐ์ €์˜ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„๋Š” ๊ฐ™์€ ์ž‘์—…์„ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

CSR(Client Side Rendering)

 

CSR์€ SSR์˜ ๋ฐ˜๋Œ€๋กœ ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค. SSR์ด ์„œ๋ฒ„ ์ธก์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•œ๋‹ค๋ฉด, CSR์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•œ๋‹ค.

์›น ๊ฐœ๋ฐœ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ํด๋ผ์ด์–ธํŠธ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์ด๋‹ค. ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ์„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋ฉด ์„œ๋ฒ„๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋Œ€์‹ , ์›น ํŽ˜์ด์ง€์˜ ๊ณจ๊ฒฉ์ด ๋  ๋‹จ์ผ ํŽ˜์ด์ง€(Single Page)๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๋‚ธ๋‹ค. ์ด๋•Œ ์„œ๋ฒ„๋Š” ์›น ํŽ˜์ด์ง€์™€ ํ•จ๊ป˜ JavaScript ํŒŒ์ผ์„ ๋ณด๋‚ธ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ฐ›์œผ๋ฉด, ์›น ํŽ˜์ด์ง€์™€ ํ•จ๊ป˜ ์ „๋‹ฌ๋œ JavaScript ํŒŒ์ผ์€ ๋ธŒ๋ผ์šฐ์ €์˜ ์›น ํŽ˜์ด์ง€๋ฅผ ์™„์ „ํžˆ ๋ Œ๋”๋ง ๋œ ํŽ˜์ด์ง€๋กœ ๋ฐ”๊พผ๋‹ค.

โœ”๏ธ ์›น ํŽ˜์ด์ง€์— ํ•„์š”ํ•œ ๋‚ด์šฉ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์ธ ๊ฒฝ์šฐ๋ผ๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์›น ํŽ˜์ด์ง€์— ๋ Œ๋”๋ง์„ ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Fetch์™€ ๊ฐ™์€ API๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

โœ”๏ธ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜๋ฉด CSR์—์„œ๋Š” SSR๊ณผ ๋‹ค๋ฅด๊ฒŒ, ์„œ๋ฒ„๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญํ•œ ๊ฒฝ๋กœ์— ๋”ฐ๋ผ ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋ Œ๋”๋งํ•œ๋‹ค. ์ด๋•Œ ๋ณด์ด๋Š” ์›น ํŽ˜์ด์ง€์˜ ํŒŒ์ผ์€ ๋งจ ์ฒ˜์Œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ์›น ํŽ˜์ด์ง€ ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ํŒŒ์ผ์ด๋‹ค.

 


SSR, CSR์ฐจ์ด์ 

 

 

์ฃผ์š” ์ฐจ์ด์ ์€ ํŽ˜์ด์ง€๊ฐ€ ๋ Œ๋”๋ง๋˜๋Š” ์œ„์น˜!!

SSR์€ ์„œ๋ฒ„์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๊ณ , CSR์€ ๋ธŒ๋ผ์šฐ์ €(ํด๋ผ์ด์–ธํŠธ)์—์„œ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•œ๋‹ค.

CSR์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจ ํ•˜์ง€ ์•Š๊ณ , ๋™์ ์œผ๋กœ ๋ผ์šฐํŒ…์„ ๊ด€๋ฆฌํ•œ๋‹ค.

 

SSR ์‚ฌ์šฉ

  • SEO(Search Engine Optimization) ๊ฐ€ ์šฐ์„ ์ˆœ์œ„์ธ ๊ฒฝ์šฐ, ์ผ๋ฐ˜์ ์œผ๋กœ SSR(Server Side Rendering) ์„ ์‚ฌ์šฉ.
  • ์›น ํŽ˜์ด์ง€์˜ ์ฒซ ํ™”๋ฉด ๋ Œ๋”๋ง์ด ๋น ๋ฅด๊ฒŒ ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ๋‹จ์ผ ํŒŒ์ผ์˜ ์šฉ๋Ÿ‰์ด ์ž‘์€ SSR ์ด ์ ํ•ฉ.
  • ์›น ํŽ˜์ด์ง€๊ฐ€ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ์ด ์ ์€ ๊ฒฝ์šฐ, SSR ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

SSR ์˜ˆ์‹œ

๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ

- SSR์ด ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”(Search Engine Optimization, SEO)์— ์œ ๋ฆฌํ•œ ์ด์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ

- ๋ธ”๋กœ๊ทธ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํŠนํžˆ ๊ฒ€์ƒ‰์—”์ง„์— ์ตœ๋Œ€ํ•œ ๋…ธ์ถœ๋˜๋Š” ๊ฒŒ ์œ ๋ฆฌํ•˜๊ณ , ๋‹ค๋ฅธ ์›น์‚ฌ์ดํŠธ์— ๋น„ํ•ด ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ์ด ๋งŽ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— SSR์ด ํ•ฉ๋ฆฌ์ ์ธ ์„ ํƒ (๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ์˜ ๋„คํŠธ์›Œํฌ ํƒญ์˜ html ํŒŒ์ผ์— ๋‚ด์šฉ์ด ๋˜‘๊ฐ™์ด ๋‹ด๊ธด ์ƒํƒœ์ธ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ตฌ๊ธ€, ๋„ค์ด๋ฒ„ ๊ฐ™์€ ๊ฒ€์ƒ‰์—”์ง„ ํฌ๋กค๋Ÿฌ๊ฐ€ html์— ์ ‘๊ทผํ•˜์—ฌ ์‰ฝ๊ฒŒ ๋‚ด์šฉ์„ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.)

 

The NewYork Times

- SSR์˜ ๋Œ€ํ‘œ์ ์ธ ๋‹จ์ ์ธ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ์ „์ฒด ์›น์‚ฌ์ดํŠธ๋ฅผ ๋‹ค์‹œ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜ ์ด์Šˆ๊ฐ€ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , CSR์— ๋น„ํ•ด ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ๋…์ž๊ฐ€ ์‹ ๋ฌธ๊ธฐ์‚ฌ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

- ํ•ด๋‹น ์‹ ๋ฌธ์‚ฌ์˜ ๊ธฐ์‚ฌ๊ฐ€ ๊ฒ€์ƒ‰์—”์ง„์— ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— SEO(Search Engine Optimization)์— ์œ ๋ฆฌํ•œ SSR์„ ์ด์šฉ.

 

 


CSR ์‚ฌ์šฉ

  • SEO ๊ฐ€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ, CSR์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์‚ฌ์ดํŠธ์— ํ’๋ถ€ํ•œ ์ƒํ˜ธ ์ž‘์šฉ์ด ์žˆ๋Š” ๊ฒฝ์šฐ, CSR ์€ ๋น ๋ฅธ ๋ผ์šฐํŒ…์œผ๋กœ ๊ฐ•๋ ฅํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณต.
  • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ, CSR์„ ์ด์šฉํ•ด ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(๋น ๋ฅธ ๋™์  ๋ Œ๋”๋ง ๋“ฑ)์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

 

CSR ์˜ˆ์‹œ

์•„๊ณ ๋‹ค ๊ฐ™์€ ์˜ˆ์•ฝ ์‚ฌ์ดํŠธ

- SSR์—์„œ๋Š” ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋ง์„ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒํ˜ธ์ž‘์šฉ(interaction)์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์„œ๋ฒ„์— ๋ถ€๋‹ด์ด ๋งŽ์€ ๋ฐ˜๋ฉด์—, CSR์—์„œ๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋„˜๊ฒจ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋‹ด์ด ์ ๋‹ค. 

- SPA(Single Page Application)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™”๋ฉด์˜ ์ผ๋ถ€๋งŒ ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€๊ฒฝํ•ด ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅธ ๋ Œ๋”๋ง์œผ๋กœ User Experience(์‚ฌ์šฉ์ž ๊ฒฝํ—˜)์— ์œ ๋ฆฌํ•˜๋‹ค.

 

** html์ด ๋นˆ ํŽ˜์ด์ง€์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”(SEO)๋ฅผ ํ•˜๊ธฐ์—๋Š” SSR์— ๋น„ํ•ด ๋ถˆ๋ฆฌํ•˜๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์—ˆ์œผ๋‚˜, ๊ตฌ๊ธ€์—์„œ ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฝ์ž…๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๋ถ„์„, ์‹คํ–‰์‹œ์ผœ ํฌ๋กค๋ง์„ ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”๊ฐ€ ๊ผญ ํ•„์š”ํ•œ ์„œ๋น„์Šค๋ผ๋ฉด ์กฐ๊ธˆ ๋” ์ตœ์ ํ™”์— ์œ ๋ฆฌํ•œ SSR์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ๋‹ค.

 

 

 

 

์ฐธ๊ณ 

https://itnext.io/server-side-rendering-the-right-way-6c6ab5995be3

 

๐Ÿ˜ƒ ์ž˜๋ชป๋œ ๊ฐœ๋… ์ „๋‹ฌ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ €์˜ ์„ฑ์žฅ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค๐Ÿค“