"매 render 매 interruptible, prioritizable, abandonable". React 18 (2022) 에 stable. Fiber architecture (2017) 의 결실. 2026 현재 React 19+ 의 default; useTransition, useDeferredValue, Suspense, streaming SSR, React Compiler 매 모든 것 위에 빌드.
매 핵심
매 핵심 idea
Interruptible — render 중 high-priority work (input, animation) 매 들어오면 yield.
Concurrent (NOT parallel) — single-threaded JS 위에서 cooperative scheduling.
Time-slicing — 5ms chunk 매 yield to browser (scheduler package).
Multiple in-progress trees — current + work-in-progress; double buffering.
functionUserProfile({userPromise}:{userPromise: Promise<User>}){constuser=use(userPromise);// suspends if pending
return<h1>{user.name}</h1>;}<Suspensefallback={<Skeleton/>}><UserProfileuserPromise={fetchUser(id)}/></Suspense>
Streaming SSR (Next.js 15 / React 19)
// app/page.tsx
exportdefaultasyncfunctionPage() {return(<><Header/><Suspensefallback={<FeedSkeleton/>}><Feed/>{/* streamed once data ready */}</Suspense></>);}
// chat panel hydrates first if user clicks it,
// even if header is still loading
<Suspensefallback={<Sk/>}><Header/></Suspense><Suspensefallback={<Sk/>}><Chat/></Suspense>
Cancel stale render (transition supersession)
// older transition automatically discarded when new one starts
startTransition(()=>setQuery('a'));// discarded
startTransition(()=>setQuery('ab'));// wins
매 결정 기준
상황
Approach
Input + heavy derived UI
useTransition
External lib slow value
useDeferredValue
Async data
Suspense + use
SSR with slow data
streaming + Suspense islands
Manual memoization (legacy)
replace with React Compiler
기본값: React 19+ with Compiler; transitions for any non-urgent update.
언제: identify component 매 transition 으로 wrap 할 후보, code review 매 missed Suspense boundary.
언제 X: scheduler internals 의 deep debug (need devtools profiler).
❌ 안티패턴
startTransition for urgent input: input lag.
No Suspense fallback: 매 entire tree freeze 까지 falling back.
Manual memoization with React Compiler: redundant + sometimes 더 느림.
Async setState in transition without race control: stale data.
Deferred value of huge object reference: 매 GC pressure.