๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋ก ํŠธ ๊ธฐ์ดˆ์ง€์‹

[๊ฐœ๋ฐœ์ž ๊ธฐ๋ณธ ์ง€์‹] ๋ Œ๋”๋ง์ด๋ž€? ์„œ๋ฒ„์‚ฌ์ด๋“œ๋ Œ๋”๋ง(SSR)๊ณผ ํด๋ผ์ด์–ธํŠธ์‚ฌ์ด๋“œ๋ Œ๋”๋ง(CSR)

by ๋‰ด์ชผ๋ฏธ 2023. 12. 19.

 

์ปดํ“จํ„ฐ๋Š” ๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ์ž์˜ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ผ๊นŒ?

ํ”„๋ก ํŠธ์—”๋“œ ์ชฝ์„ ๊ณต๋ถ€ํ•œ๋‹ค๋ฉด ํ•œ๋ฒˆ์ฏค ๋“ค์–ด๋ดค์„ SSR(์„œ๋ฒ„์‚ฌ์ด๋“œ๋ Œ๋”๋ง), CSR(ํด๋ผ์ด์–ธํŠธ์‚ฌ์ด๋“œ๋ Œ๋”๋ง) ์ด๋‘๊ฐœ๋ฅผ ์•Œ์•„๋ณด๊ธฐ์ „,

 

๋ Œ๋”๋ง์€ ๋ญ˜๊นŒ?

๋ Œ๋”๋ง์€ ๋ญ˜๊นŒ?
 ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด, ์ปดํ“จํ„ฐ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์›นํŽ˜์ด์ง€๋‚˜ ์•ฑ์„ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ณผ์ •์ด๋‹ค.

 

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง์˜ ๋ชจ๋“  ๊ฒƒ : CSR๊ณผ SSR์˜ ์ดํ•ด์™€ ๊ธฐ์ˆ  ๋ฐ ์ตœ์ ํ™” ์ „๋žต [๊ทธ๋ฆผ 7-7] ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •


  ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ๋ฐ›์•„์˜จ HTML, CSS, JavaScript์˜ ์ž๋ฃŒ๋ฅผ ๋ฐ›์•„์„œ ํ•ด์„ํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์— ์š”์†Œ๋“ค์„ ๊ทธ๋ ค์ฃผ๋Š” ๊ณผ์ •์ด๋‹ค.

  - HTML์€ ์›นํŽ˜์ด์ง€์˜ ๊ตฌ์กฐ์™€ ๋‚ด์šฉ์„ ์ •์˜ํ•˜๋Š” ๋งˆํฌ์—… ์–ธ์–ด๊ณ ,

  - CSS๋Š” ์Šคํƒ€์ผ๊ณผ ๋ ˆ์ด์•„์›ƒ์„ ์ง€์ •ํ•˜๋Š” ์Šคํƒ€์ผ์‹œํŠธ, 

  - JavaScript๋Š” ๋™์ ์ธ ๊ธฐ๋Šฅ๊ณผ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด์ด๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฐ›์•„์™€์„œ ์–ด๋–ป๊ฒŒ ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ผ๊นŒ?

  ๋ Œ๋”๋ง์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML๋ฌธ์„œ๋ฅผ ํ•ด์„ํ•˜๊ณ  DOM(Document Object Model) ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ, DOM ํŠธ๋ฆฌ๋Š” HTML ์š”์†Œ๋“ค์˜ ๊ณ„์ธต๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด ๋ชจ๋ธ์ด๋‹ค. ๋ฌธ์„œ๋ฅผ ํ•ด์„ํ•˜๊ณ  DOMํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜๋ฉด CSS์—์„œ ์Šคํƒ€์ผ ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ ์š”์†Œ์˜ ์Šคํƒ€์ผ์„ ๊ณ„์‚ฐํ•˜๊ณ  CSSOM๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๊ทธ ์ดํ›„, JavaScript์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ๋™์ ์œผ๋กœ DOM์„ ์กฐ์ž‘ํ•˜๊ฑฐ๋‚˜ CSSOM๋กœ ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ์—”์ง„์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜์–ด ํ™”๋ฉด์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์˜๋œ๋‹ค.

 

๊ตฌ๋ถ„ DOM CSSOM
๋ชฉ์  HTML๋ฌธ์„œ์˜ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ณ , ์›นํŽ˜์ด์ง€์˜ ์š”์†Œ๋“ค์„ ๊ณ„์ธต๊ตฌ์กฐ๋กœ ๋‚˜ํƒ€๋ƒ„ CSS ์Šคํƒ€์ผ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๊ณ , ์Šคํƒ€์ผ ๊ณ„์‚ฐํ•˜์—ฌ ์ œ๊ณตํ•จ
๊ตฌ์กฐ HTML ๋ฌธ์„œ์˜ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ,๊ฐ ์š”์†Œ๋Š” ๋…ธ๋“œ๋กœ ๋‚˜ํƒ€๋ƒ„

