๐ŸŒ 2. Next.js์—์„œ `getServerSideProps` vs `getStaticProps`, ์จ๋ณด๋ฉด์„œ ํ—ท๊ฐˆ๋ ธ๋˜ ๊ฑฐ ์ •๋ฆฌ

JM_Devยท2025๋…„ 4์›” 16์ผ
1

Next.js ์“ฐ๋‹ค ๋ณด๋ฉด ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด 2๊ฐ€์ง€(SSR / SSG)์ธ๋ฐ,
๋งจ๋‚  ํ—ท๊ฐˆ๋ ค์„œ ์ด๋ฒˆ์— ์ฐจ์ด์ ์ด๋ž‘ ์–ธ์ œ ๋ญ˜ ์จ์•ผ ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ดค๋‹ค.


โœ… getServerSideProps (SSR)

์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋ Œ๋”๋ง
์ฆ‰, ๋งค ์š”์ฒญ๋งˆ๋‹ค HTML์„ ์ƒˆ๋กœ ๊ทธ๋ฆฐ๋‹ค

export async function getServerSideProps(context) {
  const res = await fetch('https://api.example.com/data');
  const data = await res.json();

  return { props: { data } };
}
  • ๋งค๋ฒˆ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋จ
  • ๋ฐ์ดํ„ฐ๊ฐ€ ์ž์ฃผ ๋ฐ”๋€Œ๋Š” ํŽ˜์ด์ง€์— ์ ํ•ฉ
  • ๋‹ค๋งŒ ๋А๋ฆด ์ˆ˜ ์žˆ์Œ

โœ… getStaticProps (SSG)

๋นŒ๋“œ ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ HTML์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘”๋‹ค
์œ ์ €๊ฐ€ ์ ‘์†ํ•  ๋• ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ์ •์  ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์คŒ

export async function getStaticProps() {
  const res = await fetch('https://api.example.com/data');
  const data = await res.json();

  return { props: { data } };
}
  • ์ •์ ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Œ
  • ๋‹ค๋งŒ, ์ตœ์‹  ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•  ๋• ์ข€ ๋ถˆํŽธํ•จ

โœ… ISR (Incremental Static Regeneration)

SSG์˜ ๋‹จ์  ๋ณด์™„์šฉ. ์ผ์ • ์‹œ๊ฐ„๋งˆ๋‹ค ์ •์  ํŽ˜์ด์ง€๋ฅผ ์žฌ์ƒ์„ฑ

export async function getStaticProps() {
  const data = await fetchData();

  return {
    props: { data },
    revalidate: 10, // 10์ดˆ๋งˆ๋‹ค ํŽ˜์ด์ง€ ์žฌ์ƒ์„ฑ
  };
}

์ด ๊ธฐ๋Šฅ ๋•๋ถ„์— "๊ฑฐ์˜ ์ •์ ์ด์ง€๋งŒ ์–ด๋А ์ •๋„ ์‹ค์‹œ๊ฐ„ ๋А๋‚Œ"๋„ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.


SSR vs SSG ๊ตฌ์กฐ๋„

โœ… ๋น„๊ต ์ •๋ฆฌ

ํ•ญ๋ชฉSSR (getServerSideProps)SSG (getStaticProps)
์‹คํ–‰ ์‹œ์ ๋งค ์š”์ฒญ๋งˆ๋‹ค๋นŒ๋“œ ํƒ€์ž„
์†๋„๋А๋ฆด ์ˆ˜ ์žˆ์Œ๋น ๋ฆ„
์ตœ์‹  ๋ฐ์ดํ„ฐํ•ญ์ƒ ์ตœ์‹ ํ•„์š” ์‹œ ISR๋กœ ๊ฐฑ์‹  ๊ฐ€๋Šฅ
์ ํ•ฉํ•œ ๊ฒฝ์šฐ๋กœ๊ทธ์ธ, ๋งˆ์ดํŽ˜์ด์ง€ ๋“ฑ๋ธ”๋กœ๊ทธ, ๊ณต์ง€์‚ฌํ•ญ ๋“ฑ ์ •์ ์ธ ํŽ˜์ด์ง€

๐Ÿ“ ๋‚ด๊ฐ€ ๋А๋‚€ ์ 

Next.js๋Š” ์ง„์งœ ๋ Œ๋”๋ง ์ „๋žต์ด ๋‹ค์–‘ํ•ด์„œ ์ข‹๊ธด ํ•œ๋ฐ,
ํ•œํŽธ์œผ๋ก  ์–ธ์ œ ๋ญ˜ ์จ์•ผ ํ• ์ง€ ์• ๋งคํ•  ๋•Œ๊ฐ€ ๋งŽ์•˜๋‹ค.
์ด๋ฒˆ ์ •๋ฆฌ๋ฅผ ํ†ตํ•ด์„œ ํ”„๋กœ์ ํŠธ ์ƒํ™ฉ์— ๋งž๊ฒŒ SSR, SSG, ISR์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ค€์ด ์ƒ๊ธด ๊ฒƒ ๊ฐ™๋‹ค.


"๋ชจ๋“  ํŽ˜์ด์ง€์— SSR์„ ์“ฐ๋Š” ๊ฑด ๋น„ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ๋‹ค. ์ •์ ์ผ ์ˆ˜ ์žˆ๋Š” ๊ฑด ์ •์ ์œผ๋กœ!"

profile
๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—…์„ ์ค€๋น„ ์ค‘ ์ด๋ฉฐ, ์—ด์‹ฌํžˆ ๊ณต๋ถ€ ์ค‘ ์ž…๋‹ˆ๋‹ค!

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