ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Web

[Web] CSR vs SSR vs SSG vs ISR ๊ฐ ๋ Œ๋”๋ง ๋ฐฉ์‹ ์‰ฝ๊ฒŒ ์•Œ์•„๋ณด๊ธฐ

์šฉ๋‡ฝ 2024. 1. 2. 23:07
๋ฐ˜์‘ํ˜•

[Web] CSR vs SSR vs SSG vs ISR ๊ฐ ๋ Œ๋”๋ง ๋ฐฉ์‹ ์‚ดํŽด๋ณด๊ธฐ

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ

๋จผ์ €, ์›น ๋ Œ๋”๋ง(Web Rendering)์ด๋ž€ ์›น ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ Œ๋”๋ง ๋ฐฉ์‹์— ๋”ฐ๋ผ์„œ ๋กœ๋”ฉ ์†๋„, ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO), ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๋“ฑ์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

 

์ด ๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ๋น„์œ ํ•˜์ž๋ฉด, ๋ ˆ์Šคํ† ๋ž‘์—์„œ ์š”๋ฆฌ๋ฅผ ์ฃผ๋ฌธํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋ ˆ์Šคํ† ๋ž‘์—์„œ ์†๋‹˜(์‚ฌ์šฉ์ž)์ด ๋ฉ”๋‰ด(์›น ํŽ˜์ด์ง€)๋ฅผ ์ฃผ๋ฌธํ•˜๊ณ , ์š”๋ฆฌ์‚ฌ(์„œ๋ฒ„)๊ฐ€ ์š”๋ฆฌ(์›นํŽ˜์ด์ง€)๋ฅผ ์ค€๋น„ํ•˜๊ณ , ์›จ์ดํ„ฐ(๋ธŒ๋ผ์šฐ์ €)๊ฐ€ ์š”๋ฆฌ๋ฅผ ์†๋‹˜์—๊ฒŒ ๊ฐ€์ ธ๋‹ค์ฃผ๋Š” ๊ณผ์ •๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์š”๋ฆฌ์‚ฌ๊ฐ€ ์š”๋ฆฌ๋ฅผ ์ค€๋น„ํ•˜๋Š” ๊ณผ์ •์ด ๋ฐ”๋กœ ๋ Œ๋”๋ง(Rendering)์ž…๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์ค‘์š”ํ•œ ์›น ๋ Œ๋”๋ง์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜ค๋Š˜ ์•Œ์•„๋ณผ ๋ Œ๋”๋ง ๋ฐฉ์‹๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(Client Side Rendering, CSR)
  • ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(Server Side Rendering, SSR)
  • ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ(Static Site Generation, SSG)
  • ์ฆ๋ถ„ ์ •์  ์žฌ์ƒ์„ฑ(Incremental Static Regeneration, ISR)

 

๊ฐ ๋ Œ๋”๋ง ๋ฐฉ์‹์€ ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ์ด ์žˆ์œผ๋ฉฐ, ์›น์‚ฌ์ดํŠธ์˜ ๋ชฉ์ ๊ณผ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์— ๋”ฐ๋ผ ์ ํ•ฉํ•œ ๋ฐฉ์‹์„ ์„ ํƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฐฉ์‹๋“ค์„ ๋‹ค์–‘ํ•œ ์‹์‚ฌ ๋ฐฉ์‹(ํ™ˆ ์ฟ ํ‚น, ๋ ˆ์Šคํ† ๋ž‘, ํŒจ์ŠคํŠธํ‘ธ๋“œ) ์ค‘ ์ƒํ™ฉ์— ๋งž๋Š” ๋ฐฉ์‹์„ ์„ ํƒํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง (CSR)

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

