Web Basic · Workers

웹 워커와 서비스 워커의 실행 위치

웹 워커와 서비스 워커는 둘 다 메인 스레드 밖에서 실행되지만, 전자는 계산 분리, 후자는 네트워크 프록시와 캐시 제어에 초점이 있다.

01

역할 선택

CPU 작업인지 네트워크·캐시 정책인지에 따라 worker 종류를 고른다.

02

워커 생성

전용 worker 파일을 생성하고 postMessage로 계산 입력이나 명령을 전달한다.

03

백그라운드 처리

워커는 DOM 없이 계산하거나 fetch 이벤트를 처리한다.

04

결과 반영

메인 스레드는 message 핸들러에서 결과 payload를 받아 UI 상태에 반영한다.

Web Worker
계산 분리 이미지 처리, 파싱, 대량 연산으로 UI 멈춤을 줄임
데이터 복사 비용 측정
Service Worker
네트워크 중간 계층 요청을 가로채 캐시와 네트워크 전략을 적용
HTTPS 필요
postMessage
스레드 간 통신 structured clone 또는 transferable object 사용
큰 데이터는 transfer 고려
Lifecycle
설치·활성화 service worker는 install, activate, fetch 단계가 있음
업데이트 정책 중요

메인 스레드 · 전송 비용 · 캐시 버전 점검

메인 스레드 긴 작업이 입력 반응을 막지 않도록 분리됐다.
전송 비용 워커로 보내는 데이터 크기가 이득을 지우지 않는다.
캐시 버전 서비스 워커 갱신 때 오래된 캐시를 정리한다.
DOM 제한 워커 결과를 화면에 반영하는 책임은 메인 스레드에 남긴다.