SSR vs CSR (feat. Next.js)

i_sy_codeยท2022๋…„ 6์›” 14์ผ
0
post-thumbnail

๐Ÿฉ SSR

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง (Server Side Rendering)์˜ ์ค„์ž„๋ง๋กœ,
๋ฆฌ์•กํŠธ๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ CSR๊ณผ ํ•จ๊ป˜ ๋“ฑ์žฅํ•ด ๋‚˜๋ฅผ ๊ดด๋กญํžˆ๋˜ ์นœ๊ตฌ๋‹ค.

SSR์€ ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋ง ์ค€๋น„๋ฅผ ๋๋‚ธ ํ›„ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค.
ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญ์‹œ๋งˆ๋‹ค ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ๋˜๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ๋ Œ๋”๋ง์ด ์ง„ํ–‰๋œ๋‹ค.

  1. ์„œ๋ฒ„์—์„œ ์ฆ‰์‹œ ๋ Œ๋”๋ง์ด ๊ฐ€๋Šฅํ•œ HTML์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋ƒ„. ์ฆ‰, ํ™”๋ฉด์„ ๋จผ์ € ๊ทธ๋ฆผ.
  2. ์ด ๋•Œ ์œ ์ €๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋งŒ์ง€๊ฒŒ ๋˜๋ฉด, ์•„์ง JS๊ฐ€ ์ฝํžˆ๊ธฐ ์ „์ด๋ผ ์‚ฌ์ดํŠธ๋ฅผ ์กฐ์ž‘(์ธํ„ฐ๋ž™์…˜)ํ•  ์ˆ˜ ์—†์Œ.
  3. ๊ทธ ์‚ฌ์ด์— ๋ชฐ๋ž˜ ํด๋ผ์ด์–ธํŠธ๋Š” JS๋ฅผ ์—ด์‹ฌํžˆ ๋‹ค์šด๋ฐ›์Œ.
  4. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ค์šด๋ฐ›์€ JS๋ฅผ ์ปดํŒŒ์ผํ•˜๊ณ  ๋‚˜์„œ์•ผ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ๋˜ ์‚ฌ์šฉ์ž ์กฐ์ž‘์„ ์‹คํ–‰ํ•˜๋ฉฐ ์ธํ„ฐ๋ž™์…˜์ด ๊ฐ€๋Šฅํ•ด์ง.



๐Ÿฉ CSR

ํด๋ผ์ด์–ธ๋“œ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง (Client Side Rendering)์˜ ์•ฝ์ž๋‹ค.

์„œ๋ฒ„์— ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด HTML๊ณผ JS๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ์— ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ Œ๋”๋ง์„ ์ง„ํ–‰ํ•œ๋‹ค.
SPA์—์„œ ์“ฐ์ด๋Š” ๋ฐฉ์‹์œผ๋กœ์จ ํ•˜๋‚˜์˜ ๋นˆ ํŽ˜์ด์ง€๋ฅผ ์„œ๋ฒ„์ธก์—์„œ ์ œ๊ณตํ•˜๊ณ ,
View์— ๋Œ€ํ•ด์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ JS๋ฅผ ํ†ตํ•ด ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

  1. CDN์ด HTML ํŒŒ์ผ๊ณผ JS์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋งํฌ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋ƒ„.
    (CDN : ์œ ์ € ์š”์ฒญ์— '๋ฌผ๋ฆฌ์ ์œผ๋กœ' ๊ฐ€๊นŒ์šด ์„œ๋ฒ„์—์„œ ์š”์ฒญ์— ์‘๋‹ตํ•˜๋Š” ๋ฐฉ์‹ - ATM ๊ฐ™์€ ์—ญํ• )
  2. ํด๋ผ์ด์–ธํŠธ๊ฐ€ HTML๊ณผ JS๋ฅผ ๋‹ค์šด๋กœ๋“œ
    ** SSR๊ณผ ๋‹ฌ๋ฆฌ ์œ ์ €๋Š” ์•„๋ฌด๋Ÿฐ ํ™”๋ฉด๋„ ๋ณด์ง€ ๋ชปํ•˜๊ฒŒ ๋จ **
  3. JS ์‹คํ–‰ ํ›„ ํ™”๋ฉด์ด ์–ด๋Š์ •๋„ ๊ทธ๋ ค์ง€๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ ์œ„ํ•ด API๋กœ ์„œ๋ฒ„์— ํ˜ธ์ถœ => ์‘๋‹ต



๐Ÿฉ SSR๊ณผ CSR์˜ ์ฐจ์ด

1. ๋กœ๋”ฉ ์‹œ๊ฐ„

1-1. ์ฒซ ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„

SSR์€ ํ•„์š”ํ•œ HTML + ์Šคํฌ๋ฆฝํŠธ๋งŒ, CSR์€ HTML + CSS + ๋ชจ๋“  ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•œ๋ฒˆ์— ๋ถˆ๋Ÿฌ์˜ค๋ฏ€๋กœ ๋ณดํ†ต SSR์ด ๋” ๋น ๋ฅด๋‹ค.

1-2. ๋‚˜๋จธ์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„