CSR(Client Side Rendering)์€ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ JavaScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›นํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์„œ ์›น ํŽ˜์ด์ง€๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋™์ž‘๊ณผ์ •

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด ์„œ๋ฒ„๋Š” ๋นˆ HTML๊ณผ JavaScript ํŒŒ์ผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  2. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ JavaScript๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  3. JavaScript๊ฐ€ ๋™์ ์œผ๋กœ HTML์„ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  4. ์ถ”๊ฐ€ ํŽ˜์ด์ง€ ์š”์ฒญ ์‹œ, ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•˜๋Š” ๋Œ€์‹  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์™€์„œ ํ•ด๋‹น ๋ถ€๋ถ„๋งŒ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

๋น„์œ ํ•˜์ž๋ฉด, CSR์€ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋นˆ ์ ‘์‹œ(๋นˆ HTML)์™€ ์š”๋ฆฌ ์žฌ๋ฃŒ(JS)๋ฅผ ๋ฐ›๊ณ , ์š”๋ฆฌ(๋ Œ๋”๋ง)๋ฅผ ์ง์ ‘ ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

๋งˆ์น˜ ๊ฐ€์ •์—์„œ ์ง์ ‘ ์š”๋ฆฌ๋ฅผ ํ•˜๋Š” ํ™ˆ ์ฟ ํ‚น๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

์ž์œ ๋กญ๊ฒŒ ์š”๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์š”๋ฆฌ ์‹ค๋ ฅ(๋ธŒ๋ผ์šฐ์ € ์„ฑ๋Šฅ)์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ฆ‰, ๋ธŒ๋ผ์šฐ์ € ์„ฑ๋Šฅ์ด ์ข‹์œผ๋ฉด ์›น ํŽ˜์ด์ง€์˜ ๋ Œ๋”๋ง ์†๋„๋„ ๋น ๋ฅด๊ณ  ์‚ฌ์šฉ์ž ๊ฒฝํ—˜๋„ ์ข‹์•„์ง‘๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ € ์„ฑ๋Šฅ์ด ๋‚ฎ๊ฑฐ๋‚˜, JavaScript๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋Š” ์›น ํŽ˜์ด์ง€์˜ ๋ Œ๋”๋ง ์†๋„๊ฐ€ ๋Š๋ ค์ง€๊ฑฐ๋‚˜, ์›น ํŽ˜์ด์ง€๊ฐ€ ์ œ๋Œ€๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”๋ฆฌ ์‹ค๋ ฅ์ด ๋‚ฎ์œผ๋ฉด ์Œ์‹์˜ ๋ง›์ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•œ ๋งฅ๋ฝ์ž…๋‹ˆ๋‹ค.

์žฅ์ 

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

๋‹จ์ 

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

์ ํ•ฉํ•œ ์ƒํ™ฉ

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

์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง (SSR)

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

SSR(Server Side Rendering)์€ ์ด๋ฆ„์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์„œ๋ฒ„์—์„œ HTML์„ ์™„์„ฑํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ณด๋‚ด๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋™์ž‘ ๊ณผ์ •

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด ์„œ๋ฒ„์—์„œ ํ•ด๋‹น ํŽ˜์ด์ง€์— ํ•„์š”ํ•œ HTML์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. ์„œ๋ฒ„๋Š” ์ƒ์„ฑ๋œ HTML์„ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  3. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ›์€ HTML์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  4. ์ถ”๊ฐ€ ํŽ˜์ด์ง€ ์š”์ฒญ ์‹œ, ํ•ด๋‹น ํŽ˜์ด์ง€์— ๋Œ€ํ•œ HTML์„ ๋‹ค์‹œ ์„œ๋ฒ„์—์„œ ์ƒ์„ฑํ•˜์—ฌ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๋น„์œ ํ•˜์ž๋ฉด, SSR์€ ์„œ๋ฒ„์—์„œ ์š”๋ฆฌ(์›นํŽ˜์ด์ง€ ๋ Œ๋”๋ง)๋ฅผ ์™„์„ฑ์‹œํ‚จ ํ›„ ์ ‘์‹œ์— ๋‹ด์•„์„œ(์™„์„ฑ๋œ HTML) ์†๋‹˜(์‚ฌ์šฉ์ž)์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋ ˆ์Šคํ† ๋ž‘์—์„œ ์š”๋ฆฌ์‚ฌ๊ฐ€ ์™„์„ฑ๋œ ์š”๋ฆฌ๋ฅผ ์†๋‹˜์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

