CSR / SSR / SSG / ISR ๋ Œ๋”๋ง ๋ฐฉ์‹ ๋น„๊ต

2026. 1. 17. 01:28ยท๐Ÿ’™ ํ”„๋ก ํŠธ์—”๋“œ(FE)
728x90

1๏ธโƒฃ CSR (Client Side Rendering)

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ JS๋ฅผ ์‹คํ–‰ํ•ด UI๋ฅผ ๋ Œ๋”๋ง

๐Ÿš€ ๋™์ž‘ ๋ฐฉ์‹

  1. ์„œ๋ฒ„๋Š” ์ตœ์†Œํ•œ์˜ HTML๊ณผ JS ๋ฒˆ๋“ค์„ ์ „์†กํ•œ๋‹ค.
  2. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ JS๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜์—ฌ DOM์„ ์ƒ์„ฑํ•œ๋‹ค.
  3. ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ API๋กœ ํ˜ธ์ถœํ•œ ๋’ค ํ™”๋ฉด์„ ๋ Œ๋”๋งํ•œ๋‹ค.

โœ… ์žฅ์ 

  • ํŽ˜์ด์ง€ ๊ฐ„ ์ „ํ™˜์ด ๋น ๋ฅด๊ณ  ๋ถ€๋“œ๋Ÿฌ์›€ (SPA ํŠน์„ฑ)
  • ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์ ๊ณ , ์บ์‹ฑ ๊ตฌ์กฐ ๋‹จ์ˆœ
  • ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ ๊ด€๋ฆฌ ์šฉ์ด (Redux, Zustand ๋“ฑ)

โŒ ๋‹จ์ 

  • ์ดˆ๊ธฐ ๋กœ๋”ฉ ์ง€์—ฐ (JS ๋‹ค์šด๋กœ๋“œ + ์‹คํ–‰ ์‹œ๊ฐ„ ํ•„์š”)
  • ๋ฐ์ดํ„ฐ ์š”์ฒญ ์ „๊นŒ์ง€ ๋นˆ ํ™”๋ฉด → CLS / LCP ์•…ํ™”
  • SEO์— ๋ถˆ๋ฆฌ (HTML์— ์‹ค์ œ ์ฝ˜ํ…์ธ  ์—†์Œ)

๐Ÿงฑ ์˜ˆ์‹œ

useEffect(() => {
  fetch('/api/posts').then(r => r.json()).then(setPosts);
}, []);


2๏ธโƒฃ SSR (Server Side Rendering)

์„œ๋ฒ„์—์„œ ์š”์ฒญ ์‹œ HTML์„ ์™„์„ฑํ•ด ๋ณด๋‚ด๋Š” ๋ฐฉ์‹

๐Ÿš€ ๋™์ž‘ ๋ฐฉ์‹

  1. ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๋ฉด ์„œ๋ฒ„์—์„œ React๋ฅผ ์‹คํ–‰.
  2. ๋ฐ์ดํ„ฐ๋ฅผ fetch → HTML ์™„์„ฑ ํ›„ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „๋‹ฌ.
  3. ๋ธŒ๋ผ์šฐ์ €๋Š” ์™„์„ฑ๋œ HTML์„ ์ฆ‰์‹œ ํ‘œ์‹œ ํ›„, JS๊ฐ€ “hydrate”๋จ.

โœ… ์žฅ์ 

  • ์ดˆ๊ธฐ ํ™”๋ฉด์ด ์™„์„ฑ๋œ ์ƒํƒœ๋กœ ์ „๋‹ฌ → LCP / CLS ๊ฐœ์„ 
  • SEO ์นœํ™”์  (HTML์— ์‹ค์ œ ์ฝ˜ํ…์ธ  ์กด์žฌ)
  • ๋™์  ๋ฐ์ดํ„ฐ ํ‘œ์‹œ ๊ฐ€๋Šฅ (์š”์ฒญ๋งˆ๋‹ค ์ตœ์‹ ํ™”)