CSR์ด ์ฒซ ๋กœ๋”ฉ๋•Œ ์ „๋ถ€ ๋ฐ›์•„์™”๊ธฐ์— ๋” ๋น ๋ฅด๋‹ค.
๋ฐ˜๋ฉด, SSR์€ ๋กœ๋”ฉ ๊ณผ์ •์„ ์ œ๋Œ€๋กœ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฏ€๋กœ ๋Š๋ฆฌ๋‹ค.

2. SEO (๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”)

CSR์€ ๋งจ ์ฒ˜์Œ HTML ํŒŒ์ผ์ด ๋น„์–ด์žˆ๊ธฐ์— ํฌ๋กค๋Ÿฌ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์—†๋‹ค.
๋”ฐ๋ผ์„œ SSR์ด SEO์— ๋” ์œ ๋ฆฌํ•˜๋‹ค.

3. ์„œ๋ฒ„ ์ž์› ์‚ฌ์šฉ

SSR์ด ๋งค๋ฒˆ ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์ž์›์„ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.
CSR์€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ผ์„ ํ† ์Šคํ•˜๋ฏ€๋กœ ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์ ๋‹ค.



๐Ÿฉ ๊ฐ๊ฐ ์–ธ์ œ ์“ฐ๋Š”๊ฒŒ ์ ํ•ฉํ•œ๊ฐ€?

SSR์„ ๊ธฐ์ค€์œผ๋กœ ์ ํ•ฉํ•œ ์‚ฌ์šฉ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ๋งํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.
์ด์— ๋ฐ˜๋Œ€๋˜๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” CSR์„ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

  • ๋„คํŠธ์›Œํฌ๊ฐ€ ๋Š๋ฆฐ ํ™˜๊ฒฝ
  • SEO๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ
  • ์ตœ์ดˆ ๋กœ๋”ฉ์ด ๋นจ๋ผ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
  • ์ธํ„ฐ๋ž™์…˜์ด ๋ณ„๋กœ ์—†๋Š” ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ
    (์ธํ„ฐ๋ž™์…˜์ด ๋งŽ์€ ์‚ฌ์ดํŠธ๋ฅผ CSR๋กœ ํ•ด์•ผํ•˜๋Š” ์ด์œ ๋Š”, ์•„์˜ˆ ๋ Œ๋”๋ง์„ ๋ง‰์•„ ์ธํ„ฐ๋ž™์…˜์„ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด UX ์ธก๋ฉด์—์„œ ๋” ๋‚ซ๊ธฐ ๋•Œ๋ฌธ)
  • ๋ฉ”์ธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ฌด๊ฑฐ์šด ๊ฒฝ์šฐ

=> SSR๊ณผ CSR์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ๋ณด๋‹ˆ ์™œ ๋ฆฌ์•กํŠธ๊ฐ€ CSR ๊ธฐ๋ฐ˜์ธ์ง€์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์žˆ์—ˆ๊ณ , SEO์— ๋Œ€ํ•œ ์ทจ์•ฝ์  ๋•Œ๋ฌธ์— SSR์„ ์–น๊ฑฐ๋‚˜ ๋„ฅ์ŠคํŠธ๋ฅผ ์ด์šฉํ•œ๋‹ค๋Š” ๊ฒƒ๋„ ๋ฐฐ์šฐ๊ฒŒ ๋๋‹ค.



๐Ÿฉ Next.js

SSR์˜ ๋‹จ์ ์€ ๋ถˆํ•„์š”ํ•œ ๋ถ€๋ถ„๊นŒ์ง€ ๋ Œ๋”๋ง๋œ๋‹ค๋Š” ๊ฒƒ์ด๊ณ ,
CSR์˜ ๋‹จ์ ์€ ์ดˆ๊ธฐ ์ง„์ž… ์†๋„๊ฐ€ ๋Š๋ฆฌ๋ฉฐ SEO์— ์ทจ์•ฝํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
ํ•ด๋‹น ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๋ฉด์„œ ๊ฐ ๋ฐฉ์‹์˜ ์žฅ์ ์„ ์‚ด๋ฆฌ๊ณ ์ž Next.js๋ผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ƒ๊ฒผ๋‹ค.
Next.js๋Š” ์ฒซ ํŽ˜์ด์ง€๋ฅผ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋งํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฑ„์›Œ์ง„ html์„ ๋ฐ›์•„ SEO ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ,
๋‹ค์Œ ํŽ˜์ด์ง€๋ถ€ํ„ด CSR ๋ฐฉ์‹์„ ์ ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ๋ถ€๋ถ„๋งŒ ๊ฐฑ์‹ ํ•ด ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ฒŒ ํ•œ ๊ฒƒ์ด๋‹ค.

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



๐Ÿ”— ์ฐธ๊ณ ์ž๋ฃŒ
SSR๊ณผ CSR์˜ ์ฐจ์ด
์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง , ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง
CSR vs SSR (feat. Next.js)
SSR vs CSR ๋น„๊ต ์„ค๋ช…, Next.js๊ฐ€ ํƒ„์ƒํ•˜๊ฒŒ ๋œ ์ด์œ 

profile
์‚ถ์€ ๋Š์ž„์—†์ด ๋‚˜์˜ ํ•œ๊ณ„์™€ ๋งž์„œ๋Š” ์ผ์ด๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€