From da78a9e329e272dedb2400b79a3bdeebff387d47 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:17 -0500 Subject: initial commit --- .../global_objects/sharedarraybuffer/index.html | 137 +++++++++++++++++++++ .../sharedarraybuffer/prototype/index.html | 65 ++++++++++ 2 files changed, 202 insertions(+) create mode 100644 files/ko/web/javascript/reference/global_objects/sharedarraybuffer/index.html create mode 100644 files/ko/web/javascript/reference/global_objects/sharedarraybuffer/prototype/index.html (limited to 'files/ko/web/javascript/reference/global_objects/sharedarraybuffer') diff --git a/files/ko/web/javascript/reference/global_objects/sharedarraybuffer/index.html b/files/ko/web/javascript/reference/global_objects/sharedarraybuffer/index.html new file mode 100644 index 0000000000..9919adb447 --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/sharedarraybuffer/index.html @@ -0,0 +1,137 @@ +--- +title: SharedArrayBuffer +slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer +tags: + - Constructor + - JavaScript + - Shared Memory + - SharedArrayBuffer + - TypedArrays +translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer +--- +
{{JSRef}}
+ +

SharedArrayBuffer 객체는 제네릭, 고정된 길이의 원시 바이너리 데이터 버퍼를 표현하는데 사용됩니다. {{jsxref("ArrayBuffer")}} 객체와 유사하지만, 공유된 메모리상의 뷰를 생성하는데 사용될 수 있습니다. ArrayBuffer 와는 달리, SharedArrayBuffer 는 분리될 수 없습니다.

+ +
+

Spectre 에대한 응답으로 2018년 1월 5일에 SharedArrayBuffer 는 모든 주요 브라우저에서 기본적으로 비활성화되어있음을 참고하세요. Chrome 은 사이트 격리 기능을 사용하여 Spectre 스타일 취약점으로부터 보호될 수 있는 플랫폼상의 v67 에서 이를 다시 활성화하였습니다.

+
+ +

{{EmbedInteractiveExample("pages/js/sharedarraybuffer-constructor.html")}}

+ + + +

구문

+ +
new SharedArrayBuffer(length)
+
+ +

파라미터

+ +
+
length
+
생성할 array buffer 의 바이트 크기.
+
+ +

반환 값

+ +

크기가 지정된 새로운 SharedArrayBuffer 객체입니다. 컨텐츠는 0 으로 초기화됩니다.

+ +

설명

+ +

할당 및 메모리 공유

+ +

{{jsxref("SharedArrayBuffer")}} 객체를 사용해 메모리를 하나의 agent(agent 는 웹 페이지의 메인 프로그램 또는 웹 워커 중 하나입니다)와 다른 agent 에서 공유하기 위해, postMessagestructured cloning 이 사용됩니다.

+ +

Structured clone 알고리즘은 SharedArrayBuffer 와 SharedArrayBuffer 상에 맵핑된 TypedArray 를 받아들입니다. 이 두 경우에서, SharedArrayBuffer 객체는 수신자(receiver)에게 전달되어 수신 agent(예, {{jsxref("ArrayBuffer")}})의 새로운 비공개의 SharedArrayBuffer 객체를 생성합니다. 하지만, 두 SharedArrayBuffer 에 의해 참조되는 공유 데이터 블록은 같은 블록이며, 부수적인 효과로, 하나의 agent 가 다른 agent 에서 보이게 됩니다.

+ +
var sab = new SharedArrayBuffer(1024);
+worker.postMessage(sab);
+
+ +

Atomic operation 으로 공유 메모리 수정 및 동기화

+ +

공유 메모리는 워커나 메인 스레드에서 동시에 수정 및 생성할 수 있습니다. 시스템(CPU, OS, 브라우저)에따라 변경사항이 전체 컨텍스트로 전파될때까지 약간의 시간이 필요합니다. 동기화를 위해선, {{jsxref("Atomics", "atomic", "", 1)}} 연산이 필요합니다.

+ +

SharedArrayBuffer 객체를 사용할 수 있는 API

+ + + +

생성자는 new 연산자를 필요로 함

+ +