์žฅ์ 

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

๋‹จ์ 

  • ์„œ๋ฒ„ ๋ถ€ํ•˜ ์ฆ๊ฐ€: ์‚ฌ์šฉ์ž์˜ ๊ฐ ์š”์ฒญ์— ๋Œ€ํ•ด ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋ง์„ ํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์ปค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ํ•ฉํ•œ ์ƒํ™ฉ

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

์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ (SSG)

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

SSG(Static Site Generation)๋Š” ๋นŒ๋“œ ์‹œ์— ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ HTML๋กœ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋™์ž‘ ๊ณผ์ •

  • ๋นŒ๋“œ ์‹œ์— ์„œ๋ฒ„๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์š”์ฒญ์— ๋Œ€ํ•œ HTML์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด, ์„œ๋ฒ„๋Š” ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด ๋‘” HTML์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ›์€ HTML์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€ ํŽ˜์ด์ง€ ์š”์ฒญ ์‹œ, ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด ๋‘” ํ•ด๋‹น ํŽ˜์ด์ง€์˜ HTML์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๋น„์œ ํ•˜์ž๋ฉด, ๋ฏธ๋ฆฌ ์š”๋ฆฌ(์›นํŽ˜์ด์ง€ ๋ Œ๋”๋ง)๋ฅผ ์™„์„ฑ์‹œ์ผœ ๋†“๊ณ , ๋™์ผํ•œ ์š”๋ฆฌ๋ฅผ ๊ณ„์† ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ด๋Š” ํŒจ์ŠคํŠธํ‘ธ๋“œ ์ฒด์ธ์ ์—์„œ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ํ–„๋ฒ„๊ฑฐ๋ฅผ ํŒ๋งคํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

๋น ๋ฅด๊ฒŒ ์š”๋ฆฌ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐœ์ธํ™”๋œ ์š”๋ฆฌ ์ œ๊ณต์ด ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ์ 

  • ๋น ๋ฅธ ๋กœ๋”ฉ ์†๋„: ๋ชจ๋“  ํŽ˜์ด์ง€๊ฐ€ ๋นŒ๋“œ ์‹œ์— ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋˜๋ฏ€๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ ์‹œ์—๋Š” ๋น ๋ฅธ ๋กœ๋”ฉ ์†๋„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„ ๋ถ€ํ•˜ ๊ฐ์†Œ: ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ HTML๋งŒ ์ œ๊ณตํ•˜๋ฏ€๋กœ, ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์ ์Šต๋‹ˆ๋‹ค.

๋‹จ์ 

  • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์— ๋ถˆํŽธ: ์‚ฌ์ดํŠธ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ „์ฒด ์‚ฌ์ดํŠธ๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ ํ•ฉํ•œ ์ƒํ™ฉ

  • ๋‚ด์šฉ์ด ์ž์ฃผ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ์›น์‚ฌ์ดํŠธ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ํšŒ์‚ฌ ์†Œ๊ฐœ, ์ œํ’ˆ ์†Œ๊ฐœ, FAQ ๋“ฑ๊ณผ ๊ฐ™์€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‚ฌ์ดํŠธ๋‚˜, ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ์™€ ๊ฐ™์ด ์ฝ˜ํ…์ธ ๊ฐ€ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ๊ณ ์ •๋˜๋Š” ๊ฒฝ์šฐ SSG๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ๋ถ„ ์ •์  ์žฌ์ƒ์„ฑ (ISR)

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