โŒ ๋‹จ์ 

  • ์„œ๋ฒ„ ๋ถ€ํ•˜ ์ฆ๊ฐ€ (๋งค ์š”์ฒญ๋งˆ๋‹ค ๋ Œ๋”๋ง)
  • ์‘๋‹ต ์†๋„ ๋А๋ฆผ (๋ฐ์ดํ„ฐ fetch + ๋ Œ๋”๋ง ๋น„์šฉ)
  • CDN ์บ์‹ฑ ์–ด๋ ค์›€

๐Ÿงฑ ์˜ˆ์‹œ

export async function getServerSideProps() {
  const data = await fetch('<https://api.example.com/posts>').then(r => r.json());
  return { props: { data } };
}


3๏ธโƒฃ SSG (Static Site Generation)

๋นŒ๋“œ ํƒ€์ž„์— ๋ฏธ๋ฆฌ HTML ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด๋‘๋Š” ๋ฐฉ์‹

๐Ÿš€ ๋™์ž‘ ๋ฐฉ์‹

  1. ๋ฐฐํฌ ์‹œ์ (๋นŒ๋“œ ์‹œ)์— ๋ฐ์ดํ„ฐ fetch → HTML ์ƒ์„ฑ
  2. ์‚ฌ์šฉ์ž๋Š” CDN์—์„œ ์ฆ‰์‹œ ์™„์„ฑ๋œ HTML์„ ๋ฐ›์•„๋ณธ๋‹ค.

โœ… ์žฅ์ 

  • ๊ฐ€์žฅ ๋น ๋ฅธ ์ดˆ๊ธฐ ๋ Œ๋” (CDN์—์„œ ์ •์  ํŒŒ์ผ ์„œ๋น™)
  • CLS 0, SEO ์šฐ์ˆ˜
  • ์„œ๋ฒ„ ๋ถ€ํ•˜ ๊ฑฐ์˜ ์—†์Œ
  • ์บ์‹ฑ ํšจ์œจ ์ตœ๊ณ 

โŒ ๋‹จ์ 

  • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‹œ ๋ฐ˜์˜ ์–ด๋ ค์›€ (์žฌ๋นŒ๋“œ ํ•„์š”)
  • ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ฐ˜์˜ ๋ถˆ๊ฐ€

๐Ÿงฑ ์˜ˆ์‹œ

export async function getStaticProps() {
  const data = await fetch('<https://api.example.com/featured>').then(r => r.json());
  return { props: { data } };
}


4๏ธโƒฃ ISR (Incremental Static Regeneration)

SSG์— “์ฃผ๊ธฐ์  ๊ฐฑ์‹ (revalidate)”์„ ๋”ํ•œ ๋ฐฉ์‹

๐Ÿš€ ๋™์ž‘ ๋ฐฉ์‹

  1. ๋นŒ๋“œ ํƒ€์ž„์— ํŽ˜์ด์ง€๋ฅผ ์ •์ ์œผ๋กœ ์ƒ์„ฑ.
  2. ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ฒซ ์š”์ฒญ ์‹œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์žฌ์ƒ์„ฑ.
  3. ์ดํ›„ ์š”์ฒญ์€ ์ƒˆ๋กœ์šด HTML์„ ๋ฐ˜ํ™˜.

โœ… ์žฅ์ 

  • SSG์˜ ์†๋„ + SSR์˜ ์œ ์—ฐ์„ฑ
  • ์ž์ฃผ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ์— ์ ํ•ฉ (์˜ˆ: ๋ฉ”์ธํŽ˜์ด์ง€, ๋ฆฌ์ŠคํŠธ)
  • ์™„๋ฒฝํ•œ SEO + CDN ์บ์‹ฑ

โŒ ๋‹จ์ 

  • ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ์€ ์ด์ „ ๋ฐ์ดํ„ฐ์ผ ์ˆ˜ ์žˆ์Œ (๊ฐฑ์‹  ์ง€์—ฐ)
  • ๋ฐฑ์—”๋“œ API ์‹คํŒจ ์‹œ ์˜ค๋ž˜๋œ HTML ์œ ์ง€๋  ์ˆ˜ ์žˆ์Œ

