React · Selective Hydration
Selective Hydration
400ms에 도착한 클릭이 언제 처리되는지 대기 막대로 보여줍니다. 일괄 수화 레인에서는 840ms짜리 빨간 막대가 길게 이어지고, 선택적 수화 레인에서는 90ms 만에 끝납니다.
0ms / 1,600ms
블로킹 수화컴포넌트 수화클릭 처리반응 렌더
클릭 응답(INP)840ms→90ms9.3× 빠름타임라인을 드래그하면 그 시각으로 이동합니다 · 블록에 마우스를 올리면 아래 설명과 연결됩니다
🔒 일괄 하이드레이션 — 순서대로
840ms트리를 위에서부터 통째로 수화한다. 400ms에 누른 댓글 버튼은 자기 차례가 올 때까지 이벤트 큐에서 840ms를 기다린다.
- ①사이드바0ms – 300ms
먼저 선언된 순서대로 사이드바부터 수화한다.
- ②피드300ms – 720ms
가장 무거운 피드가 메인 스레드를 계속 점유한다. 이 사이에 클릭이 들어와도 멈추지 않는다.
- ③댓글창720ms – 1,240ms
마지막 차례가 되어서야 댓글창이 수화된다. 이 시점에야 눌러 둔 클릭이 처리된다.
- 댓글 클릭 · 840ms 대기
⚡ Selective Hydration — 만진 곳부터
90ms클릭이 들어온 순간 진행 중이던 피드 수화를 중단하고, 사용자가 만진 서브트리로 우선순위를 옮긴다. 나머지는 그 뒤에 이어서 수화한다.
- ①사이드바0ms – 300ms
동일하게 사이드바부터 수화를 시작한다.
- ②피드300ms – 400ms
피드 수화 도중 400ms에 클릭이 도착한다.
- ③댓글창400ms – 490ms
클릭한 서브트리를 가로채 먼저 수화한다. 90ms 만에 클릭이 응답된다.
- ④피드 재개490ms – 750ms
급한 일이 끝났으니 중단했던 피드 수화를 이어서 진행한다.
- ⑤나머지750ms – 1,050ms
남은 하위 컴포넌트를 여유 있게 수화한다.
- 댓글 클릭 · 90ms 대기
같은 그룹의 다른 시각화
Streaming SSR with Suspense
React · Streaming SSR일괄 SSR과 스트리밍의 첫 화면 표시 시점을 비교합니다.
Partial Prerendering (PPR)
Next.js · Rendering전체 동적 렌더링과 정적 셸·동적 영역의 스트리밍을 비교합니다.
Concurrent Transitions
React · Transitions동기 렌더링과 작업을 나누는 렌더링의 입력 지연을 비교합니다.
Optimistic UI (Server Actions)
React · Optimistic UI서버 응답을 기다리는 UI와 먼저 반영하는 낙관적 UI를 비교합니다.
ISR Stale-While-Revalidate
Next.js · Caching재생성을 기다리는 응답과 기존 값을 먼저 반환하는 응답을 비교합니다.