๊ฐ ๋…ธ๋“œ๋Š” ํƒœ๊ทธ, ์†์„ฑ, ํ…์ŠคํŠธ ๋“ฑ์„ ํฌํ•จํ•œ ์ •๋ณด์„ ๊ฐ€์ง
CSS ์Šคํƒ€์ผ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ณ„์‚ฐ๋œ ๊ฐ์ฒด ๋ชจ๋ธ๋กœ, ๊ฐ ์š”์†Œ๋Š” ์Šคํƒ€์ผ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

๊ฐ ์Šคํƒ€์ผ ์ •๋ณด๋Š” ์„ ํƒ์ž, ์†์„ฑ, ๊ฐ’ ๋“ฑ์„ ํฌํ•จํ•จ
์—ญํ•  ์›นํŽ˜์ด์ง€์˜ ๊ตฌ์กฐ๋ฅผ ์ œ์–ดํ•˜๊ณ  ๋™์ ์ธ ๊ธฐ๋Šฅ๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ
JavaScript๋ฅผ ์‚ฌ์šฉํ•ด DOM์„ ์กฐ์ž‘ํ•˜๊ณ  ์š”์†Œ์˜ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
์›นํŽ˜์ด์ง€์˜ ์Šคํƒ€์ผ์„ ์ œ์–ดํ•˜๊ณ , ๋™์ ์œผ๋กœ ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ
JavaScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CSSOM์„ ์กฐ์ž‘ํ•˜๊ณ , ์Šคํƒ€์ผ ๊ทœ์น™์˜ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ

 

 

๋ Œ๋”๋ง๋ฐฉ์‹์€ ์™œ CSR๊ณผ SSR์ด ๋˜์—ˆ์„๊นŒ?


  ์›นํŽ˜์ด์ง€๊ฐ€ ๋‹จ์ˆœํ–ˆ๋˜ ์ดˆ๊ธฐ์—๋Š” CSR(ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง)์€ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋นˆ HTML ๋ฌธ์„œ๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ Œ๋”๋ง ๋ฐฉ์‹์ด์˜€๋‹ค. ์ด๋กœ ์ธํ•ด, ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋А๋ฆฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ , ๊ฒ€์ƒ‰ ์—”์ง„์ด ์›นํŽ˜์ด์ง€์˜ ์ฝ˜ํ…์ธ ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

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

 

CSR

์žฅ์ 

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

๋‹จ์ 

  • ์ดˆ๊ธฐ ๋กœ๋”ฉ์†๋„๊ฐ€ ๋А๋ฆผ 
  • SEO๊ฐ€ ์ข‹์ง€์•Š์Œ(๋นˆ HTML ํŒŒ์ผ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ์ฝ˜ํ…์ธ  ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ค์›Œ ๋ด‡์ด ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ํ•˜๊ธฐ ์–ด๋ ค์›€)

SSR

์žฅ์ 

  • ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋น ๋ฆ„(์„œ๋ฒ„์—์„œ ์›นํŽ˜์ด์ง€ ์ดˆ๊ธฐ๋ Œ๋”๋ง์„ ์ฒ˜๋ฆฌํ•จ)
  • SEO์— ์ข‹์Œ(์ด๋ฏธ ์™„์„ฑ๋œ HTML๋ฌธ์„œ๋ฅผ ๋ฐ›์•„์„œ ๋ด‡์ด ์ธ์‹ํ•  ์ˆ˜ ์žˆ์Œ)

๋‹จ์ 

  • ์„œ๋ฒ„์— ์š”์ฒญํ•˜๋Š” ์ผ์ด ๋งŽ์•„ ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ํผ
  • ์„œ๋ฒ„์‘๋‹ต์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ Œ๋”๋ง ์ง€์—ฐ

 

์ฐธ๊ณ 

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง์˜ ๋ชจ๋“  ๊ฒƒ : CSR๊ณผ SSR์˜ ์ดํ•ด์™€ ๊ธฐ์ˆ  ๋ฐ ์ตœ์ ํ™” ์ „๋žต

CSR ๊ณผ SSR์˜ ์ฐจ์ด ๊ทธ๋ฆฌ๊ณ  SEO

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ๊ทธ๋ฆฌ๊ณ  ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง