서드파티 스크립트(분석, 광고, 채팅 위젯 등)는 메인 스레드를 점유해 성능에 큰 영향을 줍니다. 각 스크립트의 **중요도(priority)**에 따라 로드 순서를 조율하는 ScriptOrchestrator를 구현하세요.
네 가지 우선순위(높은 순):
critical — 봇 감지, 동의 관리 등 차단 자원important — 핵심 분석, A/B 테스트normal — 일반 분석, 태그 매니저 (afterInteractive)low — 채팅 위젯, 소셜 임베드 (lazyOnload)interface ScriptTask {
id: string;
priority: 'critical' | 'important' | 'normal' | 'low';
load: () => void;
}
class ScriptOrchestrator {
enqueue(task: ScriptTask): void;
flush(): void; // priority 순서로 load() 실행, 동일 priority는 enqueue 순서
executed: string[]; // flush 후 실행된 id 순서
}
flush()는 critical → important → normal → low 순서로 load() 호출load() 호출 후 id를 executed 배열에 기록flush() 후 큐는 비워집니다 (이후 enqueue → flush 시 새로운 작업만 실행)