diff options
-rw-r--r-- | files/ko/glossary/immutable/index.html | 23 | ||||
-rw-r--r-- | files/ko/glossary/mutable/index.html | 44 | ||||
-rw-r--r-- | files/ko/web/javascript/data_structures/index.md | 89 |
3 files changed, 86 insertions, 70 deletions
diff --git a/files/ko/glossary/immutable/index.html b/files/ko/glossary/immutable/index.html new file mode 100644 index 0000000000..847f9bbbe3 --- /dev/null +++ b/files/ko/glossary/immutable/index.html @@ -0,0 +1,23 @@ +--- +title: Immutable +slug: Glossary/Immutable +tags: + - CodingScripting + - Glossary +--- +<p>불변 <a href="/ko/docs/Glossary/Object">객체</a> 는 내용을 변경할 수 없는 객체입니다.<br> + 객체는 다양한 이유로 불변일 수 있습니다. 예를 들어 아래와 같습니다.</p> + +<ul> + <li>성능 향상하기(향후 객체의 변경에 대한 계획 없음)</li> + <li>메모리 사용을 줄이기(전체 객체를 복제하는 대신 <a href="/ko/docs/Glossary/Object_reference">객체를 참조</a>)</li> + <li>스레드 안전성(여러 스레드가 서로 간섭하지 않고 동일한 객체 참조 가능)</li> +</ul> + +<h2 id="Learn_more">더 알아보기</h2> + +<h3 id="General_knowledge">일반적 지식</h3> + +<ul> + <li>{{interwiki("wikipedia", "Immutable object", "Immutable")}} on Wikipedia</li> +</ul>
\ No newline at end of file diff --git a/files/ko/glossary/mutable/index.html b/files/ko/glossary/mutable/index.html new file mode 100644 index 0000000000..664479134d --- /dev/null +++ b/files/ko/glossary/mutable/index.html @@ -0,0 +1,44 @@ +--- +title: Mutable +slug: Glossary/Mutable +tags: + - CodingScripting + - Glossary + - NeedsContent +--- +<p>"Mutable"은 변경 가능(가변)한 변수의 유형입니다. <a href="/ko/docs/Glossary/JavaScript">JavaScript</a>에서, <a href="/ko/docs/Glossary/Primitive">원시 값</a>이 아닌 <a href="/ko/docs/Glossary/Object">객체</a>와 <a href="/ko/docs/Glossary/array">배열</a>만이 mutable입니다.</p> + +<p>(변수 이름이 새 값을 가리키도록 "만들 수 있지만" 이전 값은 여전히 메모리에 유지됩니다. 따라서 Garbage collection이 필요합니다.)</p> + +<p><strong>가변 객체</strong>는 객체가 생성된 후 상태를 수정할 수 있는 객체입니다.</p> + +<p><strong>불변 객체</strong>는 일단 객체가 생성되면 상태를 변경할 수 없는 객체입니다.</p> + +<p><strong>문자열과 숫자</strong>는 <strong>불변</strong>입니다. 예제를 보고 이해해볼까요?</p> + +<pre>var immutableString = "Hello"; + +// 위의 코드에서는 문자열 값을 가진 새 개체가 생성됩니다. + +immutableString = immutableString + "World"; + +// 우리는 지금 기존 값에 "World" 를 추가하고 있습니다. +</pre> + +<p>문자열 값을 사용하여 "immutableString" 을 추가하면 다음 이벤트가 발생합니다.:</p> + +<ol> + <li>기존 값 "immutableString"이 검색되었습니다.</li> + <li>"World"가 "immutableString"의 기존 값에 추가됩니다.</li> + <li>결과 값이 새 메모리 블록에 할당됩니다.</li> + <li>"immutableString" 객체는 새로 만든 메모리 공간을 가리킵니다.</li> + <li>기존에 생성한 메모리 공간은 Garbage collection이 가능해 집니다.</li> +</ol> + +<h2 id="Learn_more">더 알아보기</h2> + +<h3 id="General_knowledge">일반적 지식</h3> + +<ul> + <li>{{Interwiki("wikipedia", "Immutable object")}} on Wikipedia</li> +</ul> diff --git a/files/ko/web/javascript/data_structures/index.md b/files/ko/web/javascript/data_structures/index.md index e72d37dd85..884d33c308 100644 --- a/files/ko/web/javascript/data_structures/index.md +++ b/files/ko/web/javascript/data_structures/index.md @@ -89,13 +89,13 @@ Infinity ### BigInt type -The {{jsxref("BigInt")}} type is a numeric primitive in JavaScript that can represent integers with arbitrary precision. With `BigInt`s, you can safely store and operate on large integers even beyond the safe integer limit for `Number`s. +[BigInt](/ko/docs/Web/JavaScript/Reference/Global_Objects/BigInt) 타입은 임의 정밀도로 정수를 나타낼 수 있는 자바스크립트의 숫자 원시 형식이다. `BigInt`를 사용하면 `Number`의 정수 한계를 넘어서는 큰 정수도 안전하게 저장 및 연산할 수 있다. -A `BigInt` is created by appending `n` to the end of an integer or by calling the constructor. +`BigInt`는 정수 끝에 `n`을 추가하거나 생성자를 호출하여 생성된다. -You can obtain the safest value that can be incremented with `Number`s by using the constant {{jsxref("Number.MAX_SAFE_INTEGER")}}. With the introduction of `BigInt`s, you can operate with numbers beyond the {{jsxref("Number.MAX_SAFE_INTEGER")}}. +`BigInt`의 도입으로, 다음의 [Number.MAX_SAFE_INTEGER](/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)로 작업할 수 있으며 상수 [Number.MAX_SAFE_INTEGER](/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)를 사용하여 숫자로 증가시킬 수 있는 가장 안전한 값을 얻을 수 있다. -This example demonstrates, where incrementing the {{jsxref("Number.MAX_SAFE_INTEGER")}} returns the expected result: +이 예제는 [Number.MAX_SAFE_INTEGER](/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)를 증가시키면 예상 결과가 반환된다는 것을 보여준다: ```js > const x = 2n ** 53n; @@ -104,11 +104,11 @@ This example demonstrates, where incrementing the {{jsxref("Number.MAX_SAFE_INTE 9007199254740993n ``` -You can use the operators `+`, `*`, `-`, `**`, and `%` with `BigInt`s—just like with `Number`s. A `BigInt` is not strictly equal to a `Number`, but it is loosely so. +산술 연산자 `+`, `*`, `-`, `**` 및 `%`를 `BigInt`에서도 사용할 수 있다. `BigInt`는 정확히 `Number`와 같지는 않으나 대략적으로는 같다. -A `BigInt` behaves like a `Number` in cases where it is converted to `Boolean`: `if`, `||`, `&&`, `Boolean`, `!`. +`BigInt`는 `if`, `||`, `&&,` `Boolean`, `!`와 같이 `Boolean 타입`으로 변환되는 경우 `Number`처럼 작동한다. -`BigInt`s cannot be operated on interchangeably with `Number`s. Instead a {{jsxref("TypeError")}} will be thrown. +`BigInt`는 `Number`로 교체할 수 없으며 [TypeError](/ko/docs/Web/JavaScript/Reference/Global_Objects/TypeError)가 발생한다. ### String 타입 @@ -145,77 +145,26 @@ Symbol 은 ECMAScript 6 에서 추가되었다. Symbol은 **유일**하고 **변 두 종류의 객체 속성이 있는데, 이들은 종류에 따라 특성값들을 가질 수 있다. 데이터 (data) 속성과 접근자 (accessor) 속성이 그것이다. -> **Note:** Each property has corresponding *attributes.* Attributes are used internally by the JavaScript engine, so you cannot directly access them. That's why attributes are listed in double square brackets, rather than single. +> **Note:** 각 프로퍼티에는 `특성들`이 있다. 특성은 자바스크립트 엔진에서 내부적으로 사용되므로 사용자가 직접 액세스할 수 없다. 그렇기 때문에 속성이 단일 대괄호가 아닌 이중 대괄호로 나열된다. > -> See {{jsxref("Object.defineProperty()")}} to learn more. +> 더 알아보려면 [Object.defineProperty()](/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty)를 확인하자. #### 데이터 속성 (Data property) 키에 값을 연결하고, 아래와 같은 특성들 (attribute) 이 있다. -<table class="standard-table"> - <caption> - Attributes of a data property - </caption> - <thead> - <tr> - <th scope="col">Attribute</th> - <th scope="col">Type</th> - <th scope="col">Description</th> - <th scope="col">Default value</th> - </tr> - </thead> - <tbody> - <tr> - <td>[[Value]]</td> - <td>Any JavaScript type</td> - <td>The value retrieved by a get access of the property.</td> - <td><code>undefined</code></td> - </tr> - <tr> - <td>[[Writable]]</td> - <td>Boolean</td> - <td> - If <code>false</code>, the property's [[Value]] cannot be changed. - </td> - <td><code>false</code></td> - </tr> - <tr> - <td>[[Enumerable]]</td> - <td>Boolean</td> - <td> - <p> - If <code>true</code>, the property will be enumerated in - <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in" - >for...in</a - > - loops.<br />See also - <a - href="/en-US/docs/Web/JavaScript/Enumerability_and_ownership_of_properties" - >Enumerability and ownership of properties</a - >. - </p> - </td> - <td><code>false</code></td> - </tr> - <tr> - <td>[[Configurable]]</td> - <td>Boolean</td> - <td> - If <code>false</code>, the property cannot be deleted, cannot be changed - to an accessor property, and attributes other than [[Value]] and - [[Writable]] cannot be changed. - </td> - <td><code>false</code></td> - </tr> - </tbody> -</table> +|Attribute|Type|Description|Default value| +|---------|----|-----------|-------------| +|[[Value]]|Any<br>JavaScript<br>type|액세스로 검색된 값의 속성을 가져온다.|`undefined`| +|[[Writable]]|Boolean|만약 `false` 라면, 속성의 [[Value]] 를 변경할 수 없다.|`false`| +|[[Enumerable]]|Boolean|만약 `true`이면, 이 속성은 [for...in](/ko/docs/Web/JavaScript/Reference/Statements/for...in)로 루프에서 열거될 수 있다.<br>참고 : [Enumerability and ownership of properties](/ko/docs/Web/JavaScript/Enumerability_and_ownership_of_properties)|`false`| +|[[Configurable]]|Boolean|만약 `false` 라면, 속성을 삭제하거나 접근자 속성으로 변경할 수 없으며, [[Value]] 와 [[Writable]] 특성 외에는 변경할 수 없다.|`false`| | Attribute | Type | Description | | ---------- | ------- | ----------------------------------------------------- | -| Read-only | Boolean | Reversed state of the ES5 [[Writable]] attribute. | -| DontEnum | Boolean | Reversed state of the ES5 [[Enumerable]] attribute. | -| DontDelete | Boolean | Reversed state of the ES5 [[Configurable]] attribute. | +| Read-only | Boolean | ES5의 [[Writable]] 특성으로 변경되었다. | +| DontEnum | Boolean | ES5의 [[Enumerable]] 특성으로 변경되었다. | +| DontDelete | Boolean | ES5의 [[Configurable]] 특성으로 변경되었다. | #### 접근자 속성 (Accessor property) @@ -225,7 +174,7 @@ Symbol 은 ECMAScript 6 에서 추가되었다. Symbol은 **유일**하고 **변 | ---------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------- | | [[Get]] | Function 객체 혹은 `undefined` | 이 속성의 값에 접근할 때마다, 인자 목록 없이 함수가 호출되고, 함수의 반환된 값으로 속성값을 가져온다. 같이보기 [`get`](/ko/docs/Web/JavaScript/Reference/Functions/get). | `undefined` | | [[Set]] | Function 객체 혹은 `undefined` | 이 속성의 값이 바뀌려고 할 때마다, 할당된 값을 인자로 함수가 호출된다. 같이보기 [`set`](/ko/docs/Web/JavaScript/Reference/Functions/set). | `undefined` | -| [[Enumerable]] | Boolean | 만약 `true`이면, 이 속성은, [for...in](/ko/docs/Web/JavaScript/Reference/Statements/for...in)로 루프에서 열거될 수 있다.loops. | `false` | +| [[Enumerable]] | Boolean | 만약 `true`이면, 이 속성은, [for...in](/ko/docs/Web/JavaScript/Reference/Statements/for...in)로 루프에서 열거될 수 있다. | `false` | | [[Configurable]] | Boolean | 만약 `false`이면, 이 속성은 제거될 수 없고, 데이터 속성을 수정할 수 없다. | `false` | ### "Normal" objects, and functions |