SharedArrayBuffer 생성자는 생성될 때, {{jsxref("Operators/new", "new")}} 연산자를 필요로 합니다. SharedArrayBuffer 생성자를 new 없이 함수로써 호출하면, {{jsxref("TypeError")}} 를 일으킬 것 입니다.

+ +
var sab = SharedArrayBuffer(1024);
+// TypeError: calling a builtin SharedArrayBuffer constructor
+// without new is forbidden
+ +
var sab = new SharedArrayBuffer(1024);
+ +

속성

+ +
+
SharedArrayBuffer.length
+
값이 1인 SharedArrayBuffer 생성자의 length 속성입니다.
+
{{jsxref("SharedArrayBuffer.prototype")}}
+
모든 SharedArrayBuffer 객체에 프로퍼티 추가를 가능하게 해줍니다.
+
+ +

SharedArrayBuffer prototype 객체

+ +

모든 SharedArrayBuffer 인스턴스는 {{jsxref("SharedArrayBuffer.prototype")}} 를 상속합니다.

+ +

속성

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/prototype','Properties')}}

+ +

메소드

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/prototype','Methods')}}

+ +

명세

+ + + + + + + + + + + + + + + + + + + +
명세상태코멘트
{{SpecName('ESDraft', '#sec-sharedarraybuffer-objects', 'SharedArrayBuffer')}}{{Spec2('ESDraft')}}ES2017 에서 초기 정의.
{{SpecName('ES8', '#sec-sharedarraybuffer-objects', 'SharedArrayBuffer')}}{{Spec2('ES8')}} 
+ +

브라우저 호환성

+ + + +

{{Compat("javascript.builtins.SharedArrayBuffer")}}

+ +

함께 보기

+ + diff --git a/files/ko/web/javascript/reference/global_objects/sharedarraybuffer/prototype/index.html b/files/ko/web/javascript/reference/global_objects/sharedarraybuffer/prototype/index.html new file mode 100644 index 0000000000..3499bc77ed --- /dev/null +++ b/files/ko/web/javascript/reference/global_objects/sharedarraybuffer/prototype/index.html @@ -0,0 +1,65 @@ +--- +title: SharedArrayBuffer.prototype +slug: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/prototype +tags: + - JavaScript + - SharedArrayBuffer + - TypedArrays + - 공유 메모리 + - 속성 +translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer +--- +
{{JSRef}}
+ +

SharedArrayBuffer.prototype 속성은 {{jsxref("SharedArrayBuffer")}} 객체를위한 프로토타입을 나타냅니다.

+ +
{{js_property_attributes(0,0,0)}}
+ +

설명

+ +

SharedArrayBuffer 인스턴스는 SharedArrayBuffer.prototype 을 상속합니다. 모든 생성자와 마찬가지로, 생성자의 프로토타입 객체를 변경하여 모든 SharedArrayBuffer 인스턴스에 변화를 줄 수 있습니다.

+ +

속성

+ +
+
SharedArrayBuffer.prototype.constructor
+
객체의 프로토타입을 생성하는 함수를 지정합니다. 초기 값은 SharedArrayBuffer 생성자에 내장된 표준입니다.
+
{{jsxref("SharedArrayBuffer.prototype.byteLength")}} {{readonlyInline}}
+
배열의 바이트 크기입니다. 배열이 생성되고 수정이 불가할 때 지정됩니다. 읽기 전용입니다.
+
+ +

메소드

+ +
+
{{jsxref("SharedArrayBuffer.slice", "SharedArrayBuffer.prototype.slice(begin, end)")}}
+
begin 부터 end 까지의 모든 것을 포함하는 SharedArrayBuffer 바이트의 복사본을 컨텐츠로 갖는 새로운 SharedArrayBuffer 를 반환합니다. begin 또는 end 가 음수인 경우, 인덱스는 배열의 끝에서부터이고 반대인 경우 시작부터입니다.
+
+ +

명세

+ + + + + + + + + + + + + + +
명세상태코멘트
{{SpecName('ESDraft', '#sec-sharedarraybuffer.prototype', 'SharedArrayBuffer.prototype')}}{{Spec2('ESDraft')}}ES2017 에서 초기 정의.
+ +

브라우저 호환성

+ + + +

{{Compat("javascript.builtins.SharedArrayBuffer.prototype")}}

+ +

함께 보기

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