Just keep coding ...

[Next.js] (5) - μ‚¬μ „λ Œλ”λ§ (SSR, SSG)

2024. 11. 5. 08:02ㆍfront-end/Next.js

728x90

πŸ‘‰  Next.js λ‹€μ–‘ν•œ 사전 λ Œλ”λ§

  1. μ„œλ²„μ‚¬μ΄λ“œ λ Œλ”λ§ (SSR)
    • κ°€μž₯ 기본적인 사전 λ Œλ”λ§ 방식
    • μš”μ²­μ΄ λ“€μ–΄μ˜¬ λ•Œ λ§ˆλ‹€ 사전 λ Œλ”λ§μ„ 진행함
  2. 정적 μ‚¬μ΄νŠΈ 생성(SSG)
    • λΉŒλ“œ νƒ€μž„μ— 미리 νŽ˜μ΄μ§€λ₯Ό 사전 λ Œλ”λ§ ν•΄ λ‘ 
  3. 증뢄 정적 μž¬μƒμ„± (ISR)
    • ν–₯후에 λ‹€λ£° 사전 λ Œλ”λ§ 방식

 

 

πŸ‘‰  SSR - μ„œλ²„ μ‚¬μ΄λ“œ λ Œλ”λ§ (μš”μ²­μ΄ λ“€μ–΄μ˜¬ λ•Œ λ§ˆλ‹€ 사전 λ Œλ”λ§μ„ 진행)

export const getServerSideProps = () => {
  // μ»΄ν¬λ„ŒνŠΈλ³΄λ‹€ λ¨Όμ € μ‹€ν–‰, μ»΄ν¬λ„ŒνŠΈμ— ν•„μš”ν•œ 데이터 λΆˆλŸ¬μ˜€λŠ” ν•¨μˆ˜
  // 였직 μ„œλ²„μΈ‘μ—μ„œλ§Œ ν•œ 번 μ‹€ν–‰
  const data = 'hello'

  return {
    //단 ν•˜λ‚˜μ˜ 객체λ₯Ό 리턴, props ν”„λ‘œνΌν‹°κ°’μ„ 넣어야함
    props: {
      data,
    },
  }
}
props: InferGetServerSidePropsType<typeof getServerSideProps> 
//getServeSideProps λ°˜ν™˜κ°’ νƒ€μž…μ„ μžλ™μœΌλ‘œ μΆ”λ‘ ν•΄μ€€λ‹€.

 

πŸ‘‰  λΈŒλΌμš°μ €μ—μ„œλ§Œ 싀행을 μ›ν•˜λŠ” 경우

  • useEffect() λ₯Ό μ΄μš©ν•΄μ„œ νŽ˜μ΄μ§€κ°€ mount 된 이후에 뢈러 올 수 μžˆλ„λ‘ 함

 

πŸ‘‰  SSG - 정적 μ‚¬μ΄νŠΈ 생성 (Build Time 에 미리 λ§Œλ“€μ–΄ λ†“μŒ!)

  • 사전 λ Œλ”λ§μ— λ§Žμ€ μ‹œκ°„μ΄ μ†Œμš”λ˜λŠ” νŽ˜μ΄μ§€λ”λΌλ„ μ‚¬μš©μžμ˜ μš”μ²­μ—λŠ” 맀우 λΉ λ₯Έμ†λ„λ‘œ 응닡 κ°€λŠ₯
  • μ΅œμ‹  데이터 λ°˜μ˜μ€ μ–΄λ ΅λ‹€. - 정적인 νŽ˜μ΄μ§€μ— μ ν•©ν•œ κΈ°λŠ₯

 

 

좜처: https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%ED%81%AC%EA%B8%B0-nextjs/dashboard

 

ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” Next.js(15+) κ°•μ˜ | μ΄μ •ν™˜ Winterlood - μΈν”„λŸ°

μ΄μ •ν™˜ Winterlood | ν•œμž… μ‹œλ¦¬μ¦ˆμ˜ 3번째 μž‘ν’ˆ! μ„Έμƒμ—μ„œ κ°€μž₯ μΉœμ ˆν•˜κ³  λ””ν…ŒμΌ ν•œ Next.js(15+)κ°•μ˜ μž…λ‹ˆλ‹€. App Router 뿐만 μ•„λ‹ˆλΌ Page RouterκΉŒμ§€ ν”„λ‘œμ νŠΈλ₯Ό 톡해 μ‚΄νŽ΄λ΄…λ‹ˆλ‹€., [μž„λ² λ”© μ˜μƒ]ν•œ μž… 크기

www.inflearn.com

 

728x90