SSG์™€ SSR์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ณ  ์žฅ์ ์„ ๊ฒฐํ•ฉํ•œ Next.js ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๋„์ž…ํ•œ ๋ Œ๋”๋ง ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋นŒ๋“œ ์‹œ์ ์— ํŽ˜์ด์ง€๋ฅผ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜๋ฉด์„œ๋„ ํŠน์ • ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ์žฌ์ƒ์„ฑํ•˜์—ฌ ์—…๋ฐ์ดํŠธ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋™์ž‘ ๊ณผ์ •

  1. ๋นŒ๋“œ ์‹œ์ : ๋นŒ๋“œ ์‹œ์ ์— ์›น ํŽ˜์ด์ง€๋ฅผ ์ •์ ์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, Next.js์—์„œ๋Š” getStaticProps์™€ revalidate ์˜ต์…˜์„ ์ด์šฉํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ์ƒ์„ฑํ•˜๊ณ , ์–ธ์ œ ์ƒ์„ฑํ• ์ง€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์‚ฌ์šฉ์ž ์ ‘์† ์‹œ: ์›น ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ HTML์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  3. ํŽ˜์ด์ง€ ํ‘œ์‹œ: ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ›์€ HTML์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  4. ์ƒˆ๋กœ์šด ์š”์ฒญ ๋ฐ ํŽ˜์ด์ง€ ์žฌ์ƒ์„ฑ: ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ, revalidate ์˜ต์…˜์— ์„ค์ •๋œ ์‹œ๊ฐ„์ด ๊ฒฝ๊ณผํ•˜๋ฉด, ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์„œ๋ฒ„์—์„œ ์žฌ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๋Š” ์ด์ „ ํŽ˜์ด์ง€๋ฅผ ๋ณด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด์œ ๋Š” ์„ค์ •๋œ ์‹œ๊ฐ„์ด ๊ฒฝ๊ณผ๋˜์–ด๋„ ์ƒˆ๋กœ์šด ์š”์ฒญ์ด ์—†์œผ๋ฉด ์žฌ์ƒ์„ฑํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์š”์ฒญ์ด ์žˆ์„ ๋•Œ์—๋งŒ ํŽ˜์ด์ง€๊ฐ€ ์žฌ์ƒ์„ฑ๋˜๋ฉฐ, ์žฌ์ƒ์„ฑ ์ค‘์—๋Š” ์ด์ „์˜ ํŽ˜์ด์ง€๊ฐ€ ๊ณ„์†ํ•ด์„œ ๋ณด์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋น„์œ ํ•˜์ž๋ฉด, ISR์€ ํ•„์š”์— ๋”ฐ๋ผ ์š”๋ฆฌ(์›นํŽ˜์ด์ง€ ๋ Œ๋”๋ง)๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค ๊ฑฐ๋‚˜, ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘” ์š”๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ด๋Š” ๋ ˆ์Šคํ† ๋ž‘๊ณผ ํŒจ์ŠคํŠธํ‘ธ๋“œ ์ฒด์ธ์ ์˜ ์ค‘๊ฐ„ ํ˜•ํƒœ๋กœ, ๋Œ€๋ถ€๋ถ„์˜ ์†๋‹˜์—๊ฒŒ๋Š” ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์ง„ ์š”๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋˜, ํŠน๋ณ„ํ•œ ์š”๊ตฌ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด ์š”๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์žฅ์ 

  • ๋น ๋ฅธ ๋กœ๋”ฉ ์†๋„: ํŽ˜์ด์ง€๊ฐ€ ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ์ฆ‰์‹œ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์‹ค์‹œ๊ฐ„ ๋ฐ˜์˜: ์ •ํ•ด์ง„ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ์ƒˆ๋กœ์šด ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ํŽ˜์ด์ง€๋ฅผ ์žฌ์ƒ์„ฑํ•˜๋ฏ€๋กœ, ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ์„ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„ ๋ถ€ํ•˜ ๊ฐ์†Œ: ๋ชจ๋“  ์š”์ฒญ์— ๋Œ€ํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ 

  • ๊ตฌํ˜„ ๋ณต์žก์„ฑ: ๊ฐ ํŽ˜์ด์ง€์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ, ๊ตฌํ˜„์ด ๋ณต์žกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์žฌ์ƒ์„ฑ ์‹œ๊ฐ„: ํŽ˜์ด์ง€์˜ ์žฌ์ƒ์„ฑ์—๋Š” ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ฐ˜์˜ํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ํ•ฉํ•œ ์ƒํ™ฉ

  • ์ผ๋ถ€ ํŽ˜์ด์ง€๋Š” ์ž์ฃผ ์—…๋ฐ์ดํŠธ๋˜๊ณ , ๋‹ค๋ฅธ ์ผ๋ถ€ ํŽ˜์ด์ง€๋Š” ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์‡ผํ•‘ ์‚ฌ์ดํŠธ์—์„œ๋Š” ์ผ๋ถ€ ์ƒํ’ˆ ์ •๋ณด๋Š” ์ž์ฃผ ์—…๋ฐ์ดํŠธ ๋˜์ง€๋งŒ, ํšŒ์‚ฌ ์†Œ๊ฐœ๋‚˜ ์ด์šฉ ์•ฝ๊ด€ ๋“ฑ์˜ ํŽ˜์ด์ง€ ๋“ฑ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ๋ Œ๋”๋ง ๋ฐฉ์‹ ๋น„๊ต ์ •๋ฆฌ ํ‘œ

