๐Ÿ”ฅCSR vs SSR ํŠน์ง• ๋ฐ ์ฐจ์ด์ ๐Ÿ”ฅ

ํ˜œํ˜œยท2023๋…„ 8์›” 31์ผ
0

React

๋ชฉ๋ก ๋ณด๊ธฐ
4/9
post-thumbnail

์ด์ „ ํšŒ์‚ฌ์—์„œ ์ฒ˜์Œ์œผ๋กœ Next.js๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ ... ๋‚˜๋Š” ๋‚ด๊ฐ€ CSR๊ณผ SSR์— ๋Œ€ํ•ด ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋งŽ์€ ๋‚œ๊ด€์— ๋ถ€๋”ชํ˜”๋˜ ๊ฒƒ ๊ฐ™๋‹คใ… ใ…  Next.js๊ฐ€ ๋ฒˆ์˜ํ•˜์—ฌ SSR์˜ ์ค‘์š”์„ฑ์ด ๋Œ€๋‘๋˜๊ณ  ์žˆ๋Š” ์š”์ฆ˜,,, ์ •ํ™•ํ•œ ์ดํ•ด๋ฅผ ์œ„ํ•ด CSR๊ณผ SSR์˜ ์ฐจ์ด๋ฅผ ํ•œ ๋ฒˆ ์ •๋ฆฌํ•ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”๐Ÿ™‡โ€โ™‚๏ธ

๐Ÿš€ ํ•œ ์ค„ ์ •๋ฆฌ

CSR์€ ๋ Œ๋”๋ง์ด "ํด๋ผ์ด์–ธํŠธ" ์ชฝ์—์„œ ์ผ์–ด๋‚˜๊ณ , SSR์€ ๋ Œ๋”๋ง์ด "์„œ๋ฒ„" ์ชฝ์—์„œ ์ผ์–ด๋‚œ๋‹ค.

๐Ÿš€ CSR (Client Side Rendering)

ํด๋ผ์ด์–ธํŠธ ์ชฝ์—์„œ ๋ Œ๋”๋ง์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ

CSR์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •

โœ”๏ธ ์ž์„ธํ•œ ๋ฒ„์ „

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ์— ์š”์ฒญ์„ ๋ณด๋ƒ„
  2. CDN์€ HTML ํŒŒ์ผ๊ณผ JS๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋งํฌ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋ƒ„
  3. ๋ธŒ๋ผ์šฐ์ €๋Š” HTML์„ ๋‹ค์šด๋กœ๋“œ ํ•œ ๋‹ค์Œ, JS๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜์ง€๋งŒ, ์‚ฌ์ดํŠธ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์•„์ง ๋ณด์ด์ง€ ์•Š์Œ
  4. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ JavaScripts ๋‹ค์šด๋กœ๋“œ
  5. ๊ทธ๋Ÿฐ ๋‹ค์Œ, JS๊ฐ€ ์‹คํ–‰๋˜๊ณ , ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ API๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” placeholder๋ฅผ ๋ณธ๋‹ค!
  6. ์„œ๋ฒ„๋Š” API๊ฐ€ ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ๋กœ ์‘๋‹ต
  7. API์˜ ๋ฐ์ดํ„ฐ๊ฐ€ placeholder๋ฅผ ์ฑ„์šฐ๊ณ , ํŽ˜์ด์ง€๋Š” ์ด์ œ interactive ์ƒํƒœ๊ฐ€ ๋จ

์•„๋งˆ 3๋ฒˆ์—์„œ๋Š” JS๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋งํฌ๋ฅผ ๋ฐ›๊ณ , 4๋ฒˆ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋“ค์„ ๋‹ค์šด ๋ฐ›๋Š” ๊ฒŒ ์•„๋‹Œ๊ฐ€ ์‹ถ๋‹ค...

โœ”๏ธ ๊ฐ„๋žตํ•œ ๋ฒ„์ „

  • ์„œ๋ฒ„๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ์ค‘ ...
  • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ JS ๋‹ค์šด๋กœ๋“œ
  • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ React ์‹คํ–‰
  • ํŽ˜์ด์ง€๋Š” ์ด์ œ Viewable & Interactable

CSR ์žฅ์ 

  • ํŽ˜์ด์ง€ ์ „ํ™˜ ์†๋„๊ฐ€ ๋น ๋ฆ„ (ํŽ˜์ด์ง€ ์ด๋™์ด ๋น ๋ฆ„)
  • ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์ ์Œ

