Skip to content
๋ฐ•์ง€ํ™ edited this page Nov 24, 2020 · 3 revisions

Next.js๋ž€?

๋ฆฌ์•กํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ SPA๋ฅผ ๋น ๋ฅด๊ฒŒ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ.

Next.js์˜ ๋Œ€ํ‘œ์  ํŠน์ง•์ด์ž ์žฅ์ 

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์„ ์ œ๊ณตํ•จ
  • ์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์˜ ์žฅ์ 
  • ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”
  • ์ดˆ๊ธฐ ๋กœ๋”ฉ ์„ฑ๋Šฅ ๊ฐœ์„ 
  • ๊ทธ๋ƒฅ ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™” SEO (Search Engine Optimization)
  • ๋”์šฑ ๋น ๋ฅธ ํŽ˜์ด์ง€ ๋กœ๋“œ๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ… ์ž๋™ํ™”
  • HMR์„ ์ง€์›ํ•˜๋Š” ์›นํŒฉ ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ
  • Express๋‚˜ Node.js์™€ ๊ฐ™์€ http ์„œ๋ฒ„์™€ ํ•จ๊ป˜ ๊ตฌํ˜„ ๊ฐ€๋Šฅ
  • Babel, Webpack ์„ค์ • ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e080380c-d5c9-42e9-9c01-99b73f4558aa/Untitled.png

DataFetch

  • isomorphic-unfetch

getInitialProps โ†’ 9.3๋ฒ„์ „๋ถ€ํ„ฐ ๋ณ€๊ฒฝ๋œ ํ•จ์ˆ˜๋“ค

๊ณตํ†ต์  : page ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ.

  • getStaticProps

    • SSG
    • ๋‹ค๋ฅธ ํ•จ์ˆ˜๋“ค ๋ณด๋‹ค ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธธ ๊ถŒ์žฅ
    • ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹ฑํ•˜๊ณ  pre-rendering์„ ์ง„ํ–‰, ๊ทธ๋Ÿฌ๊ธฐ์— ์ข€ ๋” ์ข‹์€ ์„ฑ๋Šฅ
    • request์— ์•ž์„œ ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๋•Œ
    • ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณต์‹์ ์ผ ๋•Œ (ํŠน์ • ์œ ์ €๋ž‘ ๊ด€๊ณ„๋˜๋ฉด ์•ˆ๋Œ)
    • ๋ฐ์ดํ„ฐ๊ฐ€ headless CMS๋กœ ๋ถ€ํ„ฐ ์˜ฌ ๋•Œ,

    ** headless CMS?

    • ๋จธ๋ฆฌ๋Š” ์ปจํ…์ธ ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜๋‹จ, ๋ชธํ†ต์€ ์ปจํ…์ธ ๋ฅผ ์˜๋ฏธ
    • ๋จธ๋ฆฌ(ํ‘œํ˜„ ์ˆ˜๋‹จ)๋ฅผ ์–ธ์ œ๋“  ๋ฐ”๊ฟ” ๋ผ์šธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค.
    • Headless CMS๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”๊ฐ€?
      1. ์ปจํ…์ธ  ํŽธ์ง‘์ž์™€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์™„๋ฒฝํžˆ ๋ถ„๋ฆฌ๋  ์ˆ˜ ์žˆ๋‹ค. ์ปจํ…์ธ  ํŽธ์ง‘์ž๋Š” ์ต์ˆ™ํ•œ GUI๋กœ ์ปจํ…์ธ ๋ฅผ ์ถ”๊ฐ€/์ˆ˜์ •/์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • getStaticPaths

    • getStaticProps๋ฅผ ์“ธ ๋•Œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • route๊ฐ€ ๋™์ ์ผ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. /post/[pId]
    • ๋‹จ, ๊ทธ๋Ÿผ post id๊ฐ€ 20000๊ฐœ ๊ฐ€๋Ÿ‰ ์žˆ์„๋•Œ๋„ ์ด๊ฑธ pre renderํ•  ๊ฒƒ์ด๋ƒ..? โ†’ ์˜ˆ๋ฐฉ๋ฐฉ๋ฒ•์ด ์žˆ๋‹คํ•จ.
  • getServerSideProps

    • SSR
    • ์š”์ฒญ๋งˆ๋‹ค ๋ฐ˜ํ™˜ ๋ฐ์ดํ„ฐ๊ฐ’์ด ๋ณ€ํ™”๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ ์ด ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœํ•˜๋ฉด ์ข‹๋‹ค.
    • ๋นŒ๋“œ ์ดํ›„์—๋„ Data ๋ณ€๊ฒฝ๊ฐ€๋Šฅ? ๊ทธ๋Ÿผ SSR์‚ฌ์šฉ

SSG vs SSR

pre-rendering : ๋ฏธ๋ฆฌ html์„ ๋งŒ๋“œ๋Š” ๊ฒƒ.

** ์—ฌ๊ธฐ์„œ ๋นŒ๋“œํƒ€์ž„์ด๋ž€? next-build

Static Generation

HTML์„ ๋นŒ๋“œํƒ€์ž„์— ๋งŒ๋“ค์–ด๊ฐ€์ง€๊ณ , ๊ฐ๊ฐ request ๋ณด๋‚ผ ๋•Œ ์žฌ ์‚ฌ์šฉํ•จ. getStaticProps๋ฅผ exportํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

bundle.js์—๋„ ํฌํ•จ ์•ˆ๋Œ.(?)

Server-Side Rendering

HTML์ด ๊ฐ๊ฐ request๋ฅผ ๋ณด๋‚ผ ๋•Œ ๋งŒ๋“ค์–ด์ง. getServerSideProps๋ฅผ exportํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

Clone this wiki locally