๋ Œ๋”๋ง ๋ฐฉ์‹ SEO ์ดˆ๊ธฐ ๋กœ๋”ฉ ์‹œ๊ฐ„ ์„œ๋ฒ„ ๋ถ€ํ•˜ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ ์ ํ•ฉํ•œ ์‚ฌ๋ก€
SSR ๋†’์Œ ๋ณดํ†ต ๋ณดํ†ต ์„œ๋ฒ„ SEO ์ตœ์ ํ™”, ์ฝ˜ํ…์ธ  ์ค‘์‹ฌ
CSR ๋‚ฎ์Œ ์ดˆ๊ธฐ์—๋Š” ๋Š๋ฆผ, ์ดํ›„์—๋Š” ๋น ๋ฆ„ ๋‚ฎ์Œ ํด๋ผ์ด์–ธํŠธ ๋™์  ์ฝ˜ํ…์ธ ๊ฐ€ ๋งŽ์Œ
ISR ๋†’์Œ ๋ณดํ†ต ๋‚ฎ์Œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ž์ฃผ ์—…๋ฐ์ดํŠธ ๋˜๋Š” ๋ฐ์ดํ„ฐ
SSG ๋†’์Œ ๋งค์šฐ ๋น ๋ฆ„ ๋งค์šฐ ๋‚ฎ์Œ ๋นŒ๋“œ ์‹œ์  ํฌํŠธํด๋ฆฌ์˜ค, ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ

 

๐Ÿ“• ๋งˆ๋ฌด๋ฆฌ

์›น ๋ Œ๋”๋ง ๋ฐฉ์‹ ์„ ํƒ์€ ์›น์‚ฌ์ดํŠธ์˜ ์„ฑ๋Šฅ๊ณผ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ์ค‘์š”ํ•œ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

์ฆ‰, ์„œ๋น„์Šค์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ๊ฐ ํŠน์ง•์„ ์ž˜ ๋ถ„์„ํ•ด์„œ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

 

์ฐธ๊ณ  ๋ฌธํ—Œ:

https://www.educative.io/answers/ssr-vs-csr-vs-isr-vs-ssg

https://youtu.be/khcRPut9DMA?si=fTleSSR4S8fOse8u

https://nextjs.org/docs/pages/building-your-application/data-fetching/incremental-static-regeneration

๋ฐ˜์‘ํ˜•