"매 long task 를 매 50ms 미만 chunk 로 split, scheduler.yield() 로 매 input 에 양보". 매 INP (Interaction to Next Paint, 2024 부터 Core Web Vital) 의 핵심 metric — 매 200ms 이하 가 Good. 매 2026 의 Scheduler API + isInputPending + Web Worker 의 매 standard toolkit.
asyncfunctionprocessChunks(items: Item[]){for(constitofitems){process(it);if(navigator.scheduling?.isInputPending?.()){awaitscheduler.yield();// resume after input is handled
}}}
scheduler.postTask with priority
// User-blocking: must run ASAP
scheduler.postTask(updateUserCriticalUI,{priority:'user-blocking'});// User-visible: default
scheduler.postTask(refreshSidebar,{priority:'user-visible'});// Background: prefetch, analytics flush
scheduler.postTask(prefetchNext,{priority:'background'});
언제: time-slice boilerplate, Worker setup scaffold, scheduler API migration plan.
언제 X: 매 actual INP 측정 — RUM (CrUX, Web Vitals JS) 만 truth. LLM 의 perf claim 의 hallucination.