CSR vs SSR

์ด์ธ์ดยท2024๋…„ 8์›” 24์ผ

๐Ÿ“– Redering : component๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” HTML๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…

React๊ฐ€ application์„ ๋ Œ๋”ํ•˜๋Š” ๋ฐฉ๋ฒ•(CSR)

CRA๋กœ React๋งŒ์„ ์ด์šฉํ•ด์„œ application์„ ์ƒ์„ฑํ•˜๋ฉด client side apllication์ด ๋œ๋‹ค โ†’ client๊ฐ€ ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ชจ๋“  UI๋ฅผ ๊ตฌ์ถ•ํ•จํ•œ๋‹ค

  • ๋‹จ์ 

    • ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์‹ค์ œ ์†Œ์Šค์ฝ”๋“œ๋Š” ๋น„์–ด์žˆ๋‹ค(UI๊ฐ€ ์—†์Œ)

      • ์ธ์ŠคํŽ™ํŠธ์—์„œ๋Š” ๋ณผ ์ˆ˜ ์žˆ๋‹ค
        ์ด๋Š” Javascript์— ์˜ํ•ด์„œ UI๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค
      • ํ™”๋ฉด์„ ์ƒˆ๋กœ๊ณ ์นจ ํ•˜๋‹ค๋ณด๋ฉด ํ™”๋ฉด์— ์•„๋ฌด๊ฒƒ๋„ ์•ˆ๊ทธ๋ ค์ ธ์žˆ๋Š” ๋•Œ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด ๋•Œ๊ฐ€ Javascript๊ฐ€ UI๋ฅผ ๊ทธ๋ฆฌ๊ณ  ์žˆ๋Š” ์‹œ์ ์ด๋‹ค
      • Javascript๊ฐ€ disabled ๋˜์–ด ์žˆ๋Š” ์ƒํ™ฉ์ด๊ฑฐ๋‚˜, ์—˜๋ฒ ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆํ„ฐ์ง€๋Š” ์ƒํ™ฉ๋“ฑ์ด๋ผ๋ฉด ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ๊ฒƒ๋ณด๋‹ค ๋” ์˜ค๋žซ๋™์•ˆ ๋นˆ ํ™”๋ฉด์„ ์œ ์ €๊ฐ€ ๋ด์•ผํ•œ๋‹ค
    • SEO ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™” ๋ฌธ์ œ

      • google๋“ฑ์—์„œ ๋‚ด ํŽ˜์ด์ง€๊ฐ€ ๊ฒ€์ƒ‰๋˜๊ธธ ๋ฐ”๋ž€๋‹ค๋ฉด google์—์„œ ๋นˆ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค
        โ†’ google์€ ํŽ˜์ด์ง€์˜ HTML์„ ๋ณด๊ณ  ๊ฒ€์ƒ‰ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ(๊ฐ€๋” Javascript๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ.. ์•ˆ์ „ํ•˜๊ฒŒ HTML์„ ๊ทธ๋ ค์ฃผ๋Š”๊ฒŒ ์ข‹์Œ)

๐Ÿ‘‰๐Ÿป client๋Š” Javascript๋ฅผ ๋กœ๋“œํ•˜๊ณ  โ†’ ๊ทธ ํ›„์— Javascript๊ฐ€ UI๋ฅผ ๋นŒ๋“œํ•œ๋‹ค


Next.js๊ฐ€ application์„ ๋ Œ๋”ํ•˜๋Š” ๋ฐฉ๋ฒ•(SSR)

์ž๋™์ ์œผ๋กœ server side render๋ฅผ ํ•œ๋‹ค

  • server, ์ฆ‰ BE์—์„œ application์„ render
  • Next.js๋Š” ์„œ๋ฒ„์—์„œ ๋‚˜์˜ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ(server component๊ฑด client component(โ€use clientโ€)๊ฑด ์ƒ๊ด€ ์—†์Œ) ๋ฅผ ๋ Œ๋” ํ›„ ๊ทธ HTML์„ ๊ฐ€์ง€๊ณ  ๋ธŒ๋ผ์šฐ์ €์˜ request์— ๋Œ€ํ•œ response๋กœ ์ค€๋‹ค โ†’ ๊ทธ๋ž˜์„œ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์•ˆ๋น„์–ด ์žˆ์Œ
  • use client๋ฅผ ์„ ์–ธํ•œ client component์—์„œ console.log(path)๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด

    ์ด๋ ‡๊ฒŒ ๋ธŒ๋ผ์šฐ์ €์—๋„ ์ฐํžˆ๊ณ 

    ์ด๋ ‡๊ฒŒ backend server์ชฝ ์ฝ˜์†”์—๋„ ์ฐํžŒ๋‹ค..!
  • ๊ทธ๋ฆฌ๊ณ  ์†Œ์Šค์ฝ”๋“œ์—์„œ๋„ ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ๋“ค์ด ๋“ค์–ด์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค โ†’ ํ™”๋ฉด์— ๊ทธ๋ ค์งˆ HTML์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ
        

๊ฒฐ๋ก 

๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์™€ ํŽ˜์ด์ง€๋“ค์€ ๋ฐฑ์—”๋“œ์—์„œ ๋จผ์ € ๋ Œ๋”๋œ๋‹ค

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ๋“ค์ด HTML๋กœ ๋ณ€ํ™˜ํ•˜๊ณ 

์ด HTML์„ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ณด๋‚ด์ค€๋‹ค

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