--- title: Worker slug: Web/API/Worker tags: - API - DOM - Interface - JavaScript - Reference - Web Workers - Worker - 워커 - 웹 워커 translation_of: Web/API/Worker ---
Web Workers API의 Worker
인터페이스는 스크립트로 생성하고, 생성자와 메시지로 통신하는 백그라운드 작업을 나타냅니다. 워커의 생성은 Worker("path/to/worker/script")
생성자를 통해 할 수 있습니다.
워커는 부모 페이지와 같은 {{glossary("origin", "출처")}}에 호스팅 된 다른 워커를 생성할 수 있습니다. (참고: WebKit은 아직 중첩 워커를 구현하지 않았습니다.)
Worker
내에서 사용할 수 있는 인터페이스와 함수는 제한돼있습니다. 워커는 {{domxref("XMLHttpRequest")}}를 사용해 네트워크 통신을 할 수 있지만, 응답의 responseXML
과 channel
특성은 항상 {{jsxref("null")}}입니다. (fetch
는 이러한 제한 없이 사용할 수 있습니다.)
부모 {{domxref("EventTarget")}}에서 속성을 상속하고, {{domxref("AbstractWorker")}}의 속성을 구현합니다.
error
유형의 {{domxref("ErrorEvent")}}가 워커로 확산되면 호출할 {{domxref("EventListener")}}입니다. {{domxref("AbstractWorker")}}에서 상속합니다.message
유형의 {{domxref("MessageEvent")}}가 워커로 확산되면, 즉 {{domxref("DedicatedWorkerGlobalScope.postMessage")}}를 통해 워커에서 부모 문서로 메시지를 전송하면 호출할 {{domxref("EventListener")}}입니다. 메시지는 {{domxref("MessageEvent.data", "data")}} 속성에 들어있습니다.부모 {{domxref("EventTarget")}}에서 메서드를 상속하고, {{domxref("AbstractWorker")}}의 메서드를 구현합니다.
message
onmessage
속성에서도 사용 가능합니다.messageerror
Worker
객체가 역직렬화 할 수 없는 객체를 메시지로 받았을 대 발생합니다.onmessageerror
속성에서도 사용 가능합니다.rejectionhandled
onrejectionhandled
속성에서도 사용 가능합니다.unhandledrejection
onunhandledrejection
속성에서도 사용 가능합니다.다음 코드 조각은 {{domxref("Worker.Worker", "Worker()")}} 생성자를 사용해 Worker
객체를 생성한 후, 그 Worker
를 사용합니다.
var myWorker = new Worker("worker.js"); var first = document.querySelector('#number1'); first.onchange = function() { myWorker.postMessage([first.value,second.value]); console.log('Message posted to worker'); }
전체 예제를 보시려면 저희의 simple-web-worker 예제 (라이브)를 참고하세요.
Specification | Status | Comment |
---|---|---|
{{SpecName('HTML WHATWG', "#worker", "Worker")}} | {{Spec2('HTML WHATWG')}} |
워커의 종류마다 지원 상황이 다릅니다. 각각의 페이지를 방문해 더 자세히 알아보세요.
{{Compat("api.Worker")}}
초기 명세에서는 교차 출처 워커 스크립트를 불러오려 시도하면 SecurityError
가 발생했습니다. 요즘은 오류 대신 {{event("error")}} 이벤트가 발생합니다. 이 글에서 교차 출처 처리 방법을 알아보세요.