CSR ๋‹จ์ 

  • ์ตœ์ดˆ ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆผ
  • ๋ฐ์ดํ„ฐ ์‘๋‹ต์„ ๋ฐ›์•„์˜ฌ ๋•Œ๊นŒ์ง€ ๋นˆ ํ™”๋ฉด ํ‘œ์ถœ
  • ์ฒ˜์Œ์—๋Š” HTML์ด ๋น„์–ด ์žˆ์–ด์„œ ํฌ๋กค๋Ÿฌ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— SEO ๋ฌธ์ œ ๋ฐœ์ƒ

๊ธฐ์—…๋“ค์ด ์ตœ๊ทผ์— Next.js๋กœ ๊ฐˆ์•„ํƒ€๋Š” ์ถ”์„ธ์ธ ๊ฐ€์žฅ ํฐ ์ด์œ ๊ฐ€ ๋ฐ”๋กœ SEO๊ฐ€ ์•„๋‹๊นŒ ์‹ถ์Œ ใ…‡.ใ…‡

๐Ÿš€ SSR (Server Side Rendering)

SSR ๋™์ž‘ ๊ณผ์ •

โœ”๏ธ ์ž์„ธํ•œ ๋ฒ„์ „

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ์— ์š”์ฒญ์„ ๋ณด๋ƒ„
  2. ์„œ๋ฒ„๋Š” Ready to Render ์ƒํƒœ์ธ HTML ํŒŒ์ผ์„ ์ƒ์„ฑ
  3. ๋ธŒ๋ผ์šฐ์ €๋Š” HTML์„ ๋น ๋ฅด๊ฒŒ ๋ Œ๋”๋ง ํ•˜์ง€๋งŒ, ์›น ์‚ฌ์ดํŠธ๊ฐ€ ์•„์ง interactive ์ƒํƒœ์ธ ๊ฒƒ์€ X
  4. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ JavaScripts ๋‹ค์šด๋กœ๋“œ
  5. ์‚ฌ์šฉ์ž๋Š” ์ปจํ…์ธ ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ์ƒํ˜ธ์ž‘์šฉ ๊ธฐ๋ก ๊ฐ€๋Šฅ
  6. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ JS ํ”„๋ ˆ์ž„์›Œํฌ ์‹คํ–‰
  7. ๊ธฐ๋ก๋œ ์ƒํ˜ธ์ž‘์šฉ์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๊ณ , ํŽ˜์ด์ง€๋Š” ์ด์ œ interactive ์ƒํƒœ๊ฐ€ ๋จ

โœ”๏ธ ๊ฐ„๋žตํ•œ ๋ฒ„์ „

  • ์„œ๋ฒ„๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ”๋กœ ๋ Œ๋”๋ง ๋  ์ˆ˜ ์žˆ๋Š” HTML ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ์ค‘ ...
  • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํŽ˜์ด์ง€ ๋ Œ๋”๋ง(Viewable) โ†’ JS ๋‹ค์šด๋กœ๋“œ
  • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ React ์‹คํ–‰
  • ํŽ˜์ด์ง€๊ฐ€ interactable ์ƒํƒœ๊ฐ€ ๋จ

๐Ÿ”ฅ CSR๊ณผ SSR์˜ Viewable, Interatable ์‹œ์ ์— ์ฃผ๋ชฉํ•˜์ž!

SSR ์žฅ์ 

  • ์ตœ์ดˆ ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ๋น ๋ฆ„
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ปจํ…์ธ ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์Œ
  • HTML์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์–ด์„œ, SEO ๊ฐ€๋Šฅ

SSR ๋‹จ์ 

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

๐Ÿ™‡โ€โ™‚๏ธ ์ฐธ๊ณ  ์ž๋ฃŒ

[๊ฐ„๋‹จ์ •๋ฆฌ] CSR vs SSR ํŠน์ง• ๋ฐ ์ฐจ์ด์ 
SSR๊ณผ CSR์˜ ์ฐจ์ด
ํŽ˜์ด์ง€ ๋ Œ๋”๋ง ๋ฐฉ์‹ ๋น„๊ต: SSR vs CSR vs SSG
SSR๊ณผ CSR์˜ ์ฐจ์ด

profile
์‰ฝ๊ฒŒ๋งŒ์‚ด์•„๊ฐ€๋ฉด์žฌ๋ฏธ์—†์–ด๋น™๊ณ 

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