최상위 10_Wiki/Topic_*였던 4개 카테고리 폴더를 10_Wiki/Topics/Topic_* 로 재배치.
콘텐츠 변경 없음(순수 폴더 이동) — Topics/ 하위 나머지 폴더는 이미 지난 커밋에서
전부 정리된 상태(잔존 항목은 에이전트 운영 상태 및 사용자가 보존을 요청한
업데이트0615/무제 3.canvas 뿐).
// main
constw=newWorker("./parse.worker.js",{type:"module"});w.postMessage(largePayload);w.onmessage=(e)=>render(e.data);// parse.worker.js
self.onmessage=(e)=>{constresult=heavyParse(e.data);self.postMessage(result);};
React deferred / transition
import{useDeferredValue,useTransition}from"react";constdeferred=useDeferredValue(query);const[isPending,start]=useTransition();start(()=>setFilter(next));// non-urgent → no long task on type
web-vitals 통합
import{onINP}from"web-vitals/attribution";onINP((m)=>{// m.attribution.longAnimationFrameEntries → 원인 frame
beacon("inp",m);},{reportAllChanges:true});
매 결정 기준
상황
도구
측정 시작
LoAF (지원) → Long Tasks fallback
사용자 INP 추적
web-vitals attribution
CPU-bound
Web Worker
큰 리스트 처리
scheduler.yield, chunking
Render bottleneck
useDeferredValue, virtualization
Third-party 무거움
defer/async, Partytown
기본값: web-vitals onINP + LoAF observer로 attribute → 가장 큰 script 우선 최적화.