From da78a9e329e272dedb2400b79a3bdeebff387d47 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:17 -0500 Subject: initial commit --- files/ko/web/api/worker/index.html | 129 +++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 files/ko/web/api/worker/index.html (limited to 'files/ko/web/api/worker/index.html') diff --git a/files/ko/web/api/worker/index.html b/files/ko/web/api/worker/index.html new file mode 100644 index 0000000000..7eb924f469 --- /dev/null +++ b/files/ko/web/api/worker/index.html @@ -0,0 +1,129 @@ +--- +title: Worker +slug: Web/API/Worker +tags: + - API + - DOM + - Interface + - JavaScript + - Reference + - Web Workers + - Worker + - 워커 + - 웹 워커 +translation_of: Web/API/Worker +--- +
{{APIRef("Web Workers API")}}
+ +

Web Workers API Worker 인터페이스는 스크립트로 생성하고, 생성자와 메시지로 통신하는 백그라운드 작업을 나타냅니다. 워커의 생성은 Worker("path/to/worker/script") 생성자를 통해 할 수 있습니다.

+ +

워커는 부모 페이지와 같은 {{glossary("origin", "출처")}}에 호스팅 된 다른 워커를 생성할 수 있습니다. (참고: WebKit은 아직 중첩 워커를 구현하지 않았습니다.)

+ +

Worker 내에서 사용할 수 있는 인터페이스와 함수는 제한돼있습니다. 워커는 {{domxref("XMLHttpRequest")}}를 사용해 네트워크 통신을 할 수 있지만, 응답의 responseXMLchannel 특성은 항상 {{jsxref("null")}}입니다. (fetch는 이러한 제한 없이 사용할 수 있습니다.)

+ +

생성자

+ +
+
{{domxref("Worker.Worker", "Worker()")}}
+
주어진 URL의 스크립트를 실행하는 전용 웹 워커를 생성합니다. Blob URL도 사용할 수 있습니다.
+
+ +

속성

+ +

부모 {{domxref("EventTarget")}}에서 속성을 상속하고, {{domxref("AbstractWorker")}}의 속성을 구현합니다.

+ +

이벤트 처리기

+ +
+
{{domxref("AbstractWorker.onerror")}}
+
error 유형의 {{domxref("ErrorEvent")}}가 워커로 확산되면 호출할 {{domxref("EventListener")}}입니다. {{domxref("AbstractWorker")}}에서 상속합니다.
+
{{domxref("Worker.onmessage")}}
+
message 유형의 {{domxref("MessageEvent")}}가 워커로 확산되면, 즉 {{domxref("DedicatedWorkerGlobalScope.postMessage")}}를 통해 워커에서 부모 문서로 메시지를 전송하면 호출할 {{domxref("EventListener")}}입니다. 메시지는 {{domxref("MessageEvent.data", "data")}} 속성에 들어있습니다.
+
{{domxref("Worker.onmessageerror")}}
+
{{event("messageerror")}} 이벤트가 발생하면 호출할 {{domxref("EventHandler")}}입니다.
+
+ +
+
+ +

메서드

+ +

부모 {{domxref("EventTarget")}}에서 메서드를 상속하고, {{domxref("AbstractWorker")}}의 메서드를 구현합니다.

+ +
+
{{domxref("Worker.postMessage()")}}
+
워커의 내부 범위로 메시지를 전송합니다. 메시지는 임의의 JavaScript 객체입니다.
+
{{domxref("Worker.terminate()")}}
+
워커를 즉시 종료합니다. 현재 워커가 연산을 진행 중이더라도 완료를 기다리지 않습니다. {{domxref("ServiceWorker")}} 인스턴스는 이 메서드를 지원하지 않습니다.
+
+ +

이벤트

+ +
+
message
+
워커의 부모가 워커로부터 메시지를 수신했을 대 발생합니다.
+ onmessage 속성에서도 사용 가능합니다.
+
messageerror
+
Worker 객체가 역직렬화 할 수 없는 객체를 메시지로 받았을 대 발생합니다.
+ onmessageerror 속성에서도 사용 가능합니다.
+
+ +
+
rejectionhandled
+
{{jsxref("Promise")}}가 거부될 때마다 발생합니다. 거부를 처리할 처리기의 존재 유무는 고려하지 않습니다.
+ onrejectionhandled 속성에서도 사용 가능합니다.
+
unhandledrejection
+
{{jsxref("Promise")}}가 거부됐는데, 처리할 처리기가 없을 때 발생합니다.
+ 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 예제 (라이브)를 참고하세요.

+ +

명세

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', "#worker", "Worker")}}{{Spec2('HTML WHATWG')}}
+ +

브라우저 호환성

+ +

워커의 종류마다 지원 상황이 다릅니다. 각각의 페이지를 방문해 더 자세히 알아보세요.

+ + + +

{{Compat("api.Worker")}}

+ +

교차 출처에서의 워커 오류 동작

+ +

초기 명세에서는 교차 출처 워커 스크립트를 불러오려 시도하면 SecurityError가 발생했습니다. 요즘은 오류 대신 {{event("error")}} 이벤트가 발생합니다. 이 글에서 교차 출처 처리 방법을 알아보세요.

+ +

같이 보기

+ + -- cgit v1.2.3-54-g00ecf