๐Ÿงฑ ์˜ˆ์‹œ

export async function getStaticProps() {
  const data = await fetch('<https://api.example.com/posts>').then(r => r.json());
  return { props: { data }, revalidate: 3600 }; // 1์‹œ๊ฐ„๋งˆ๋‹ค ๊ฐฑ์‹ 
}

 

 

 

๐Ÿ“Š ์š”์•ฝ ๋น„๊ตํ‘œ

๊ตฌ๋ถ„ ๋ Œ๋”๋ง ์‹œ์  ๋ฐ์ดํ„ฐ ์‹ ์„ ๋„ ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„ SEO ์„œ๋ฒ„ ๋ถ€ํ•˜ ์ ํ•ฉ ์‚ฌ๋ก€

CSR ํด๋ผ์ด์–ธํŠธ ์ตœ์‹  ๋А๋ฆผ (JS ํ•„์š”) โŒ ๋‚ฎ์Œ ๋Œ€์‹œ๋ณด๋“œ, ๋‚ด๋ถ€ ํˆด
SSR ์š”์ฒญ ์‹œ ์ตœ์‹  ๋ณดํ†ต โœ… ๋†’์Œ ๋™์  ์ฝ˜ํ…์ธ , ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€
SSG ๋นŒ๋“œ ์‹œ ๊ณ ์ • ๋งค์šฐ ๋น ๋ฆ„ โœ… ๋งค์šฐ ๋‚ฎ์Œ ๋ธ”๋กœ๊ทธ, ๋žœ๋”ฉํŽ˜์ด์ง€
ISR ๋นŒ๋“œ + ์ฃผ๊ธฐ์  ์žฌ์ƒ์„ฑ ์ผ์ • ์‹œ๊ฐ„ ๋‚ด ์ตœ์‹  ๋งค์šฐ ๋น ๋ฆ„ โœ… ๋‚ฎ์Œ ๋ฉ”์ธํŽ˜์ด์ง€, ๋ชฉ๋ก ๋ทฐ

 

 

๐Ÿ’ก ์„ ํƒ ๊ฐ€์ด๋“œ

์ƒํ™ฉ ์ถ”์ฒœ ๋ Œ๋”๋ง ๋ฐฉ์‹

๋ฐ์ดํ„ฐ๊ฐ€ ์ž์ฃผ ๋ฐ”๋€Œ์ง€ ์•Š์Œ SSG
ํ•˜๋ฃจ/๋ช‡์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝ ISR
์‹ค์‹œ๊ฐ„, ๋กœ๊ทธ์ธ๋ณ„ ๊ฐœ์ธํ™” ํ•„์š” SSR
๋กœ๊ทธ์ธ ์ดํ›„ ์ƒํƒœ ๊ธฐ๋ฐ˜ ๋Œ€ํ™”ํ˜• UI CSR

'๐Ÿ’™ ํ”„๋ก ํŠธ์—”๋“œ(FE)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

React ์ƒํƒœ๊ด€๋ฆฌ ( ์ง€์—ญ, ์ „์—ญ, ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ )  (0) 2026.01.20
React ์„ฑ๋Šฅ ์ตœ์ ํ™”  (0) 2026.01.20
Next.js 16 + Turbopack + pnpm ๋ชจ๋…ธ๋ ˆํฌ: Docker ๋นŒ๋“œ ์™„์ „ ์ •๋ณต  (0) 2026.01.17
์ง€๋„ ๋ทฐํฌํŠธ ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ์ˆ™์†Œ ๊ฒ€์ƒ‰ ๊ตฌํ˜„  (0) 2026.01.14
์›น ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ œ๋Œ€๋กœ ํ™œ์šฉํ•˜๊ธฐ: Transition, Keyframes, rAF, WAAPI ๋น„๊ต์™€ ํ™œ์šฉ๋ฒ•  (0) 2025.09.24
'๐Ÿ’™ ํ”„๋ก ํŠธ์—”๋“œ(FE)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • React ์ƒํƒœ๊ด€๋ฆฌ ( ์ง€์—ญ, ์ „์—ญ, ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ )
  • React ์„ฑ๋Šฅ ์ตœ์ ํ™”
  • Next.js 16 + Turbopack + pnpm ๋ชจ๋…ธ๋ ˆํฌ: Docker ๋นŒ๋“œ ์™„์ „ ์ •๋ณต
  • ์ง€๋„ ๋ทฐํฌํŠธ ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ์ˆ™์†Œ ๊ฒ€์ƒ‰ ๊ตฌํ˜„
