μ΅œμ‹  React 18 + Next.js App Router ν™˜κ²½μ—μ„œ λ„μž…λœ Streaming SSR κ°œλ…κ³Ό 싀무 적용 μ „λž΅μ„ μ •λ¦¬ν•œ λ¬Έμ„œμž…λ‹ˆλ‹€.


βœ… Streaming SSRμ΄λž€?

React 18의 ReactDOMServerκ°€ μ§€μ›ν•˜λ©°, Next.js App Routerμ—μ„œ ν™œμš©λ©λ‹ˆλ‹€.


βœ… κΈ°λ³Έ λ™μž‘ 원리

  1. λΈŒλΌμš°μ €κ°€ νŽ˜μ΄μ§€ μš”μ²­
  2. μ„œλ²„λŠ” νŽ˜μ΄μ§€ μ»΄ν¬λ„ŒνŠΈλ₯Ό React둜 λ Œλ”λ§
  3. 각 <Suspense> κ²½κ³„λ§ˆλ‹€ HTML을 "λΆ€λΆ„μ μœΌλ‘œ flush()"
  4. ν΄λΌμ΄μ–ΈνŠΈλŠ” 쑰각별 HTML을 λ°›μ•„ μ¦‰μ‹œ 화면에 ν‘œμ‹œ
  5. 느린 뢀뢄은 λ‚˜μ€‘μ— 따라 도착 (점진적 λ Œλ”λ§)

μ˜ˆμ‹œ:

<Suspense fallback={<div>Loading...</div>}>
  <Component1 /> // 1초 delay
</Suspense>
<Suspense fallback={<div>Loading...</div>}>
  <Component2 /> // 2초 delay
</Suspense>

μ‹€ν–‰ 흐름:


βœ… 슀트리밍이 μž‘λ™ν•˜λŠ” 쑰건