์—ฐ์žŽ(lotus leaf)
์—ฐ์žŽ(lotus leaf)
  • ์—ฐ์žŽ(lotus leaf)
    lotus' s develog ๐Ÿƒ
    ์—ฐ์žŽ(lotus leaf)
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (79)
      • โœ๏ธ ๊ฐœ๋ฐœํšŒ๊ณ ๋ก (5)
      • ๐Ÿงฎ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (3)
      • ๐Ÿ’™ ํ”„๋ก ํŠธ์—”๋“œ(FE) (19)
        • HTML (0)
        • CSS (0)
        • Javascript (0)
        • React (0)
        • Next.js (0)
        • webpack & babel (0)
      • ๐Ÿ’ป ๋ฐฑ์—”๋“œ(BE) (2)
        • Nest.js (0)
        • Express.js (0)
        • MySQL (1)
      • โš™๏ธ ์ธํ”„๋ผ(Devops) (2)
      • ๐Ÿค– AI (1)
      • ๐ŸŒ WEB (8)
      • ๐Ÿ’ป CS (16)
        • ์ž๋ฃŒ๊ตฌ์กฐ (0)
        • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ (1)
        • ์šด์˜์ฒด์ œ (0)
        • ์ธ๊ณต์ง€๋Šฅ (8)
        • ์›น ๋ณด์•ˆ (1)
        • ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… (6)
      • ๐Ÿ–‹๏ธ DevLog (1)
      • ๐Ÿฆพ ๋กœ๋ณดํ‹ฑ์Šค (4)
      • ๐Ÿ“— ๋„ค์ด๋ฒ„๋ถ€์ŠคํŠธ์บ ํ”„ ์›น ๋ชจ๋ฐ”์ผ (0)
      • ๐ŸŽฎ Unity(C#) (10)
      • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (4)
        • C (4)
        • C++ (0)
        • Java (0)
        • Python (0)
      • MSA (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    isaac automator
    C#
    gaussian rbf svm
    advaned detail
    deploy-aws
    ์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต #๋„์ „ํ•™๊ธฐ์ œ
    ์กฐํ•ฉ
    ์ˆœ์—ด
    soft margin svm
    hard margin svm
    turtlebot
    ๋ฐฑ์ค€
    ros bridge
    client-streaming
    Devops #๋Œ€๊ทœ๋ชจํŠธ๋ž˜ํ”ฝ์ฒ˜๋ฆฌ
    ์ŠคํŒธ๋ถ„๋ฅ˜๊ธฐ
    ์ฝ”๋”ํŒจ๋“œ
    ros workspace
    c++
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    nav2
    ํŒŒ์ผํŠธ๋ฆฌ
    ๊ธฐ์ดˆ์•Œ๊ณ ๋ฆฌ์ฆ˜
    c์–ธ์–ด
    ๋ฆฌ์•กํŠธ
    C
    auto-scaling
    AWS
    ์ŠคํŒธ๋ฉ”์ผ๋ถ„๋ฅ˜๊ธฐ
    next.js12
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.6
์—ฐ์žŽ(lotus leaf)
CSR / SSR / SSG / ISR ๋ Œ๋”๋ง ๋ฐฉ์‹ ๋น„๊ต
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”