+```
+
+```js hidden
+const logElement = document.getElementById("log");
+function log(text) {
+ logElement.innerText += `${text}\n`;
+}
+```
+
```js
-let url = new URL('https://example.com?foo=1&bar=2&foo=3');
-let params = new URLSearchParams(url.search.slice(1));
+const url = new URL("https://example.com?foo=1&bar=2&foo=3");
+const params = new URLSearchParams(url.search);
+log(`Query string (before):\t ${params}`);
+params.delete("foo");
+log(`Query string (after):\t ${params}`);
+```
+
+以下のログは、`foo` という名前を持つパラメータがすべて削除されていることを示しています。
+
+{{EmbedLiveSample('Delete all parameters with specified name', '100%', '50')}}
+
+### 指定した名前と値を持つパラメーターの削除
-// foo パラメーターを削除します。
-params.delete('foo'); // クエリー文字列は現在: 'bar=2'
+この例では、特定の名前と値に一致するクエリーパラメーターを削除する方法を示します。
+
+```html hidden
+
+```
+
+```js hidden
+const logElement = document.getElementById("log");
+function log(text) {
+ logElement.innerText += `${text}\n`;
+}
+```
+
+```js
+const url = new URL("https://example.com?foo=1&bar=2&foo=3&foo=1");
+const params = new URLSearchParams(url.search);
+log(`Query string (before):\t ${params}`);
+params.delete("foo", "1");
+log(`Query string (after):\t ${params}`);
```
-## 仕様
+パラメーターの `name` と `value` の両方が一致するパラメーターがすべて削除されるはずです(上記のように、同じ名前と値を持つパラメーターを 2 つ指定する理由はありません)。
+
+{{EmbedLiveSample('Delete parameters with specified name and value', '100%', '50')}}
+
+ブラウザーが `value` オプションに対応している場合、"after" の文字列は `bar=2&foo=3` となります。
+そうでない場合、結果は前の例 (`bar=2`) と同じになります。
+
+## 仕様書
{{Specifications}}
## ブラウザーの互換性
-{{Compat("api.URLSearchParams.delete")}}
+{{Compat}}
+
+## 関連情報
+
+- [`URLSearchParams` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#url-and-urlsearchparams)
diff --git a/files/ja/web/api/urlsearchparams/entries/index.md b/files/ja/web/api/urlsearchparams/entries/index.md
index eb8ad15c0cbae3..b18590d4f3f400 100644
--- a/files/ja/web/api/urlsearchparams/entries/index.md
+++ b/files/ja/web/api/urlsearchparams/entries/index.md
@@ -1,55 +1,58 @@
---
-title: URLSearchParams.entries()
+title: "URLSearchParams: entries() メソッド"
+short-title: entries()
slug: Web/API/URLSearchParams/entries
+l10n:
+ sourceCommit: 0c8a320b035cf625c1df67713a94ead2e7f3aec6
---
{{APIRef("URL API")}}
-{{domxref("URLSearchParams")}} インターフェイスの **`entries()`** メソッドは、このオブジェクトに含まれるすべてのキー/値のペアを反復処理できる {{jsxref("Iteration_protocols","iterator")}} を返します。 各ペアのキーと値は {{domxref("USVString")}} オブジェクトです。
+**`entries()`** は {{domxref("URLSearchParams")}} インターフェイスのメソッドは、このオブジェクトに含まれるすべてのキー/値のペアを反復処理できる{{jsxref("Iteration_protocols","イテレーター")}}を返します。それぞれのペアのキーと値は文字列です。
{{availableinworkers}}
## 構文
-```
-searchParams.entries();
+```js-nolint
+entries()
```
-### パラメーター
+### 引数
なし。
-### 戻り値
+### 返値
-{{jsxref("Iteration_protocols","iterator")}} を返します。
+{{jsxref("Iteration_protocols","イテレーター")}}を返します。
## 例
```js
// テスト用の URLSearchParams オブジェクトの作成
-var searchParams = new URLSearchParams("key1=value1&key2=value2");
+const searchParams = new URLSearchParams("key1=value1&key2=value2");
// キー/値のペアの表示
-for(var pair of searchParams.entries()) {
- console.log(pair[0]+ ', '+ pair[1]);
+for (const [key, value] of searchParams.entries()) {
+ console.log(`${key}, ${value}`);
}
```
結果は次のとおりです。
-```
+```plain
key1, value1
key2, value2
```
-## 仕様
+## 仕様書
{{Specifications}}
## ブラウザーの互換性
-{{Compat("api.URLSearchParams.entries")}}
+{{Compat}}
-## 関連項目
+## 関連情報
- {{domxref("URL")}} インターフェイス。
diff --git a/files/ja/web/api/urlsearchparams/foreach/index.md b/files/ja/web/api/urlsearchparams/foreach/index.md
index 1fedfcdddd73fe..0ad41ccfad4ea1 100644
--- a/files/ja/web/api/urlsearchparams/foreach/index.md
+++ b/files/ja/web/api/urlsearchparams/foreach/index.md
@@ -1,55 +1,70 @@
---
-title: URLSearchParams.forEach()
+title: "URLSearchParams: forEach() メソッド"
+short-title: forEach()
slug: Web/API/URLSearchParams/forEach
+l10n:
+ sourceCommit: 592f6ec42e54981b6573b58ec0343c9aa8cbbda8
---
{{APIRef("URL API")}}
-{{domxref("URLSearchParams")}} インターフェイスの **`forEach()`** メソッドを使用すると、コールバック関数を介してこのオブジェクトに含まれるすべての値を反復処理できます。
+**`forEach()`** は {{domxref("URLSearchParams")}} インターフェイスのメソッドを使用すると、コールバック関数を介してこのオブジェクトに含まれるすべての値を反復処理できます。
{{availableinworkers}}
## 構文
+```js-nolint
+forEach(callback)
+forEach(callback, thisArg)
```
-searchParams.forEach(callback);
-```
-### パラメーター
+### 引数
+
+- `callback`
+
+ - : それぞれの要素に対して実行される関数で、以下の引数が渡されます。
-- callback
- - : 各パラメーターに対して実行されるコールバック関数。 そのパラメーターとして提供されたパラメーター値を使用します。
+ - `value`
+ - : `URLSearchParams` オブジェクトで現在処理中の項目の値です。
+ - `key`
+ - : `URLSearchParams` オブジェクトで現在処理中の項目のキーです。
+ - `searchParams`
+ - : `forEach()` が呼び出された `URLSearchParams` オブジェクトです。
-### 戻り値
+- `thisArg` {{optional_inline}}
+ - : `callback` の実行中に `this` として使用される値です。
-無効。
+### 返値
+
+なし ({{jsxref("undefined")}})。
## 例
```js
// テスト用の URLSearchParams オブジェクトの作成
-var searchParams = new URLSearchParams("key1=value1&key2=value2");
+const searchParams = new URLSearchParams("key1=value1&key2=value2");
// 値の記録
-searchParams.forEach(function(value, key) {
+searchParams.forEach((value, key) => {
console.log(value, key);
});
```
結果は次のとおりです。
-```
+```plain
value1 key1
value2 key2
```
-## 仕様
+## 仕様書
{{Specifications}}
## ブラウザーの互換性
-{{Compat("api.URLSearchParams.forEach")}}
+{{Compat}}
## 関連項目
diff --git a/files/ja/web/api/urlsearchparams/get/index.md b/files/ja/web/api/urlsearchparams/get/index.md
index a277e4965a3ccb..9f0f29d2179f30 100644
--- a/files/ja/web/api/urlsearchparams/get/index.md
+++ b/files/ja/web/api/urlsearchparams/get/index.md
@@ -1,49 +1,52 @@
---
-title: URLSearchParams.get()
+title: "URLSearchParams: get() メソッド"
+short-title: get()
slug: Web/API/URLSearchParams/get
+l10n:
+ sourceCommit: 0c8a320b035cf625c1df67713a94ead2e7f3aec6
---
{{ApiRef("URL API")}}
-{{domxref("URLSearchParams")}} インターフェースの **`get()`** メソッドは、指定された検索パラメーターに関連付けられた最初の値を返します。
+**`get()`** は {{domxref("URLSearchParams")}} インターフェースのメソッドで、指定された検索パラメーターに関連付けられた最初の値を返します。
{{availableinworkers}}
## 構文
-```
-URLSearchParams.get(name)
+```js-nolint
+get(name)
```
-### パラメーター
+### 引数
-- name
+- `name`
- : 返すパラメーターの名前。
-### 戻り値
+### 返値
-指定された検索パラメーターが見つかった場合、{{domxref("USVString")}}。 それ以外の場合、**`null`**。
+指定された検索パラメーターが見つかった場合は文字列です。それ以外の場合は **`null`** です。
## 例
-ページの URL が `https://example.com/?name=Jonathan&age=18` の場合、次を使用して 'name' および 'age' のパラメーターを解析できます。
+ページの URL が `https://example.com/?name=Jonathan&age=18` の場合、次のように 'name' および 'age' のパラメーターを解釈できます。
-```
-let params = new URLSearchParams(document.location.search.substring(1));
-let name = params.get("name"); // 文字列 "Jonathan" です。
-let age = parseInt(params.get("age"), 10); // 数値 18 です。
+```js
+let params = new URLSearchParams(document.location.search);
+let name = params.get("name"); // 文字列 "Jonathan" です
+let age = parseInt(params.get("age"), 10); // 数値 18 です
```
クエリー文字列に存在しないパラメーターを要求すると、**`null`** が返されます。
-```
+```js
let address = params.get("address"); // null
```
-## 仕様
+## 仕様書
{{Specifications}}
## ブラウザーの互換性
-{{Compat("api.URLSearchParams.get")}}
+{{Compat}}
diff --git a/files/ja/web/api/urlsearchparams/getall/index.md b/files/ja/web/api/urlsearchparams/getall/index.md
index 5f635f1a77b955..902d8816d1fe6d 100644
--- a/files/ja/web/api/urlsearchparams/getall/index.md
+++ b/files/ja/web/api/urlsearchparams/getall/index.md
@@ -1,45 +1,48 @@
---
-title: URLSearchParams.getAll()
+title: "URLSearchParams: getAll() メソッド"
+short-title: getAll()
slug: Web/API/URLSearchParams/getAll
+l10n:
+ sourceCommit: 0c8a320b035cf625c1df67713a94ead2e7f3aec6
---
{{ApiRef("URL API")}}
-{{domxref("URLSearchParams")}} インターフェイスの **`getAll()`** メソッドは、指定された検索パラメーターに関連付けられたすべての値を配列として返します。
+**`getAll()`** は {{domxref("URLSearchParams")}} インターフェイスのメソッドで、指定された検索パラメーターに関連付けられたすべての値を配列として返します。
{{availableinworkers}}
## 構文
-```
-URLSearchParams.getAll(name)
+```js-nolint
+getAll(name)
```
-### パラメーター
+### 引数
-- name
+- `name`
- : 返すパラメーターの名前。
-### 戻り値
+### 返値
-{{domxref("USVString")}} の配列。
+文字列の配列です。
## 例
```js
-let url = new URL('https://example.com?foo=1&bar=2');
-let params = new URLSearchParams(url.search.slice(1));
+let url = new URL("https://example.com?foo=1&bar=2");
+let params = new URLSearchParams(url.search);
-// 2番目の foo パラメーターを追加します。
-params.append('foo', 4);
+// 2 つ目の foo パラメーターを追加します。
+params.append("foo", 4);
-console.log(params.getAll('foo')) // ["1","4"] を表示します。
+console.log(params.getAll("foo")); // ["1","4"] を表示します。
```
-## 仕様
+## 仕様書
{{Specifications}}
## ブラウザーの互換性
-{{Compat("api.URLSearchParams.getAll")}}
+{{Compat}}
diff --git a/files/ja/web/api/urlsearchparams/has/index.md b/files/ja/web/api/urlsearchparams/has/index.md
index 1fb9c83ea7526a..d41956fe6ca514 100644
--- a/files/ja/web/api/urlsearchparams/has/index.md
+++ b/files/ja/web/api/urlsearchparams/has/index.md
@@ -1,42 +1,109 @@
---
-title: URLSearchParams.has()
+title: "URLSearchParams: has() メソッド"
+short-title: has()
slug: Web/API/URLSearchParams/has
+l10n:
+ sourceCommit: 92ae2da158d7462890f6d76d9bd605468bd906eb
---
{{ApiRef("URL API")}}
-{{domxref("URLSearchParams")}} インターフェイスの **`has()`** メソッドは、指定された名前のパラメーターが存在するかどうかを示す {{jsxref("Boolean")}} を返します。
+**`has()`** は {{domxref("URLSearchParams")}} インターフェイスのメソッドは、指定された名前のパラメーターが存在するかどうかを示す論理値を返します。
-{{availableinworkers}}
+パラメーター名とオプションの値は、パラメーターの照合に使用されます。
+パラメーター名のみが指定された場合、このメソッドはクエリー文字列内のいずれかのパラメーターがその名前と一致した場合に `true` を返し、それ以外の場合は `false` を返します。
+パラメーター名と値の両方が指定された場合、あるパラメーターの名前と値の両方が一致した場合に `true` を返します。
+
+{{AvailableInWorkers}}
## 構文
-```
-var hasName = URLSearchParams.has(name)
+```js-nolint
+has(name)
+has(name, value)
```
-### パラメーター
+### 引数
-- name
- - : 検索するパラメーターの名前。
+- `name`
+ - : 照合するパラメーターの名前です。
+- `value`
+ - : パラメーターの値で、指定された名前と一緒に照合されます。
-### 戻り値
+### 返値
-{{jsxref("Boolean")}}。
+論理値です。
## 例
+### 指定された名前のパラメーターをチェック
+
+この例では、クエリー文字列に特定の名前のパラメーターがあるかどうかをチェックする方法を示します。
+
+```html hidden
+
+```
+
+```js hidden
+const logElement = document.getElementById("log");
+function log(text) {
+ logElement.innerText += `${text}\n`;
+}
+```
+
```js
-let url = new URL('https://example.com?foo=1&bar=2');
-let params = new URLSearchParams(url.search.slice(1));
+const url = new URL("https://example.com?foo=1&bar=2&foo=3");
+const params = new URLSearchParams(url.search);
-params.has('bar') === true; // true
+// has() はそのパラメーターがクエリー文字列にある場合に true を返す
+log(`bar?:\t${params.has("bar")}`);
+log(`bark?:\t${params.has("bark")}`);
+log(`foo?:\t${params.has("foo")}`);
```
-## 仕様
+以下のログは、パラメーター `bar`、`bark`、`foo` がクエリー文字列内に存在するかどうかを示しています。
+
+{{EmbedLiveSample('Check for parameter with specified name', '100%', '80')}}
+
+### 指定された名前と値を持つパラメーターをチェック
+
+この例では、クエリー文字列に特定の名前と値の両方が一致するパラメーターがあるかどうかをチェックする方法を示します。
+
+```html hidden
+
+```
+
+```js hidden
+const logElement = document.getElementById("log");
+function log(text) {
+ logElement.innerText += `${text}\n`;
+}
+```
+
+```js
+const url = new URL("https://example.com?foo=1&bar=2&foo=3");
+const params = new URLSearchParams(url.search);
+
+// has() は、一致する名前と値を持つパラメーターがクエリー文字列内にある場合に true を返します。
+log(`bar=1?:\t${params.has("bar", "1")}`);
+log(`bar=2?:\t${params.has("bar", "2")}`);
+log(`foo=4?:\t${params.has("foo", "4")}`);
+```
+
+パラメーター名が `bar` で値が `2` のもののみが一致するので、上記の 2 番目の値のみが `true` になるはずです。
+
+{{EmbedLiveSample('Check for parameter with specified name and value', '100%', '80')}}
+
+ブラウザーが `value` オプションに対応していない場合、このメソッドは名前に一致し、結果はすべて `true` になるはずです。
+
+## 仕様書
{{Specifications}}
## ブラウザーの互換性
-{{Compat("api.URLSearchParams.has")}}
+{{Compat}}
+
+## 関連情報
+
+- [`URLSearchParams` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#url-and-urlsearchparams)
diff --git a/files/ja/web/api/urlsearchparams/index.md b/files/ja/web/api/urlsearchparams/index.md
index c6393684ca8f67..f8f29bc445377e 100644
--- a/files/ja/web/api/urlsearchparams/index.md
+++ b/files/ja/web/api/urlsearchparams/index.md
@@ -1,17 +1,21 @@
---
title: URLSearchParams
slug: Web/API/URLSearchParams
+l10n:
+ sourceCommit: 92ae2da158d7462890f6d76d9bd605468bd906eb
---
{{ApiRef("URL API")}}
**`URLSearchParams`** インターフェイスは URL のクエリー文字列の操作に役立つメソッドを定義します。
-`URLSearchParams` を実装するオブジェクトは 直接 {{jsxref("Statements/for...of", "for...of")}} で使うことができます。例えば次の 2 行は等価です。
+`URLSearchParams` を実装しているオブジェクトは、{{jsxref("Statements/for...of", "for...of")}} 構造の中で直接使用して、キーと値のペアをクエリー文字列に現れるのと同じ順序で反復処理することができます。例えば次の 2 行は等価です。
```js
-for (const [key, value] of mySearchParams) {}
-for (const [key, value] of mySearchParams.entries()) {}
+for (const [key, value] of mySearchParams) {
+}
+for (const [key, value] of mySearchParams.entries()) {
+}
```
{{availableinworkers}}
@@ -21,77 +25,144 @@ for (const [key, value] of mySearchParams.entries()) {}
- {{domxref("URLSearchParams.URLSearchParams", 'URLSearchParams()')}}
- : `URLSearchParams` オブジェクトを返すコンストラクターです。
-## メソッド
+## インスタンスプロパティ
+
+- {{domxref("URLSearchParams.size", 'size')}}
+ - : 検索パラメーター項目の総数を示します。
+
+## インスタンスメソッド
- {{domxref("URLSearchParams.append()")}}
- : 指定されたキーと値のペアを新しい検索パラメーターとして追加します。
- {{domxref("URLSearchParams.delete()")}}
- - : 指定された検索パラメーターとその値を、検索パラメーターのリストからすべて削除します。
+ - : 指定された名前と値に一致する検索パラメーターを、検索パラメーターのリストからすべて削除します。
- {{domxref("URLSearchParams.entries()")}}
- - : このオブジェクトに含まれるすべてのキーと値のペアを列挙するための {{jsxref("Iteration_protocols","iterator")}} を返します。
+ - : このオブジェクトに含まれるすべてのキーと値のペアを、クエリー文字列に現れるのと同じ順序で反復処理することができる{{jsxref("Iteration_protocols","イテレーター")}}を返します。
- {{domxref("URLSearchParams.forEach()")}}
- - : コールバック関数を介して、このオブジェクトに含まれるすべての値を列挙します。
+ - : コールバック関数を介して、このオブジェクトに含まれるすべての値を反復処理します。
- {{domxref("URLSearchParams.get()")}}
- : 指定された検索パラメーターに対応する最初の値を返します。
- {{domxref("URLSearchParams.getAll()")}}
- : 指定された検索パラメーターに対応するすべての値を返します。
- {{domxref("URLSearchParams.has()")}}
- - : 指定された検索パラメーターが存在するかを表す {{jsxref("Boolean")}} 値を返します。
+ - : 指定されたパラメーター、またはパラメーターと値のペアが存在するかどうかを示す論理値を返します。
- {{domxref("URLSearchParams.keys()")}}
- - : このオブジェクトに含まれるすべてのキーと値のペアの**キー**を列挙する {{jsxref("Iteration_protocols", "iterator")}} を返します。
+ - : このオブジェクトに含まれるすべてのキーと値のペアのキーを反復処理する {{jsxref("Iteration_protocols", "イテレーター")}}を返します。
- {{domxref("URLSearchParams.set()")}}
- - : 指定された検索パラメーターに対応する値を設定します。複数の値が存在していた場合、それらは削除されます。
+ - : 指定された検索パラメーターに結び付けられた値を指定された値に設定します。複数の値が存在していた場合、他のものは削除されます。
- {{domxref("URLSearchParams.sort()")}}
- : すべてのキーと値のペアを、キーを基準にソートします。
- {{domxref("URLSearchParams.toString()")}}
- : URL で使用するのに適したクエリー文字列を返します。
- {{domxref("URLSearchParams.values()")}}
- - : このオブジェクトに含まれるすべてのキーと値のペアの**値**を列挙する {{jsxref("Iteration_protocols", "iterator")}} を返します。
+ - : このオブジェクトに含まれるすべてのキーと値のペアの値を反復処理する {{jsxref("Iteration_protocols", "イテレーター")}}を返します。
## 例
```js
-var paramsString = "q=URLUtils.searchParams&topic=api";
-var searchParams = new URLSearchParams(paramsString);
+const paramsString = "q=URLUtils.searchParams&topic=api";
+const searchParams = new URLSearchParams(paramsString);
-// 検索パラメーターを列挙する
-for (let p of searchParams) {
+// 検索パラメーターの列挙
+for (const p of searchParams) {
console.log(p);
}
-searchParams.has("topic") === true; // true
-searchParams.get("topic") === "api"; // true
-searchParams.getAll("topic"); // ["api"]
-searchParams.get("foo") === null; // true
-searchParams.append("topic", "webdev");
-searchParams.toString(); // "q=URLUtils.searchParams&topic=api&topic=webdev"
-searchParams.set("topic", "More webdev");
-searchParams.toString(); // "q=URLUtils.searchParams&topic=More+webdev"
-searchParams.delete("topic");
-searchParams.toString(); // "q=URLUtils.searchParams"
+console.log(searchParams.has("topic")); // true
+console.log(searchParams.has("topic", "fish")); // false
+console.log(searchParams.get("topic") === "api"); // true
+console.log(searchParams.getAll("topic")); // ["api"]
+console.log(searchParams.get("foo") === null); // true
+console.log(searchParams.append("topic", "webdev"));
+console.log(searchParams.toString()); // "q=URLUtils.searchParams&topic=api&topic=webdev"
+console.log(searchParams.set("topic", "More webdev"));
+console.log(searchParams.toString()); // "q=URLUtils.searchParams&topic=More+webdev"
+console.log(searchParams.delete("topic"));
+console.log(searchParams.toString()); // "q=URLUtils.searchParams"
+```
+
+```js
+// 検索パラメーターはオブジェクトにすることもできる
+const paramsObj = { foo: "bar", baz: "bar" };
+const searchParams = new URLSearchParams(paramsObj);
+
+console.log(searchParams.toString()); // "foo=bar&baz=bar"
+console.log(searchParams.has("foo")); // true
+console.log(searchParams.get("foo")); // "bar"
```
-### コラム
+### 重複する検索パラメーター
-`URLSearchParams` コンストラクターは完全な URL をパースしません。ただし、先頭に `?` が存在すれば、読み飛ばします。
+```js
+const paramStr = "foo=bar&foo=baz";
+const searchParams = new URLSearchParams(paramStr);
+
+console.log(searchParams.toString()); // "foo=bar&foo=baz"
+console.log(searchParams.has("foo")); // true
+console.log(searchParams.get("foo")); // bar (最初の値のみを返す)
+console.log(searchParams.getAll("foo")); // ["bar", "baz"]
+```
+
+### URL の解釈なし
+
+`URLSearchParams` コンストラクターは URL 全体を解釈しません。しかし、文字列から最初の `?` 以降が存在すれば、削除します。
```js
-var paramsString1 = "http://example.com/search?query=%40";
-var searchParams1 = new URLSearchParams(paramsString1);
+const paramsString1 = "http://example.com/search?query=%40";
+const searchParams1 = new URLSearchParams(paramsString1);
+
+console.log(searchParams1.has("query")); // false
+console.log(searchParams1.has("http://example.com/search?query")); // true
-searchParams1.has("query"); // false
-searchParams1.has("http://example.com/search?query"); // true
+console.log(searchParams1.get("query")); // null
+console.log(searchParams1.get("http://example.com/search?query")); // "@" (decodeURIComponent('%40') と同じ)
-searchParams1.get("query"); // null
-searchParams1.get("http://example.com/search?query"); // "@" (equivalent to decodeURIComponent('%40'))
+const paramsString2 = "?query=value";
+const searchParams2 = new URLSearchParams(paramsString2);
+console.log(searchParams2.has("query")); // true
+
+const url = new URL("http://example.com/search?query=%40");
+const searchParams3 = new URLSearchParams(url.search);
+console.log(searchParams3.has("query")); // true
+```
-var paramsString2 = "?query=value";
-var searchParams2 = new URLSearchParams(paramsString2);
-searchParams2.has("query"); // true
+### プラス記号の温存
-var url = new URL("http://example.com/search?query=%40");
-var searchParams3 = new URLSearchParams(url.search);
-searchParams3.has("query") // true
+`URLSearchParams` コンストラクターはプラス記号 (`+`) をスペースとして解釈します。以下の例では、[16 進エスケープシーケンス](/ja/docs/Web/JavaScript/Reference/Lexical_grammar#16_進エスケープシーケンス) を使って、URL 検索パラメーターに格納する必要のあるバイナリデータ(各バイトが情報を持つ)を含む文字列を模倣しています。`btoa()` でエンコードされた文字列は `+` を含んでおり、 `URLSearchParams` では温存されないことに注意してください。
+
+```js
+const rawData = "\x13à\x17@\x1F\x80";
+const base64Data = btoa(rawData); // 'E+AXQB+A'
+
+const searchParams = new URLSearchParams(`bin=${base64Data}`); // 'bin=E+AXQB+A'
+const binQuery = searchParams.get("bin"); // 'E AXQB A', '+' はスペースに置き換えられる
+
+console.log(atob(binQuery) === rawData); // false
+```
+
+You can avoid this by encoding the data with the {{jsxref("encodeURIComponent", "encodeURIComponent()")}}.
+
+```js
+const rawData = "\x13à\x17@\x1F\x80";
+const base64Data = btoa(rawData); // 'E+AXQB+A'
+const encodedBase64Data = encodeURIComponent(base64Data); // 'E%2BAXQB%2BA'
+
+const searchParams = new URLSearchParams(`bin=${encodedBase64Data}`); // 'bin=E%2BAXQB%2BA'
+const binQuery = searchParams.get("bin"); // 'E+AXQB+A'
+
+console.log(atob(binQuery) === rawData); // true
+```
+
+### 空の値と値なし
+
+`URLSearchParams` は `=` の後に何もないパラメーターと、`=` もないパラメーターの区別をしません。
+
+```js
+const emptyVal = new URLSearchParams("foo=&bar=baz");
+console.log(emptyVal.get("foo")); // returns ''
+const noEquals = new URLSearchParams("foo&bar=baz");
+console.log(noEquals.get("foo")); // also returns ''
+console.log(noEquals.toString()); // 'foo=&bar=baz'
```
## 仕様書
@@ -100,9 +171,10 @@ searchParams3.has("query") // true
## ブラウザーの互換性
-{{Compat("api.URLSearchParams")}}
+{{Compat}}
## 関連情報
+- [`URLSearchParams` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#url-and-urlsearchparams)
- {{domxref("URL")}} インターフェイス。
-- [Google Developers: URLSearchParams を使用した簡単な URL 操作](https://developers.google.com/web/updates/2016/01/urlsearchparams?hl=en) (英語)
+- [Google Developers: URLSearchParams を使用した簡単な URL 操作](https://developer.chrome.com/blog/urlsearchparams/) (英語)
diff --git a/files/ja/web/api/urlsearchparams/keys/index.md b/files/ja/web/api/urlsearchparams/keys/index.md
index 05bbfd2fc70b81..085f633303e61d 100644
--- a/files/ja/web/api/urlsearchparams/keys/index.md
+++ b/files/ja/web/api/urlsearchparams/keys/index.md
@@ -1,55 +1,58 @@
---
-title: URLSearchParams.keys()
+title: "URLSearchParams: keys() メソッド"
+short-title: keys()
slug: Web/API/URLSearchParams/keys
+l10n:
+ sourceCommit: 592f6ec42e54981b6573b58ec0343c9aa8cbbda8
---
{{APIRef("URL API")}}
-{{domxref("URLSearchParams")}} インターフェイスの **`keys()`** メソッドは、このオブジェクトに含まれるすべてのキーを反復処理できる {{jsxref("Iteration_protocols",'iterator')}} を返します。 キーは {{domxref("USVString")}} オブジェクトです。
+**`keys()`** は {{domxref("URLSearchParams")}} インターフェイスのメソッドで、このオブジェクトに含まれるすべてのキーを反復処理できる{{jsxref("Iteration_protocols",'イテレーター')}}を返します。 キーは文字列です。
-{{availableinworkers}}
+> **メモ:** このメソッドは[ウェブワーカー](/ja/docs/Web/API/Web_Workers_API)で利用できます。
## 構文
-```
-searchParams.keys();
+```js-nolint
+keys()
```
-### パラメーター
+### 引数
なし。
-### 戻り値
+### 返値
-{{jsxref("Iteration_protocols","iterator")}} を返します。
+{{jsxref("Iteration_protocols","イテレーター")}}を返します。
## 例
```js
// テスト用の URLSearchParams オブジェクトの作成
-var searchParams = new URLSearchParams("key1=value1&key2=value2");
+const searchParams = new URLSearchParams("key1=value1&key2=value2");
// キーの表示
-for(var key of searchParams.keys()) {
+for (const key of searchParams.keys()) {
console.log(key);
}
```
結果は次のとおりです。
-```
+```plain
key1
key2
```
-## 仕様
+## 仕様書
{{Specifications}}
## ブラウザーの互換性
-{{Compat("api.URLSearchParams.keys")}}
+{{Compat}}
## 関連項目
-- {{domxref("URL")}} インターフェイス。
+- {{domxref("URL")}} インターフェイス
diff --git a/files/ja/web/api/urlsearchparams/set/index.md b/files/ja/web/api/urlsearchparams/set/index.md
index 1a9b2f0cc3fc30..8c07626a88c96d 100644
--- a/files/ja/web/api/urlsearchparams/set/index.md
+++ b/files/ja/web/api/urlsearchparams/set/index.md
@@ -1,102 +1,49 @@
---
-title: URLSearchParams.set()
+title: "URLSearchParams: set() メソッド"
+short-title: set()
slug: Web/API/URLSearchParams/set
+l10n:
+ sourceCommit: 0c8a320b035cf625c1df67713a94ead2e7f3aec6
---
{{ApiRef("URL API")}}
-{{domxref("URLSearchParams")}} インターフェイスの **`set()`** メソッドは、指定された検索パラメーターに関連付けられた値を指定された値に設定します。 一致する値が複数ある場合、このメソッドは他の値を削除します。 検索パラメーターが存在しない場合、このメソッドはそれを作成します。
+**`set()`** は {{domxref("URLSearchParams")}} インターフェイスのメソッドで、指定された検索パラメーターに関連付けられた値を指定された値に設定します。一致する値が複数ある場合、このメソッドは他の値を削除します。 検索パラメーターが存在しない場合、このメソッドはそれを作成します。
{{availableinworkers}}
## 構文
-```
-URLSearchParams.set(name, value)
+```js-nolint
+set(name, value)
```
-### パラメーター
+### 引数
-- name
+- `name`
- : 設定するパラメーターの名前。
-- value
+- `value`
- : 設定するパラメーターの値。
-### 戻り値
+### 返値
-無効。
+なし ({{jsxref("undefined")}})。
## 例
-次の簡単な例から始めましょう。
-
```js
-let url = new URL('https://example.com?foo=1&bar=2');
-let params = new URLSearchParams(url.search.slice(1));
-
-// 3番目のパラメーターを追加します。
-params.set('baz', 3);
-```
+let url = new URL("https://example.com?foo=1&bar=2");
+let params = new URLSearchParams(url.search);
-以下は、{{domxref("URL")}} を作成し、いくつかの検索パラメーターを設定する方法を示す実際の例です。
-
-[スクラッチパッド](/ja/docs/Tools/Scratchpad)に例をコピーして貼り付けることができます。
-
-- 41 行目:コンソールへの (debug による) 検索パラメーターのダンプを停止するにはコメントにします。
-- 43 行目:生成されたオブジェクトとその文字列表現をコンソールに (info で) ダンプします。
-- 44 行目:生成された URL で新しいウィンドウ/タブを自動的に開こうとします(コメントが解除されている場合)。
-
-```js
-'use strict'
-
-function genURL(rExp, aText, bDebug=false){
- let theURL
-
- theURL= new URL('https://regexr.com')
- theURL.searchParams.set( 'expression', rExp.toString() )
- theURL.searchParams.set( 'tool', 'replace' )
- theURL.searchParams.set( 'input', '\u2911\u20dc' )// ⤑⃜
- theURL.searchParams.set( 'text', aText.join('\n') )
- if( bDebug ){
- // キー/値のペアを表示
- for(var pair of theURL.searchParams.entries()) {
- console.debug(pair[0] + ' = \'' + pair[1] + '\'');
- }
- console.debug(theURL)
- }
- return theURL
-}
-var url = genURL(
- /(^\s*\/\/|\s*[^:]\/\/).*\s*$|\s*\/\*(.|\n)+?\*\/\s*$/gm // 単一行/複数行のコメント
- // /(^\s*\/\/.*|\s*[^:]\/\/.*)/g // 単一行のコメント
- ,[
- "これらは動作します:",
- "",
- "// eslint-disable-next-line no-unused-vars",
- "lockPref( 'keyword.URL',\t\t'https://duckduckgo.com/html/?q=!+' )\t// test",
- "/*",
- " * bla bla ",
- "*/",
- "",
- "/* bla bla */",
- "",
- "// bla bla ",
- "",
- "これらは動作しません:",
- "console.log(\"http://foo.co.uk/\")",
- "var url = \"http://regexr.com/foo.html?q=bar\"",
- "alert(\"https://mediatemple.net\")",
- ]
- , true
-)
-console.info( url, url.toString() )
-// window.open( url, 'regex_site' )
+// 3 つ目のパラメーターを追加
+params.set("baz", 3);
+params.toString(); // "foo=1&bar=2&baz=3"
```
-## 仕様
+## 仕様書
{{Specifications}}
## ブラウザーの互換性
-{{Compat("api.URLSearchParams.set")}}
+{{Compat}}
diff --git a/files/ja/web/api/urlsearchparams/size/index.md b/files/ja/web/api/urlsearchparams/size/index.md
new file mode 100644
index 00000000000000..389441cc2e5b37
--- /dev/null
+++ b/files/ja/web/api/urlsearchparams/size/index.md
@@ -0,0 +1,57 @@
+---
+title: "URLSearchParams: size プロパティ"
+short-title: size
+slug: Web/API/URLSearchParams/size
+l10n:
+ sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc
+---
+
+{{APIRef("URL API")}}
+
+**`URLSearchParams.size`** は読み取り専用のプロパティで、検索パラメーターの項目の総数を示します。
+
+## 値
+
+数値で、{{domxref("URLSearchParams")}} オブジェクト内の検索パラメーターの項目の総数を示します。
+
+## 例
+
+### 検索パラメーターの項目数の取得
+
+検索パラメーターの項目の総数を取得するには、次のようにします。
+
+```js
+const searchParams = new URLSearchParams("c=4&a=2&b=3&a=1");
+searchParams.size; // 4
+```
+
+`a` 引数が 2 回与えられますが、 `size` は 3 ではなく、与えられたすべての項目の数 (4) を返すことに注意してください。固有のキーの数を取得するには、{{jsxref("Set")}} などを使用してください。
+
+```js
+[...new Set(searchParams.keys())].length; // 3
+```
+
+### 検索パラメーターが存在するかどうかをチェック
+
+size` プロパティは、検索パラメーターがあるかどうかをチェックするのに便利です。
+
+```js
+const url = new URL("https://example.com?foo=1&bar=2");
+
+if (url.searchParams.size) {
+ console.log("URL has search parameters!");
+}
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{domxref("URL.searchParams")}}
+- [`URLSearchParams` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#url-and-urlsearchparams)
diff --git a/files/ja/web/api/urlsearchparams/sort/index.md b/files/ja/web/api/urlsearchparams/sort/index.md
index 4e43fc6a2abd83..f9bd86be3235ce 100644
--- a/files/ja/web/api/urlsearchparams/sort/index.md
+++ b/files/ja/web/api/urlsearchparams/sort/index.md
@@ -1,33 +1,36 @@
---
-title: URLSearchParams.sort()
+title: "URLSearchParams: sort() メソッド"
+short-title: sort()
slug: Web/API/URLSearchParams/sort
+l10n:
+ sourceCommit: 0c8a320b035cf625c1df67713a94ead2e7f3aec6
---
{{APIRef("URL API")}}
-**`URLSearchParams.sort()`** メソッドは、このオブジェクトに含まれるすべてのキー/値のペアをその場でソートし、`undefined` を返します。 ソート順は、キーの Unicode コードポイントに従っています。 このメソッドは、安定したソートアルゴリズムを使用します(つまり、等しいキーを持つキー/値のペア間の相対的な順序が保持されます)。
+**`URLSearchParams.sort()`** メソッドは、このオブジェクトに含まれるすべてのキー/値のペアをその場でソートし、`undefined` を返します。 ソート順は、キーの Unicode コードポイントに従います。 このメソッドは、安定したソートアルゴリズムを使用します(つまり、等しいキーを持つキー/値のペア間の相対的な順序が保持されます)。
{{availableinworkers}}
## 構文
-```
-searchParams.sort();
+```js-nolint
+sort()
```
-### パラメーター
+### 引数
なし。
-### 戻り値
+### 返値
-`undefined`。
+なし ({{jsxref("undefined")}})。
## 例
```js
// テスト用の URLSearchParams オブジェクトの作成
-var searchParams = new URLSearchParams("c=4&a=2&b=3&a=1");
+const searchParams = new URLSearchParams("c=4&a=2&b=3&a=1");
// キー/値のペアのソート
searchParams.sort();
@@ -38,14 +41,14 @@ console.log(searchParams.toString());
結果は次のとおりです。
-```
+```plain
a=2&a=1&b=3&c=4
```
-## 仕様
+## 仕様書
{{Specifications}}
## ブラウザーの互換性
-{{Compat("api.URLSearchParams.sort")}}
+{{Compat}}
diff --git a/files/ja/web/api/urlsearchparams/tostring/index.md b/files/ja/web/api/urlsearchparams/tostring/index.md
index 25048fa60ce1ce..a5e73fea3f0135 100644
--- a/files/ja/web/api/urlsearchparams/tostring/index.md
+++ b/files/ja/web/api/urlsearchparams/tostring/index.md
@@ -1,58 +1,53 @@
---
-title: URLSearchParams.toString()
+title: "URLSearchParams: toString() メソッド"
+short-title: toString()
slug: Web/API/URLSearchParams/toString
+l10n:
+ sourceCommit: 0c8a320b035cf625c1df67713a94ead2e7f3aec6
---
{{ApiRef("URL API")}}
-{{domxref("URLSearchParams")}} インターフェイスの **`toString()`** メソッドは、URL での使用に適したクエリー文字列を返します。
+**`toString()`** は {{domxref("URLSearchParams")}} インターフェイスのメソッドで、URL での使用に適したクエリー文字列を返します。
-> **メモ:** このメソッドは、疑問符のないクエリー文字列を返します。 これは、それを含む [`window.location.search`](/ja/docs/Web/API/HTMLHyperlinkElementUtils/search) とは異なります。
+> **メモ:** このメソッドは、疑問符のないクエリー文字列を返します。これは、それを含む [window.location.search](/ja/docs/Web/API/HTMLAnchorElement/search) とは異なります。
{{availableinworkers}}
## 構文
-```
-URLSearchParams.toString()
+```js-nolint
+toString()
```
-### パラメーター
+### 引数
なし。
-### 戻り値
+### 返値
-疑問符のない {{domxref("DOMString")}}。
+疑問符を除いた文字列です。(検索パラメーターが設定されていない場合は空文字列を返します。)
## 例
```js
-let url = new URL('https://example.com?foo=1&bar=2');
-let params = new URLSearchParams(url.search.slice(1));
+const url = new URL("https://example.com?foo=1&bar=2");
+const params = new URLSearchParams(url.search);
// 2番目の foo パラメーターの追加
-params.append('foo', 4);
-console.log(params.toString());
-// 'foo=1&bar=2&foo=4' を表示
-
-// メモ: params は直接作成することもできます
-let url = new URL('https://example.com?foo=1&bar=2');
-let params = url.searchParams;
-
-// または、さらに単純に
-let params = new URLSearchParams('foo=1&bar=2');
+params.append("foo", 4);
+console.log(params.toString()); // 'foo=1&bar=2&foo=4' と表示
```
-## 仕様
+## 仕様書
{{Specifications}}
## ブラウザーの互換性
-{{Compat("api.URLSearchParams.toString")}}
+{{Compat}}
## 関連項目
- {{domxref("URL")}} インターフェイス。
-- [Google Developers: URLSearchParams を使用した簡単な URL 操作](https://developers.google.com/web/updates/2016/01/urlsearchparams?hl=en)(英語)
+- [Google Developers: URLSearchParams を使用した簡単な URL 操作](https://developer.chrome.com/blog/urlsearchparams/)(英語)
diff --git a/files/ja/web/api/urlsearchparams/urlsearchparams/index.md b/files/ja/web/api/urlsearchparams/urlsearchparams/index.md
index de5f0e7c4fa94f..652ae1ae3b20b0 100644
--- a/files/ja/web/api/urlsearchparams/urlsearchparams/index.md
+++ b/files/ja/web/api/urlsearchparams/urlsearchparams/index.md
@@ -1,8 +1,9 @@
---
-title: URLSearchParams()
+title: "URLSearchParams: URLSearchParams() コンストラクター"
+short-title: URLSearchParams()
slug: Web/API/URLSearchParams/URLSearchParams
l10n:
- sourceCommit: 670c6c5b8d75ed18722a10aecf657b7f41ecd78e
+ sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc
---
{{ApiRef("URL API")}}
@@ -18,15 +19,15 @@ new URLSearchParams()
new URLSearchParams(options)
```
-### パラメーター
+### 引数
- `options` {{optional_inline}}
- : 以下のいずれか。
- 文字列。先頭の文字 `'?'` は無視され、`application/x-www-form-urlencoded` 形式としてパースされます。
- - 名前を表す文字列と値を表す文字列のペアのリテラル列、もしくはそのような文字列のペアの列を生成する[イテレーター](/ja/docs/Web/JavaScript/Guide/Iterators_and_Generators#%E3%82%A4%E3%83%86%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC)を持つ任意のオブジェクト (たとえば {{domxref("FormData")}} のオブジェクト)。なお、{{domxref("File")}} のエントリーは (`application/x-www-form-urlencoded` 形式で期待される) ファイル名ではなく `[object File]` としてシリアライズされます。
+ - 名前を表す文字列と値を表す文字列のペアのリテラル列、もしくはそのような文字列のペアの列を生成する[イテレーター](/ja/docs/Web/JavaScript/Guide/Iterators_and_generators#%E3%82%A4%E3%83%86%E3%83%AC%E3%83%BC%E3%82%BF%E3%83%BC)を持つ任意のオブジェクト(たとえば {{domxref("FormData")}} のオブジェクト)。なお、{{domxref("File")}} のエントリーは(`application/x-www-form-urlencoded` 形式で期待される)ファイル名ではなく `[object File]` としてシリアライズされます。
- 文字列のキーと文字列の値からなるレコード。なお、ネストには対応していません。
-### 戻り値
+### 返値
{{domxref("URLSearchParams")}} のインスタンスです。
@@ -36,27 +37,30 @@ new URLSearchParams(options)
```js
// url.search からパラメーターを取得し、コンストラクターに渡す
-const url = new URL('https://example.com?foo=1&bar=2');
+const url = new URL("https://example.com?foo=1&bar=2");
const params1 = new URLSearchParams(url.search);
// URL オブジェクトから直接 URLSearchParams オブジェクトを取得する
-const params1a = url.searchParams
+const params1a = url.searchParams;
// 文字列リテラルを渡す
const params2 = new URLSearchParams("foo=1&bar=2");
const params2a = new URLSearchParams("?foo=1&bar=2");
// ペアの列を渡す
-const params3 = new URLSearchParams([["foo", "1"], ["bar", "2"]]);
+const params3 = new URLSearchParams([
+ ["foo", "1"],
+ ["bar", "2"],
+]);
// レコードを渡す
-const params4 = new URLSearchParams({"foo": "1", "bar": "2"});
+const params4 = new URLSearchParams({ foo: "1", bar: "2" });
```
この例では、検索パラメーターを持つ既存の URL から、検索パラメーターを表すオブジェクトを用い、新しい URL を構築する方法を示します。
```js
-const url = new URL('https://example.com/?a=hello&b=world');
+const url = new URL("https://example.com/?a=hello&b=world");
console.log(url.href);
// https://example.com/?a=hello&b=world
@@ -65,14 +69,14 @@ console.log(url.origin);
// https://example.com
const add_params = {
- c: 'a',
- d: new String(2),
- e: false.toString(),
-}
+ c: "a",
+ d: new String(2),
+ e: false.toString(),
+};
const new_params = new URLSearchParams([
- ...Array.from(url.searchParams.entries()), // [["a","hello"],["b","world"]]
- ...Object.entries(add_params), // [["c","a"],["d","2"],["e","false"]]
+ ...Array.from(url.searchParams.entries()), // [["a","hello"],["b","world"]]
+ ...Object.entries(add_params), // [["c","a"],["d","2"],["e","false"]]
]).toString();
console.log(new_params);
// a=hello&b=world&c=a&d=2&e=false
@@ -82,18 +86,17 @@ const new_url = new URL(`${url.origin}${url.pathname}?${new_params}`);
console.log(new_url.href);
// https://example.com/?a=hello&b=world&c=a&d=2&e=false
-
// (URL, Record) を受け取る関数の形式で
const addSearchParams = (url, params = {}) =>
new URL(
`${url.origin}${url.pathname}?${new URLSearchParams([
...Array.from(url.searchParams.entries()),
...Object.entries(params),
- ])}`
+ ])}`,
);
```
-## 仕様
+## 仕様書
{{Specifications}}
diff --git a/files/ja/web/api/urlsearchparams/values/index.md b/files/ja/web/api/urlsearchparams/values/index.md
index 54ca996b431ef2..b3e2880bbc5da2 100644
--- a/files/ja/web/api/urlsearchparams/values/index.md
+++ b/files/ja/web/api/urlsearchparams/values/index.md
@@ -1,55 +1,72 @@
---
-title: URLSearchParams.values()
+title: "URLSearchParams: values() メソッド"
+short-title: values()
slug: Web/API/URLSearchParams/values
+l10n:
+ sourceCommit: 592f6ec42e54981b6573b58ec0343c9aa8cbbda8
---
{{APIRef("URL API")}}
-{{domxref("URLsearchParams")}} インターフェースの **`values()`** メソッドは、このオブジェクトに含まれるすべての値を反復処理できる {{jsxref("Iteration_protocols",'iterator')}} を返します。 値は {{domxref("USVString")}} オブジェクトです。
+**`values()`** は {{domxref("URLsearchParams")}} インターフェイスのメソッドで、このオブジェクトに含まれるすべての値を反復処理できる{{jsxref("Iteration_protocols",'イテレーター')}}を返します。 値は文字列です。
{{availableinworkers}}
## 構文
-```
-searchParams.values();
+```js-nolint
+values()
```
-### パラメーター
+### 引数
なし。
-### 戻り値
+### 返値
-{{jsxref("Iteration_protocols","iterator")}} を返します。
+{{jsxref("Iteration_protocols","イテレーター")}}を返します。
## 例
+次の例では、`URLSearchParams` コンストラクターに URL 検索文字列を渡し、`values()` が返すイテレーターを使って値をコンソールに表示します。
+
```js
-// テスト用の URLSearchParams オブジェクトの作成
-var searchParams = new URLSearchParams("key1=value1&key2=value2");
+const searchParams = new URLSearchParams("key1=value1&key2=value2");
-// 値の表示
-for(var value of searchParams.values()) {
+for (const value of searchParams.values()) {
console.log(value);
}
```
結果は次のとおりです。
-```
+```plain
value1
value2
```
-## 仕様
+この例も上記とほぼ同じですが、先にイテレーターを配列にキャストしています。
+
+```js
+const searchParams = new URLSearchParams("key1=value1&key2=value2");
+
+console.log(Array.from(searchParams.values()));
+```
+
+結果は次の通りです。
+
+```plain
+['value1', 'value2']
+```
+
+## 仕様書
{{Specifications}}
## ブラウザーの互換性
-{{Compat("api.URLSearchParams.values")}}
+{{Compat}}
-## 関連項目
+## 関連情報
-- {{domxref("URL")}} インターフェイス。
+- {{domxref("URL")}} インターフェイス
diff --git a/files/ko/_redirects.txt b/files/ko/_redirects.txt
index b72a975e2958ed..2a6de35bd180fd 100644
--- a/files/ko/_redirects.txt
+++ b/files/ko/_redirects.txt
@@ -12,10 +12,8 @@
/ko/docs/About_the_Document_Object_Model /ko/docs/Web/API/Document_Object_Model
/ko/docs/Accessibility /ko/docs/Web/Accessibility
/ko/docs/Accessibility/ARIA /ko/docs/Web/Accessibility/ARIA
-/ko/docs/Accessibility/An_overview_of_accessible_web_applications_and_widgets /ko/docs/Web/Accessibility/An_overview_of_accessible_web_applications_and_widgets
/ko/docs/Alternative_style_sheets /ko/docs/Web/CSS/Alternative_style_sheets
/ko/docs/Apps/Progressive /ko/docs/Web/Progressive_web_apps
-/ko/docs/Apps/Progressive/Add_to_home_screen /ko/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable
/ko/docs/Apps/Progressive/App_structure /ko/docs/Web/Progressive_web_apps/Tutorials/js13kGames/App_structure
/ko/docs/Apps/Progressive/Installable_PWAs /ko/docs/Web/Progressive_web_apps/Tutorials/js13kGames/Installable_PWAs
/ko/docs/Apps/Progressive/Offline_Service_workers /ko/docs/Web/Progressive_web_apps/Tutorials/js13kGames/Offline_Service_workers
@@ -333,7 +331,6 @@
/ko/docs/Learn/접근성 /ko/docs/Learn/Accessibility
/ko/docs/Learn/접근성/HTML /ko/docs/Learn/Accessibility/HTML
/ko/docs/Learn/접근성/What_is_accessibility /ko/docs/Learn/Accessibility/What_is_accessibility
-/ko/docs/Learn/접근성/모바일 /ko/docs/Learn/Accessibility/Mobile
/ko/docs/Localization /ko/docs/Glossary/Localization
/ko/docs/MDN/About /ko/docs/MDN/Writing_guidelines
/ko/docs/MDN/Contribute/Content/Best_practices /ko/docs/MDN/Writing_guidelines/Experimental_deprecated_obsolete
@@ -818,7 +815,6 @@
/ko/docs/Web/Media/Formats/코덱파라미터 /ko/docs/Web/Media/Formats/codecs_parameter
/ko/docs/Web/Performance/브라우저는_어떻게_동작하는가 /ko/docs/Web/Performance/How_browsers_work
/ko/docs/Web/Performance/중요_렌더링_경로 /ko/docs/Web/Performance/Critical_rendering_path
-/ko/docs/Web/Progressive_web_apps/Add_to_home_screen /ko/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable
/ko/docs/Web/Progressive_web_apps/App_structure /ko/docs/Web/Progressive_web_apps/Tutorials/js13kGames/App_structure
/ko/docs/Web/Progressive_web_apps/Installable_PWAs /ko/docs/Web/Progressive_web_apps/Tutorials/js13kGames/Installable_PWAs
/ko/docs/Web/Progressive_web_apps/Introduction /ko/docs/Web/Progressive_web_apps/Tutorials/js13kGames
diff --git a/files/ko/_wikihistory.json b/files/ko/_wikihistory.json
index c683b4d182a65e..4e635cb761e4e1 100644
--- a/files/ko/_wikihistory.json
+++ b/files/ko/_wikihistory.json
@@ -735,10 +735,6 @@
"modified": "2020-07-16T22:40:12.947Z",
"contributors": ["dev-dongwon"]
},
- "Learn/Accessibility/Mobile": {
- "modified": "2020-07-16T22:40:31.872Z",
- "contributors": ["seunghun"]
- },
"Learn/Accessibility/What_is_accessibility": {
"modified": "2020-07-16T22:40:05.805Z",
"contributors": ["seunghun"]
@@ -4688,26 +4684,10 @@
"modified": "2020-01-12T10:16:30.044Z",
"contributors": ["alattalatta", "young-gratia", "teoli", "Cho.Eun"]
},
- "Web/Accessibility/ARIA/ARIA_Live_Regions": {
- "modified": "2020-12-05T03:30:43.763Z",
- "contributors": ["movegun1027"]
- },
- "Web/Accessibility/ARIA/ARIA_Techniques": {
- "modified": "2020-01-12T02:25:07.876Z",
- "contributors": ["alattalatta", "dcondrey"]
- },
"Web/Accessibility/ARIA/Roles": {
"modified": "2019-03-18T21:24:18.888Z",
"contributors": ["estelle"]
},
- "Web/Accessibility/ARIA/Roles/dialog_role": {
- "modified": "2019-03-18T21:24:31.941Z",
- "contributors": ["seokju-na"]
- },
- "Web/Accessibility/An_overview_of_accessible_web_applications_and_widgets": {
- "modified": "2019-03-23T23:21:28.496Z",
- "contributors": ["dotorify", "teoli", "Cho.Eun"]
- },
"Web/Accessibility/Mobile_accessibility_checklist": {
"modified": "2019-09-08T04:58:59.841Z",
"contributors": ["seunghun"]
@@ -4893,10 +4873,6 @@
"modified": "2020-10-15T21:50:30.795Z",
"contributors": ["alattalatta", "young-gratia"]
},
- "Web/CSS/CSS_Selectors": {
- "modified": "2020-08-22T11:28:21.089Z",
- "contributors": ["alattalatta"]
- },
"Web/CSS/CSS_Types": {
"modified": "2020-08-06T04:37:09.952Z",
"contributors": ["alattalatta"]
@@ -5197,6 +5173,10 @@
"modified": "2019-04-14T23:39:58.448Z",
"contributors": ["alattalatta", "Netaras"]
},
+ "Web/CSS/CSS_selectors": {
+ "modified": "2020-08-22T11:28:21.089Z",
+ "contributors": ["alattalatta"]
+ },
"Web/CSS/CSS_shapes": {
"modified": "2019-04-25T10:46:18.309Z",
"contributors": ["alattalatta", "seunghun", "Netaras"]
@@ -6102,22 +6082,10 @@
"Web/Guide/Audio_and_video_delivery": {
"modified": "2019-04-17T05:03:01.108Z"
},
- "Web/Guide/Audio_and_video_delivery/Adding_captions_and_subtitles_to_HTML5_video": {
- "modified": "2019-05-13T05:46:53.607Z",
- "contributors": ["hoony"]
- },
- "Web/Guide/CSS/Block_formatting_context": {
- "modified": "2020-08-05T00:58:44.120Z",
- "contributors": ["alattalatta", "moolow", "corps99"]
- },
"Web/Guide/Graphics": {
"modified": "2020-02-15T07:39:57.101Z",
"contributors": ["Netaras", "hyeonseok", "narae_lee"]
},
- "Web/Guide/Mobile": {
- "modified": "2019-05-30T06:59:50.297Z",
- "contributors": ["SDSkyKlouD", "Seia-Soto", "xfq"]
- },
"Web/Guide/Parsing_and_serializing_XML": {
"modified": "2019-03-23T22:16:47.020Z",
"contributors": ["young-gratia"]
@@ -10196,10 +10164,6 @@
"modified": "2019-03-23T22:00:19.382Z",
"contributors": ["chrisdavidmills", "cs09g"]
},
- "Web/Progressive_web_apps/Guides/Making_PWAs_installable": {
- "modified": "2020-01-26T15:58:32.379Z",
- "contributors": ["alattalatta", "chrisdavidmills", "cs09g"]
- },
"Web/Progressive_web_apps/Tutorials/js13kGames": {
"modified": "2019-03-18T20:52:13.104Z",
"contributors": ["chrisdavidmills", "cs09g"]
diff --git a/files/ko/games/tutorials/2d_breakout_game_phaser/the_score/index.md b/files/ko/games/tutorials/2d_breakout_game_phaser/the_score/index.md
index 209a3d0d6632ce..7ffd605d41cd65 100644
--- a/files/ko/games/tutorials/2d_breakout_game_phaser/the_score/index.md
+++ b/files/ko/games/tutorials/2d_breakout_game_phaser/the_score/index.md
@@ -43,7 +43,7 @@ scoreText = game.add.text(5, 5, "Points: 0", {
마지막 변수는 CSS와 매우 비슷해 보입니다. 우리의 점수는 파란색에, 18픽셀 크기이며, Arial 폰트를 사용하여 나타날 것입니다.
-## 블록이 무너지면 점수를 갱신합니다.
+## 블록이 무너지면 점수를 갱신합니다
우리는 공이 블록을 칠때마다 점수를 증가시킵니다 그리고 공이 블록을 칠때마다 동시에 점수판을 갱신하여 화면에 현재 점수를 나타낼 것입니다. 이건 `setText()매소드를 써서 해결 할수 있습니다` — `ballHitBrick()` 함수 아래로 다음과 같은 새로운 코드 두 줄을 추가하세요:
diff --git a/files/ko/games/tutorials/html5_gamedev_phaser_device_orientation/index.md b/files/ko/games/tutorials/html5_gamedev_phaser_device_orientation/index.md
index 48ca716f55b1de..0fee5eee37b666 100644
--- a/files/ko/games/tutorials/html5_gamedev_phaser_device_orientation/index.md
+++ b/files/ko/games/tutorials/html5_gamedev_phaser_device_orientation/index.md
@@ -5,7 +5,7 @@ slug: Games/Tutorials/HTML5_Gamedev_Phaser_Device_Orientation
{{GamesSidebar}}
-In this tutorial we’ll go through the process of building an HTML5 mobile game that uses the [Device Orientation](/en-US/Apps/Build/gather_and_modify_data/responding_to_device_orientation_changes) and [Vibration](/ko/docs/Web/Guide/API/Vibration) **APIs** to enhance the gameplay and is built using the [Phaser](http://phaser.io/) framework. Basic JavaScript knowledge is recommended to get the most from this tutorial.
+In this tutorial we'll go through the process of building an HTML5 mobile game that uses the [Device Orientation](/en-US/Apps/Build/gather_and_modify_data/responding_to_device_orientation_changes) and [Vibration](/ko/docs/Web/Guide/API/Vibration) **APIs** to enhance the gameplay and is built using the [Phaser](http://phaser.io/) framework. Basic JavaScript knowledge is recommended to get the most from this tutorial.
## Example game
@@ -15,7 +15,7 @@ By the end of the tutorial you will have a fully functional demo game: [Cyber Or
## Phaser framework
-[Phaser](http://phaser.io/) is a framework for building desktop and mobile HTML5 games. It’s quite new, but growing rapidly thanks to the passionate community involved in the development process. You can check it out [on GitHub](https://github.com/photonstorm/phaser) where it’s open sourced, read the [online documentation](http://docs.phaser.io/) and go through the big collection of [examples](http://examples.phaser.io/). The Phaser framework provides you with a set of tools that will speed up development and help handle generic tasks needed to complete the game, so you can focus on the game idea itself.
+[Phaser](http://phaser.io/) is a framework for building desktop and mobile HTML5 games. It's quite new, but growing rapidly thanks to the passionate community involved in the development process. You can check it out [on GitHub](https://github.com/photonstorm/phaser) where it's open sourced, read the [online documentation](http://docs.phaser.io/) and go through the big collection of [examples](http://examples.phaser.io/). The Phaser framework provides you with a set of tools that will speed up development and help handle generic tasks needed to complete the game, so you can focus on the game idea itself.
## Starting with the project
@@ -31,7 +31,7 @@ You can open the index file in your favourite browser to launch the game and try
## Setting up the Canvas
-We will be rendering our game on Canvas, but we won't do it manually — this will be taken care of by the framework. Let’s set it up: our starting point is the `index.html` file with the following content. You can create this yourself if you want to follow along:
+We will be rendering our game on Canvas, but we won't do it manually — this will be taken care of by the framework. Let's set it up: our starting point is the `index.html` file with the following content. You can create this yourself if you want to follow along:
```html
@@ -94,7 +94,7 @@ The first value is the name of the state and the second one is the object we wan
## Managing game states
-The states in Phaser are separate parts of the game logic; in our case we’re loading them from independent JavaScript files for better maintainability. The basic states used in this game are: `Boot`, `Preloader`, `MainMenu`, `Howto` and `Game`. `Boot` will take care of initializing a few settings, `Preloader` will load all of the assets like graphics and audio, `MainMenu` is the menu with the start button, `Howto` shows the "how to play" instructions and the `Game` state lets you actually play the game. Let's quickly go though the content of those states.
+The states in Phaser are separate parts of the game logic; in our case we're loading them from independent JavaScript files for better maintainability. The basic states used in this game are: `Boot`, `Preloader`, `MainMenu`, `Howto` and `Game`. `Boot` will take care of initializing a few settings, `Preloader` will load all of the assets like graphics and audio, `MainMenu` is the menu with the start button, `Howto` shows the "how to play" instructions and the `Game` state lets you actually play the game. Let's quickly go though the content of those states.
### Boot.js
@@ -260,7 +260,7 @@ The `create` and `update` functions are framework-specific, while others will be
#### Adding the ball and its motion mechanics
-First, let’s go to the `create()` function, initialize the ball object itself and assign a few properties to it:
+First, let's go to the `create()` function, initialize the ball object itself and assign a few properties to it:
```js
this.ball = this.add.sprite(this.ballStartPos.x, this.ballStartPos.y, "ball");
@@ -270,17 +270,17 @@ this.ball.body.setSize(18, 18);
this.ball.body.bounce.set(0.3, 0.3);
```
-Here we’re adding a sprite at the given place on the screen and using the `'ball'` image from the loaded graphic assets. We’re also setting the anchor for any physics calculations to the middle of the ball, enabling the Arcade physics engine (which handles all the physics for the ball movement), and setting the size of the body for the collision detection. The `bounce` property is used to set the bounciness of the ball when it hits the obstacles.
+Here we're adding a sprite at the given place on the screen and using the `'ball'` image from the loaded graphic assets. We're also setting the anchor for any physics calculations to the middle of the ball, enabling the Arcade physics engine (which handles all the physics for the ball movement), and setting the size of the body for the collision detection. The `bounce` property is used to set the bounciness of the ball when it hits the obstacles.
#### Controlling the ball
-It’s cool to have the ball ready to be thrown around in the play area, but it’s also important to be able to actually move it! Now we will add the ability to control the ball with the keyboard on the desktop devices, and then we will move to the implementation of the Device Orientation API. Let’s focus on the keyboard first by adding the following to the `create()` function :
+It's cool to have the ball ready to be thrown around in the play area, but it's also important to be able to actually move it! Now we will add the ability to control the ball with the keyboard on the desktop devices, and then we will move to the implementation of the Device Orientation API. Let's focus on the keyboard first by adding the following to the `create()` function :
```js
this.keys = this.game.input.keyboard.createCursorKeys();
```
-As you can see there’s a special Phaser function called `createCursorKeys()`, which will give us an object with event handlers for the four arrow keys to play with: up, down, left and right.
+As you can see there's a special Phaser function called `createCursorKeys()`, which will give us an object with event handlers for the four arrow keys to play with: up, down, left and right.
Next we will add the following code to the `update()` function, so it will be fired on every frame. The `this.keys` object will be checked against player input, so the ball can react accordingly with the predefined force:
@@ -301,13 +301,13 @@ That way we can check which key is pressed at the given frame and apply the defi
#### Implementing the Device Orientation API
-Probably the most interesting part of the game is its usage of the **Device Orientation API** for control on mobile devices. Thanks to this you can play the game by tilting the device in the direction you want the ball to roll. Here’s the code from the `create()` function responsible for this:
+Probably the most interesting part of the game is its usage of the **Device Orientation API** for control on mobile devices. Thanks to this you can play the game by tilting the device in the direction you want the ball to roll. Here's the code from the `create()` function responsible for this:
```js
window.addEventListener("deviceorientation", this.handleOrientation, true);
```
-We’re adding an event listener to the `"deviceorientation"` event and binding the `handleOrientation` function which looks like this:
+We're adding an event listener to the `"deviceorientation"` event and binding the `handleOrientation` function which looks like this:
```js
handleOrientation: function(e) {
@@ -335,7 +335,7 @@ this.hole.anchor.set(0.5);
this.hole.body.setSize(2, 2);
```
-The difference is that our hole’s body will not move when we hit it with the ball and will have the collision detection calculated (which will be discussed later on in this article).
+The difference is that our hole's body will not move when we hit it with the ball and will have the collision detection calculated (which will be discussed later on in this article).
#### Building the block labyrinth
@@ -390,7 +390,7 @@ Thanks to that the game gives the player a challenge - now he have to roll the b
#### Collision detection
-At this point we've got the ball that is controlled by the player, the hole to reach and the obstacles blocking the way. There’s a problem though — our game doesn’t have any collision detection yet, so nothing happens when the ball hits the blocks — it just goes through. Let’s fix it! The good news is that the framework will take care of calculating the collision detection, we only have to specify the colliding objects in the `update()` function:
+At this point we've got the ball that is controlled by the player, the hole to reach and the obstacles blocking the way. There's a problem though — our game doesn't have any collision detection yet, so nothing happens when the ball hits the blocks — it just goes through. Let's fix it! The good news is that the framework will take care of calculating the collision detection, we only have to specify the colliding objects in the `update()` function:
```js
this.physics.arcade.collide(
@@ -447,7 +447,7 @@ If the `vibrate` method is supported by the browser and available in the `window
#### Adding the elapsed time
-To improve replayability and give players the option to compete with each other we will store the elapsed time — players can then try to improve on their best game completion time. To implement this we have to create a variable for storing the actual number of seconds elapsed from the start of the game, and to show it for the player in the game. Let’s define the variables in the `create` function first:
+To improve replayability and give players the option to compete with each other we will store the elapsed time — players can then try to improve on their best game completion time. To implement this we have to create a variable for storing the actual number of seconds elapsed from the start of the game, and to show it for the player in the game. Let's define the variables in the `create` function first:
```js
this.timer = 0; // time elapsed in the current level
@@ -471,7 +471,7 @@ this.totalTimeText = this.game.add.text(
);
```
-We’re defining the top and left positions of the text, the content that will be shown and the styling applied to the text. We have this printed out on the screen, but it would be good to update the values every second:
+We're defining the top and left positions of the text, the content that will be shown and the styling applied to the text. We have this printed out on the screen, but it would be good to update the values every second:
```js
this.time.events.loop(Phaser.Timer.SECOND, this.updateCounter, this);
@@ -487,11 +487,11 @@ updateCounter: function() {
},
```
-As you can see we’re incrementing the `this.timer` variable and updating the content of the text objects with the current values on each iteration, so the player sees the elapsed time.
+As you can see we're incrementing the `this.timer` variable and updating the content of the text objects with the current values on each iteration, so the player sees the elapsed time.
#### Finishing the level and the game
-The ball is rolling on the screen, the timer is working and we have the hole created that we have to reach. Now let’s set up the possibility to actually finish the level! The following line in the `update()` function adds a listener that fires when the ball gets to the hole.
+The ball is rolling on the screen, the timer is working and we have the hole created that we have to reach. Now let's set up the possibility to actually finish the level! The following line in the `update()` function adds a listener that fires when the ball gets to the hole.
```js
this.physics.arcade.overlap(this.ball, this.hole, this.finishLevel, null, this);
@@ -529,7 +529,7 @@ If the current level is lower than 5, all the neccesary variables are reset and
## Ideas for new features
-This is merely a working demo of a game that could have lots of additional features. We can for example add power-ups to collect along the way that will make our ball roll faster, stop the timer for a few seconds or give the ball special powers to go through obstacles. There’s also room for the traps which will slow the ball down or make it more difficult to reach the hole. You can create more levels of increasing difficulty. You can even implement achievements, leaderboards and medals for different actions in the game. There are endless possibilities — they only depend on your imagination.
+This is merely a working demo of a game that could have lots of additional features. We can for example add power-ups to collect along the way that will make our ball roll faster, stop the timer for a few seconds or give the ball special powers to go through obstacles. There's also room for the traps which will slow the ball down or make it more difficult to reach the hole. You can create more levels of increasing difficulty. You can even implement achievements, leaderboards and medals for different actions in the game. There are endless possibilities — they only depend on your imagination.
## Summary
diff --git a/files/ko/glossary/abstraction/index.md b/files/ko/glossary/abstraction/index.md
index 0898a6cb421419..36a5d4834258d2 100644
--- a/files/ko/glossary/abstraction/index.md
+++ b/files/ko/glossary/abstraction/index.md
@@ -2,6 +2,7 @@
title: 추상화
slug: Glossary/Abstraction
---
+
{{Glossary("computer programming", "컴퓨터 프로그래밍")}}에서의 **추상화**란 복잡한 소프트웨어 시스템을 효율적으로 설계하고 구현할 수 있는 방법입니다. 추상화는 뒷편 시스템의 기술적 복잡함을 단순한 {{Glossary("API")}} 뒤에 숨깁니다.
## 데이터 추상화의 장점
@@ -14,24 +15,24 @@ slug: Glossary/Abstraction
## 예
```js
- class ImplementAbstraction {
- // method to set values of internal members
- set(x, y) {
- this.a = x;
- this.b = y;
- }
-
- display() {
- console.log('a = ' + this.a);
- console.log('b = ' + this.b);
- }
- }
-
- const obj = new ImplementAbstraction();
- obj.set(10, 20);
- obj.display();
- // a = 10
- // b = 20
+class ImplementAbstraction {
+ // method to set values of internal members
+ set(x, y) {
+ this.a = x;
+ this.b = y;
+ }
+
+ display() {
+ console.log("a = " + this.a);
+ console.log("b = " + this.b);
+ }
+}
+
+const obj = new ImplementAbstraction();
+obj.set(10, 20);
+obj.display();
+// a = 10
+// b = 20
```
## 더 알아보기
diff --git a/files/ko/glossary/attribute/index.md b/files/ko/glossary/attribute/index.md
index 35ea65ac7b9724..6af4d9dc697545 100644
--- a/files/ko/glossary/attribute/index.md
+++ b/files/ko/glossary/attribute/index.md
@@ -2,6 +2,7 @@
title: 특성
slug: Glossary/Attribute
---
+
{{QuickLinksWithSubpages("/ko/docs/Glossary")}}
**특성**(attribute)은 {{glossary("tag", "태그")}}를 확장해 동작 방식을 바꾸거나 메타데이터를 제공합니다.
@@ -11,11 +12,11 @@ slug: Glossary/Attribute
등호 또는 값 없는 특성이 보일 때도 있습니다. {{glossary("HTML")}}에서는 빈 문자열을 제공하는 단축 표기법이고, {{glossary("XML")}}에서는 특성 이름을 제공하는 단축 표기법입니다.
```html
-
+
-
+
-
+
```
## 더 알아보기
diff --git a/files/ko/glossary/block-level_content/index.md b/files/ko/glossary/block-level_content/index.md
index 96704ff75057f4..ca2a38fc591369 100644
--- a/files/ko/glossary/block-level_content/index.md
+++ b/files/ko/glossary/block-level_content/index.md
@@ -17,13 +17,18 @@ original_slug: Web/HTML/Block-level_elements
### HTML
```html
-
이 문단은 블록 레벨 요소입니다. 부모 요소와 구분할 수 있도록 배경 색을 입혔습니다.
+
+ 이 문단은 블록 레벨 요소입니다. 부모 요소와 구분할 수 있도록 배경 색을
+ 입혔습니다.
+
```
### CSS
```css
-p { background-color: #8ABB55; }
+p {
+ background-color: #8abb55;
+}
```
{{EmbedLiveSample('블록_레벨_요소')}}
diff --git a/files/ko/glossary/breadcrumb/index.md b/files/ko/glossary/breadcrumb/index.md
index dd1568eac0e176..2288cd2cc13b1d 100644
--- a/files/ko/glossary/breadcrumb/index.md
+++ b/files/ko/glossary/breadcrumb/index.md
@@ -2,6 +2,7 @@
title: Breadcrumb (브레드크럼)
slug: Glossary/Breadcrumb
---
+
**브레드크럼**, 또는 브레드크럼 트레일은 일반적으로 사이트의 header와 기본 컨텐츠 사이에 배치되는 탐색 보조 도구로, 사이트 구조와 관련된 현재 페이지의 계층 구조, 최상위에서부터 현재 페이지까지를 사용자의 링크 목록 등으로 표시합니다. 현재 페이지까지 방문한 순서대로 보입니다.
이 문서의 위치 탐색 경로는 다음과 같습니다.:
diff --git a/files/ko/glossary/call_stack/index.md b/files/ko/glossary/call_stack/index.md
index eb9274c3f75b39..9155df48fca3b2 100644
--- a/files/ko/glossary/call_stack/index.md
+++ b/files/ko/glossary/call_stack/index.md
@@ -14,12 +14,12 @@ slug: Glossary/Call_stack
```js
function greeting() {
- // [1] Some codes here
- sayHi();
- // [2] Some codes here
+ // [1] Some codes here
+ sayHi();
+ // [2] Some codes here
}
function sayHi() {
- return "Hi!";
+ return "Hi!";
}
// Invoke the `greeting` function
@@ -34,23 +34,23 @@ greeting();
2. `greeting()` 함수를 호출합니다.
3. `greeting()` 함수를 호출 스택 리스트에 추가합니다.
- > **참고:** 호출 스택 리스트:
- > \- greeting
+ > **참고:** 호출 스택 리스트:
+ > \- greeting
4. `greeting` 함수 내부의 모든 코드를 실행합니다.
5. `sayHi()` 함수를 얻습니다.
6. `sayHi()` 함수를 호출 스택 리스트에 추가합니다.
- > **참고:** 호출 스택 리스트:
- > \- greeting
- > \- sayHi
+ > **참고:** 호출 스택 리스트:
+ > \- greeting
+ > \- sayHi
7. `sayHi()` 함수의 끝에 도달할 때까지, 함수 내부의 모든 코드를 실행합니다.
8. `sayHi()` 가 호출된 라인으로 돌아와 `greeting()` 함수의 나머지를 계속 실행합니다.
9. 호출 스택 리스트에서 `sayHi()` 함수를 제거합니다.
- > **참고:** 호출 스택 리스트:
- > \- greeting
+ > **참고:** 호출 스택 리스트:
+ > \- greeting
10. `greeting()` 함수 내부의 모든 코드가 실행되었을 때, 이를 호출한 라인으로 돌아와 JS 코드의 나머지를 계속 실행합니다.
11. 호출 스택 리스트에서 `greeting()` 함수를 제거합니다.
diff --git a/files/ko/glossary/character/index.md b/files/ko/glossary/character/index.md
index 802aaf6a0b3862..affa440c375a0b 100644
--- a/files/ko/glossary/character/index.md
+++ b/files/ko/glossary/character/index.md
@@ -2,6 +2,7 @@
title: Character
slug: Glossary/Character
---
+
문자는 기호(글자, 숫자, 문장 부호) 또는 비출력 "제어"(예: 캐리지 리턴 또는 소프트 하이픈)이다. {{glossary("UTF-8")}}은 가장 보편적인 문자 세트이며 유명한 인간 언어들의 문자를 포함한다.
## 더 알아보기
diff --git a/files/ko/glossary/character_encoding/index.md b/files/ko/glossary/character_encoding/index.md
index 282a1e0fdc2d17..007ab8e50a2bbc 100644
--- a/files/ko/glossary/character_encoding/index.md
+++ b/files/ko/glossary/character_encoding/index.md
@@ -8,7 +8,7 @@ slug: Glossary/Character_encoding
예를 들어, HTML에서 우리는 일반적으로 아래 줄과 같이 UTF-8의 문자 인코딩을 선언한다 :
```html
-
+
```
이것은 당신이 당신의 HTML 문서에서 인간 언어의 문자를 사용할 수 있도록 보장하며, 그것들은 신뢰성 있게 표시될 것이다.
diff --git a/files/ko/glossary/character_set/index.md b/files/ko/glossary/character_set/index.md
index bcf56730639a88..34807b3bd46c98 100644
--- a/files/ko/glossary/character_set/index.md
+++ b/files/ko/glossary/character_set/index.md
@@ -15,11 +15,11 @@ slug: Glossary/Character_set
1. Wikipedia articles
- 1. [Character encoding](https://en.wikipedia.org/wiki/Character_encoding)
+ 1. [Character encoding](https://en.wikipedia.org/wiki/Character_encoding)
2. [Glossary](/ko/docs/Glossary)
- 1. {{Glossary("Character")}}
- 2. {{Glossary("Unicode")}}
+ 1. {{Glossary("Character")}}
+ 2. {{Glossary("Unicode")}}
diff --git a/files/ko/glossary/chrome/index.md b/files/ko/glossary/chrome/index.md
index d0297d820d5b38..78cec8f9ffb2ca 100644
--- a/files/ko/glossary/chrome/index.md
+++ b/files/ko/glossary/chrome/index.md
@@ -2,6 +2,7 @@
title: Chrome
slug: Glossary/Chrome
---
+
브라우저에서 chrome은 웹페이지를 제외한 브라우저의 모든 가시적인 요소이다. (예: 도구 모음, 메뉴 바, 탭) 이것은 {{glossary("Google Chrome")}} 브라우저와 혼동해서는 안 된다.
## 더 알아보기
diff --git a/files/ko/glossary/compile/index.md b/files/ko/glossary/compile/index.md
index 95349061824b6e..94bde17126fe16 100644
--- a/files/ko/glossary/compile/index.md
+++ b/files/ko/glossary/compile/index.md
@@ -2,6 +2,7 @@
title: Compile
slug: Glossary/Compile
---
+
컴파일(Compile)은 주어진 {{Glossary("computer programming", "language")}}로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 프로세스입니다. 컴파일러는이 작업을 실행하는 소프트웨어입니다. 때로는이 작업을 "조립(assembling)"또는 "빌드(build)"라고도 합니다. 이 작업들은 보통 컴파일과 같은 것(예를 들면 바이너리 형식으로 패키지를 만드는 일) 이상의 작업을 수행합니다 .
일반적으로 컴파일러는 C 또는 {{Glossary("Java")}} 와 같은 고급 언어를 CPU가 이해할 수 있는, 즉 어셈블리어와 같은 기계 언어로 변환합니다. 유사한 수준의 언어 사이에서 번역하는 일부 컴파일러를 트랜스파일러 또는 크로스 컴파일러 라고 합니다. 예를 들어 TypeScript에서 {{Glossary("JavaScript")}}로 컴파일합니다. 그것들은 생산성 도구로 간주됩니다.
diff --git a/files/ko/glossary/computer_programming/index.md b/files/ko/glossary/computer_programming/index.md
index b0f64349e4878c..023d09e64e062e 100644
--- a/files/ko/glossary/computer_programming/index.md
+++ b/files/ko/glossary/computer_programming/index.md
@@ -2,6 +2,7 @@
title: Computer Programming
slug: Glossary/Computer_Programming
---
+
컴퓨터 프로그래밍은 명령어 모음집을 작성하고 구성하는 과정이다. 이것들은 컴퓨터/소프트웨어 프로그램에게 컴퓨터가 이해하는 언어로 무엇을 해야 하는지 알려준다. 이러한 지침은 C++, Java, JavaScript, HTML, Python, Ruby, Rust와 같은 다양한 언어의 형태로 나온다.
적절한 언어를 사용하면 모든 종류의 소프트웨어를 프로그래밍/생성할 수 있다. 이것의 예시에는 복잡한 계산을 하여 과학자들을 돕는 프로그램, 엄청난 양의 데이터를 저장하는 데이터베이스, 음악을 다운받을 수 있는 웹 사이트, 애니메이션 영화를 만들 수 있는 애니메이션 소프트웨어를 들 수 있다.
diff --git a/files/ko/glossary/copyleft/index.md b/files/ko/glossary/copyleft/index.md
index 12e036b15ab6d1..4ccc614732424b 100644
--- a/files/ko/glossary/copyleft/index.md
+++ b/files/ko/glossary/copyleft/index.md
@@ -2,6 +2,7 @@
title: Copyleft
slug: Glossary/Copyleft
---
+
Copyleft는 일반적으로 라이선스를 지칭하는 용어로서, 그러한 라이선스는 해당 저작물의 재배포가 원래 라이선스와 동일한 라이선스의 대상이 되어야 한다는 것을 나타내기 위해 사용된다. copyleft 라이선스의 예로는 GNU {{Glossary("GPL")}}(소프트웨어용)과 Creative Commons SA(Share Alike) 라이선스(예술 작품에서)가 있다.
## 더 알아보기
diff --git a/files/ko/glossary/cors/index.md b/files/ko/glossary/cors/index.md
index 26737de0773df7..5a2d409d21bdeb 100644
--- a/files/ko/glossary/cors/index.md
+++ b/files/ko/glossary/cors/index.md
@@ -2,6 +2,7 @@
title: CORS
slug: Glossary/CORS
---
+
다른 도메인({{glossary("domain","domains")}})에서의 자원을 호출하는 행위에 제한이 없을 경우 안전하지 않습니다. **CORS** (Cross-Origin Resource Sharing)는 이렇게 시스템 수준에서 타 도메인 간 자원 호출을 승인하거나 차단하는 것을 결정하는 것입니다.
## 더 보기
diff --git a/files/ko/glossary/csp/index.md b/files/ko/glossary/csp/index.md
index a85ab16114ba1d..0960d1aaff546a 100644
--- a/files/ko/glossary/csp/index.md
+++ b/files/ko/glossary/csp/index.md
@@ -2,6 +2,7 @@
title: CSP
slug: Glossary/CSP
---
+
CSP (Content Security Policy)는 {{Glossary("XSS")}}이나 데이터 주입과 같은 특정 웹사이트 관련 공격을 탐지 하거나 완화 하기 위해 사용된다.
기본적인 구현은 `Content-Security-Policy`라고 불리는 {{Glossary("HTTP")}} 헤더를 기반으로 한다.
diff --git a/files/ko/glossary/css/index.md b/files/ko/glossary/css/index.md
index 13fb58b5704d9c..9bdb9f5ace1cb8 100644
--- a/files/ko/glossary/css/index.md
+++ b/files/ko/glossary/css/index.md
@@ -18,7 +18,7 @@ p {
color: yellow;
/* The "background-color" property defines the background color, in this case black. */
- background-color: black
+ background-color: black;
}
```
diff --git a/files/ko/glossary/doctype/index.md b/files/ko/glossary/doctype/index.md
index 925df02266066f..e2190ba515686c 100644
--- a/files/ko/glossary/doctype/index.md
+++ b/files/ko/glossary/doctype/index.md
@@ -2,7 +2,8 @@
title: 문서 타입 정의
slug: Glossary/Doctype
---
-{{Glossary("HTML")}}에서, doctype은 모든 문서의 최상단에서 찾을 수 있는 "``" 필수 서문이다. doctype은 {{Glossary("브라우저")}}가 문서를 렌더링 할 때 [“quirks mode”](/ko/docs/Quirks_Mode_and_Standards_Mode)로 바뀌지 않도록하는 것이 유일한 목적이다. "``" doctype은 브라우저가 일부 스펙과 맞지 않는 다른 렌더링 모드를 사용하기 보다는 적절한 스펙을 따르는 최선의 시도를 하도록 한다.
+
+{{Glossary("HTML")}}에서, doctype은 모든 문서의 최상단에서 찾을 수 있는 "``" 필수 서문이다. doctype은 {{Glossary("브라우저")}}가 문서를 렌더링 할 때 ["quirks mode"](/ko/docs/Quirks_Mode_and_Standards_Mode)로 바뀌지 않도록하는 것이 유일한 목적이다. "``" doctype은 브라우저가 일부 스펙과 맞지 않는 다른 렌더링 모드를 사용하기 보다는 적절한 스펙을 따르는 최선의 시도를 하도록 한다.
## 더보기
diff --git a/files/ko/glossary/domain_name/index.md b/files/ko/glossary/domain_name/index.md
index 3f4805c1bb109a..58f34cdaa7e5d5 100644
--- a/files/ko/glossary/domain_name/index.md
+++ b/files/ko/glossary/domain_name/index.md
@@ -2,6 +2,7 @@
title: 도메인 이름
slug: Glossary/Domain_name
---
+
**도메인 이름**은 {{Glossary("Internet", "인터넷")}} 웹 사이트의 주소로, {{glossary("URL")}}에서 특정 웹 페이지가 속하는 서버를 식별할 때 사용합니다. 도메인 이름은 마침표(점)로 구분한 계층적인 이름(레이블)의 연속으로 구성되며, {{glossary("TLD", "확장")}}으로 끝납니다.
## 더 알아보기
diff --git a/files/ko/glossary/endianness/index.md b/files/ko/glossary/endianness/index.md
index 64e7fc633933b5..211e97dde7a28a 100644
--- a/files/ko/glossary/endianness/index.md
+++ b/files/ko/glossary/endianness/index.md
@@ -2,6 +2,7 @@
title: 엔디언
slug: Glossary/Endianness
---
+
**엔디언**(endian, endianness) 또는 **바이트 순서**는 숫자를 구성하는 바이트를 컴퓨터가 정렬하는 방법입니다.
메모리의 저장 공간은 인덱스, 또는 주소를 가지고 있습니다. 각각의 바이트는 8비트 숫자(`0x00` 이상, `0xff` 이하)를 저장할 수 있으므로, 그보다 큰 숫자에 대해서는 두 개 이상의 바이트가 필요합니다. 여러 개의 바이트를 정렬하는, 지금까지 가장 많이 쓰이는 방법은 모든 Intel 프로세서가 사용하는 **리틀 엔디언**입니다. 리틀 엔디언은 작은 단위부터 정렬하는 방식으로, 가장 작은 단위의 바이트가 맨 앞 혹은 앞쪽 주소를 차지합니다. 이 방식은 유럽식 날짜 표기(31-12-2050)에 대입할 수 있습니다.
diff --git a/files/ko/glossary/entity_header/index.md b/files/ko/glossary/entity_header/index.md
index c8d72fba387731..6e5ad515dc8ddc 100644
--- a/files/ko/glossary/entity_header/index.md
+++ b/files/ko/glossary/entity_header/index.md
@@ -2,6 +2,7 @@
title: 엔티티 헤더
slug: Glossary/Entity_header
---
+
엔티티 헤더는 메시지 바디의 컨텐츠를 나타내는 {{glossary("header", "HTTP 헤더")}}입니다. 엔티티 헤더는 HTTP 요청 및 응답 모두에서 사용됩니다. {{HTTPHeader("Content-Length")}}, {{HTTPHeader("Content-Language")}}, {{HTTPHeader("Content-Encoding")}}과 같은 헤더는 엔티티 헤더입니다.
엔티티 헤더가 요청이나 응답 헤더가 아님에도 불구하고, 이러한 용어로 종종 포함됩니다.
diff --git a/files/ko/glossary/falsy/index.md b/files/ko/glossary/falsy/index.md
index 84a14c95e931ec..fca3336ce0657b 100644
--- a/files/ko/glossary/falsy/index.md
+++ b/files/ko/glossary/falsy/index.md
@@ -9,15 +9,15 @@ slug: Glossary/Falsy
다음은 8가지 거짓 같은 값들입니다:
-| `false` | 키워드 [false](/ko/docs/Web/JavaScript/Reference/Lexical_grammar#구형_표준의_확장_예약_키워드) |
-| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
-| `0` | 숫자 [zero](/ko/docs/Web/JavaScript/Data_structures#Number_타입) |
-| `-0` | 음수 [zero](/ko/docs/Web/JavaScript/Data_structures#Number_타입) |
-| `0n` | [BigInt](/ko/docs/Web/JavaScript/Reference/Global_Objects/BigInt). 불리언으로 사용될 경우, 숫자와 같은 규칙을 따름. `0n`은 거짓 같은 값. |
-| `""` | 빈 [string](/ko/docs/Web/JavaScript/Reference/Global_Objects/String) |
-| {{Glossary("null")}} | [null](/ko/docs/Web/JavaScript/Reference/Global_Objects/null) - 아무런 값도 없음 |
+| `false` | 키워드 [false](/ko/docs/Web/JavaScript/Reference/Lexical_grammar#구형_표준의_확장_예약_키워드) |
+| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
+| `0` | 숫자 [zero](/ko/docs/Web/JavaScript/Data_structures#Number_타입) |
+| `-0` | 음수 [zero](/ko/docs/Web/JavaScript/Data_structures#Number_타입) |
+| `0n` | [BigInt](/ko/docs/Web/JavaScript/Reference/Global_Objects/BigInt). 불리언으로 사용될 경우, 숫자와 같은 규칙을 따름. `0n`은 거짓 같은 값. |
+| `""` | 빈 [string](/ko/docs/Web/JavaScript/Reference/Global_Objects/String) |
+| {{Glossary("null")}} | [null](/ko/docs/Web/JavaScript/Reference/Global_Objects/null) - 아무런 값도 없음 |
| {{Glossary("undefined")}} | [undefined](/ko/docs/Web/JavaScript/Reference/Global_Objects/undefined) - 원시값 |
-| {{Glossary("NaN")}} | [NaN](/ko/docs/Web/JavaScript/Reference/Global_Objects/NaN) - 숫자가 아님 |
+| {{Glossary("NaN")}} | [NaN](/ko/docs/Web/JavaScript/Reference/Global_Objects/NaN) - 숫자가 아님 |
> **참고:** 오브젝트는 [\[\[IsHTMLDDA\]\] internal slot](https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot) 을 가지고 있어야 거짓같은 값이 됩니다. 이 슬롯은 [`document.all`](/ko/docs/Web/API/Document/all) 에만 존재하며 자바스크립트로 설정될 수 없습니다.
@@ -41,10 +41,10 @@ if ("")
첫 번째 객체가 거짓 같은 값이라면, 해당 객체를 반환합니다.
```js
-false && "dog"
+false && "dog";
// ↪ false
-0 && "dog"
+0 && "dog";
// ↪ 0
```
diff --git a/files/ko/glossary/first-class_function/index.md b/files/ko/glossary/first-class_function/index.md
index 80ff39fbc2efaa..c16ba07c4ed5d7 100644
--- a/files/ko/glossary/first-class_function/index.md
+++ b/files/ko/glossary/first-class_function/index.md
@@ -23,8 +23,8 @@ foo(); // 변수를 사용해 호출
{{glossary("Variable", "변수")}}에 '익명함수'를 할당한 다음, 끝에 괄호 `()`를 추가하면서 함수를 호출할 해당 변수를 사용합니다.
> **참고:** 함수가 이름을 가지고 있더라도, 변수 이름을 사용하여 함수를 호출할 수 있습니다.
-함수에 이름을 지정하는 것은 코드를 디버깅할 때 도움이 됩니다.
-하지만 함수를 호출하는 방식에는 영향을 미치지 않을 것입니다.
+> 함수에 이름을 지정하는 것은 코드를 디버깅할 때 도움이 됩니다.
+> _하지만 함수를 호출하는 방식에는 영향을 미치지 않을 것입니다._
### 함수에 전달인자로 전달
diff --git a/files/ko/glossary/flex_container/index.md b/files/ko/glossary/flex_container/index.md
index d4df3413303957..06f46a66313cca 100644
--- a/files/ko/glossary/flex_container/index.md
+++ b/files/ko/glossary/flex_container/index.md
@@ -2,6 +2,7 @@
title: 플렉스 컨테이너
slug: Glossary/Flex_Container
---
+
{{glossary("flexbox", "플렉스박스")}} 레이아웃은 부모 요소의 `display` 속성에 `flex` 또는 `inline-flex` 값을 지정해 정의합니다. 이 때, 부모 요소는 **플렉스 컨테이너**, 각각의 자식 요소를 {{glossary("flex item", "플렉스 항목")}}이 됩니다.
`flex` 값은 요소를 블록 레벨 플렉스 컨테이너로 지정하고, `inline-flex`는 인라인 레벨 플렉스 컨테이너로 지정합니다. 두 값은 요소에 새로운 **플렉스 서식 맥락**을 생성합니다. 플렉스 서식 맥락은 블록 서식 맥락과 유사하여 플로팅 요소가 컨테이너를 침범하지 않으며, 컨테이너의 바깥 여백이 자기 아래 플렉스 항목의 바깥 여백과 상쇄되지 않습니다.
diff --git a/files/ko/glossary/flex_item/index.md b/files/ko/glossary/flex_item/index.md
index 1fc365775d67d1..4d35030532d90d 100644
--- a/files/ko/glossary/flex_item/index.md
+++ b/files/ko/glossary/flex_item/index.md
@@ -2,6 +2,7 @@
title: 플렉스 항목
slug: Glossary/Flex_Item
---
+
{{glossary("Flex Container", "플렉스 컨테이너")}}(`display: flex` 또는 `display: inline-flex`를 지정한 요소)의 바로 아래 자식은 **플렉스 항목**이 됩니다.
플렉스 컨테이너 내의 텍스트 역시 플렉스 항목입니다.
diff --git a/files/ko/glossary/fork/index.md b/files/ko/glossary/fork/index.md
index 626112b4a63a46..601b1288700371 100644
--- a/files/ko/glossary/fork/index.md
+++ b/files/ko/glossary/fork/index.md
@@ -2,6 +2,7 @@
title: Fork
slug: Glossary/Fork
---
+
포크는 프로젝트에 누군가의 자신의 수정 사항을 추가하기 위한 어떤 시점에 있는 기존 소프트웨어 프로젝트의 사본이다. 기본적으로, 만약 원본 소프트웨어의 라이센스가 허가한다면, 당신은 코드를 복사하여 자신의 추가사항을 가지고 그 코드를 개발할 수 있는데, 이것이 "포크"가 될 것이다.
포크는 종종 무료 오픈소스 소프트웨어 개발에서 볼 수 있다. 이는 Git(또는 GitHub 플랫폼)을 사용한 기여 모델 덕분에 더 많이 사용되는 용어다.
diff --git a/files/ko/glossary/function/index.md b/files/ko/glossary/function/index.md
index 16d6cc1022ee9f..c1e2da66f975be 100644
--- a/files/ko/glossary/function/index.md
+++ b/files/ko/glossary/function/index.md
@@ -23,7 +23,7 @@ slug: Glossary/Function
```js
// Function declaration
-function foo() {};
+function foo() {}
// Named function expression
(function bar() {});
@@ -35,17 +35,17 @@ const foo = () => {};
**안쪽 함수**는 다른함수 내부에서 정의된 함수이다(아래 예에서는 square). **바깥 함수**는 함수를 포함하고 있는 함수이다(아래 예에서는 addSquares):
```js
-function addSquares(a,b) {
- function square(x) {
- return x * x;
- }
- return square(a) + square(b);
-};
+function addSquares(a, b) {
+ function square(x) {
+ return x * x;
+ }
+ return square(a) + square(b);
+}
//Using ECMAScript 2015 arrow notation
-const addSquares = (a,b) => {
- const square = x => x*x;
- return square(a) + square(b);
+const addSquares = (a, b) => {
+ const square = (x) => x * x;
+ return square(a) + square(b);
};
```
@@ -53,16 +53,14 @@ const addSquares = (a,b) => {
```js
function loop(x) {
- if (x >= 10)
- return;
- loop(x + 1);
-};
+ if (x >= 10) return;
+ loop(x + 1);
+}
//Using ECMAScript 2015 arrow notation
-const loop = x => {
- if (x >= 10)
- return;
- loop(x + 1);
+const loop = (x) => {
+ if (x >= 10) return;
+ loop(x + 1);
};
```
@@ -79,14 +77,14 @@ function foo() {
// Function expressions, named or anonymous, can be called immediately
(function foo() {
- console.log("Hello Foo");
-}());
+ console.log("Hello Foo");
+})();
(function food() {
- console.log("Hello Food");
+ console.log("Hello Food");
})();
-(() => console.log('hello world'))();
+(() => console.log("hello world"))();
```
IIFE에 대해 더 많은 설명이 필요하다면 위키피디아의 다음 페이지를 확인 바란다: [Immediately Invoked Function Expression](https://en.wikipedia.org/wiki/Immediately-invoked_function_expression)
diff --git a/files/ko/glossary/global_object/index.md b/files/ko/glossary/global_object/index.md
index 12f8232173b9be..c988667123c35c 100644
--- a/files/ko/glossary/global_object/index.md
+++ b/files/ko/glossary/global_object/index.md
@@ -2,6 +2,7 @@
title: 전역 객체
slug: Glossary/Global_object
---
+
전역 객체 {{glossary("object")}} 는 전역 범위 {{glossary("global scope")}} 에 항상 존재하는 객체를 의미합니다.
자바스크립트에는 전역 객체로 선언된 객체들이 항상 존재합니다. 웹브라우저에서 스크립트가 전역 변수를 생성할 때, 그것들은 전역 객체의 멤버로서 생성됩니다. (이것은 {{Glossary("Node.js")}} 에서는 예외입니다.) 전역 객체의 {{Glossary("interface")}} 는 스크립트가 실행되고 있는 곳의 실행 컨텍스트에 의존합니다. 예를 들어:
@@ -23,19 +24,19 @@ foo === window.foo; // Returns: true
전역 객체로 `foo` 변수를 선언한 뒤, 우리는 `foo` 변수명을 사용해 전역 객체인 `window.foo` 의 프로퍼티로 `window` 객체에서 그것의 값에 직접 접근할 수 있습니다.,
-#### 설명:
+#### 설명
전역 객체 `foo` 는 `window` 객체에 아래와 같이 저장됩니다:
```js
-foo: "foobar"
+foo: "foobar";
```
### 전역 함수 접근
```js
function greeting() {
- console.log("Hi!");
+ console.log("Hi!");
}
window.greeting(); // It is the same as the normal invoking: greeting();
@@ -43,13 +44,13 @@ window.greeting(); // It is the same as the normal invoking: greeting();
위의 예는 `window` 객체의 프로퍼티로서 어떻게 전역 함수가 저장되는지를 보여주고 있습니다 . 우리가 `greeting` 을 전역 함수로써 호출하면 내부적으로는 `window` 객체를 사용해 호출됨을 보여주고 있습니다.
-#### 설명:
+#### 설명
전역 함수 `greeting` 은 아래와 같이 `window` 객체에 저장됩니다:
```js
greeting: function greeting() {
- console.log("Hi!");
+ console.log("Hi!");
}
```
diff --git a/files/ko/glossary/gpl/index.md b/files/ko/glossary/gpl/index.md
index 29d05b33734939..ebdfff8afe46fd 100644
--- a/files/ko/glossary/gpl/index.md
+++ b/files/ko/glossary/gpl/index.md
@@ -2,6 +2,7 @@
title: GPL
slug: Glossary/GPL
---
+
(GNU) GPL (General Public License)은 Free Software Foundation에서 배포하는 copyleft 무료 소프트웨어 라이선스이다. GPL 라이선스 프로그램의 사용자들은 동일한 면허에 따라 프로그램을 재분배(수정 또는 변경되지 않음)할 경우, 사용, 소스 코드 읽기, 수정 및 변경사항 재분배할 수 있는 자유가 부여된다.
## 더 알아보기
diff --git a/files/ko/glossary/head/index.md b/files/ko/glossary/head/index.md
index 995e98c04af363..3e4dffa18e2a1c 100644
--- a/files/ko/glossary/head/index.md
+++ b/files/ko/glossary/head/index.md
@@ -2,6 +2,7 @@
title: Head
slug: Glossary/Head
---
+
**Head** 란 {{glossary("HTML")}} 문서의 일부분으로써 해당 문서의 {{glossary("metadata")}} 를 포함하는데, 예를 들면 저자, 설명, 그리고 HTML에 적용될 수 있는 {{glossary("CSS")}} 또는 {{glossary("JavaScript")}} 파일들로 연결되는 것들이 이에 해당될 수 있다.
## 더 알아보기
diff --git a/files/ko/glossary/hoisting/index.md b/files/ko/glossary/hoisting/index.md
index 2770bab86bf138..5d86aad3634a3b 100644
--- a/files/ko/glossary/hoisting/index.md
+++ b/files/ko/glossary/hoisting/index.md
@@ -2,6 +2,7 @@
title: 호이스팅
slug: Glossary/Hoisting
---
+
JavaScript에서 **호이스팅**(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. `var`로 선언한 변수의 경우 호이스팅 시 `undefined`로 변수를 초기화합니다. 반면 `let`과 `const`로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않습니다.
호이스팅을 설명할 땐 주로 "변수의 선언과 초기화를 분리한 후, 선언만 코드의 최상단으로 옮기는" 것으로 말하곤 합니다. 따라서 변수를 정의하는 코드보다 사용하는 코드가 앞서 등장할 수 있습니다. 다만 선언과 초기화를 함께 수행하는 경우, 선언 코드까지 실행해야 변수가 초기화된 상태가 됨을 주의하세요.
@@ -73,8 +74,8 @@ var y = 2; // y를 선언하고 초기화
// 예제 2
// 호이스팅은 없지만, 변수 초기화는 (아직 하지 않은 경우) 변수 선언까지 병행하므로 변수를 사용할 수 있음
-a = '크랜'; // a 초기화
-b = '베리'; // b 초기화
+a = "크랜"; // a 초기화
+b = "베리"; // b 초기화
console.log(a + "" + b); // '크랜베리'
```
diff --git a/files/ko/glossary/html/index.md b/files/ko/glossary/html/index.md
index 59154d67979fbf..d049d8792a4b1b 100644
--- a/files/ko/glossary/html/index.md
+++ b/files/ko/glossary/html/index.md
@@ -2,6 +2,7 @@
title: HTML
slug: Glossary/HTML
---
+
{{QuickLinksWithSubpages("/ko/docs/Glossary")}}
**HTML**(Hypertext Markup Language)은 웹페이지의 구조를 지정하는 기술적인 언어입니다.
diff --git a/files/ko/glossary/http_3/index.md b/files/ko/glossary/http_3/index.md
index df6430e47c5803..3f85cdc7744431 100644
--- a/files/ko/glossary/http_3/index.md
+++ b/files/ko/glossary/http_3/index.md
@@ -2,6 +2,7 @@
title: HTTP/3
slug: Glossary/HTTP_3
---
+
**HTTP/3**는 {{glossary("HTTP 2", "HTTP/2")}} 다음 [HTTP 네크워크 프로토콜](/ko/docs/Web/HTTP/Basics_of_HTTP)입니다.
HTTP/3의 요점은 {{glossary("TCP")}} 대신 QUIC이라는 새로운 {{glossary("UDP")}} 프로토콜을 사용하는 것입니다.
diff --git a/files/ko/glossary/idempotent/index.md b/files/ko/glossary/idempotent/index.md
index 8ac06d9c1b49d1..8cb173f8357022 100644
--- a/files/ko/glossary/idempotent/index.md
+++ b/files/ko/glossary/idempotent/index.md
@@ -2,6 +2,7 @@
title: 멱등성
slug: Glossary/Idempotent
---
+
동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 **멱등성**을 가졌다고 말합니다. 다른 말로는, 멱등성 메서드에는 통계 기록 등을 제외하면 어떠한 부수 효과(side effect)도 존재해서는 안됩니다. 올바르게 구현한 경우 {{HTTPMethod("GET")}}, {{HTTPMethod("HEAD")}}, {{HTTPMethod("PUT")}}, {{HTTPMethod("DELETE")}} 메서드는 멱등성을 가지며, {{HTTPMethod("POST")}} 메서드는 그렇지 않습니다. 모든 {{glossary("safe", "안전한")}} 메서드는 멱등성도 가집니다.
멱등성을 따질 땐 실제 서버의 백엔드 상태만 보면 되며, 각 요청에서 반환하는 응답 코드는 다를 수 있습니다. 첫 번째 {{HTTPMethod("DELETE")}} 요청이 {{HTTPStatus("200")}}을 반환한다면, 그 이후는 아마 {{HTTPStatus("404")}}를 반환할 것입니다. `DELETE`가 멱등성을 가진다는 것은, REST API에서 개발자는 `DELETE` 메서드를 사용해 "목록의 마지막 항목 제거" 기능을 구현해서는 안된다는 것입니다.
diff --git a/files/ko/glossary/iife/index.md b/files/ko/glossary/iife/index.md
index 68e49e6a9b2cd7..21c4d43d7064ae 100644
--- a/files/ko/glossary/iife/index.md
+++ b/files/ko/glossary/iife/index.md
@@ -7,7 +7,7 @@ slug: Glossary/IIFE
```js
(function () {
- statements
+ statements;
})();
```
@@ -21,18 +21,18 @@ slug: Glossary/IIFE
```js
(function () {
- var aName = "Barry";
+ var aName = "Barry";
})();
// IIFE 내부에서 정의된 변수는 외부 범위에서 접근이 불가능하다.
-aName // throws "Uncaught ReferenceError: aName is not defined"
+aName; // throws "Uncaught ReferenceError: aName is not defined"
```
IIFE를 변수에 할당하면 IIFE 자체는 저장되지 않고, 함수가 실행된 결과만 저장된다.
```js
var result = (function () {
- var name = "Barry";
- return name;
+ var name = "Barry";
+ return name;
})();
// 즉시 결과를 생성한다.
result; // "Barry"
diff --git a/files/ko/glossary/immutable/index.md b/files/ko/glossary/immutable/index.md
index 550517a0cf8755..857db715a568fd 100644
--- a/files/ko/glossary/immutable/index.md
+++ b/files/ko/glossary/immutable/index.md
@@ -2,6 +2,7 @@
title: Immutable
slug: Glossary/Immutable
---
+
불변 [객체](/ko/docs/Glossary/Object) 는 내용을 변경할 수 없는 객체입니다.
객체는 다양한 이유로 불변일 수 있습니다. 예를 들어 아래와 같습니다.
diff --git a/files/ko/glossary/index.md b/files/ko/glossary/index.md
index 2232951fe37f7c..ccd3899c06f1d9 100644
--- a/files/ko/glossary/index.md
+++ b/files/ko/glossary/index.md
@@ -1,5 +1,5 @@
---
-title: 'MDN Web Docs 용어 사전: 웹 용어 정의'
+title: "MDN Web Docs 용어 사전: 웹 용어 정의"
slug: Glossary
---
diff --git a/files/ko/glossary/inline-level_content/index.md b/files/ko/glossary/inline-level_content/index.md
index 4b1b9db80fdad2..b98c6b8f84718c 100644
--- a/files/ko/glossary/inline-level_content/index.md
+++ b/files/ko/glossary/inline-level_content/index.md
@@ -23,8 +23,10 @@ HTML(**Hypertext Markup Language**)의 요소는 역사적으로 ["블록 레벨
인라인 요소를 보이는 다음 예제를 확인해주세요.
```html
-
다음 span은 인라인 요소로,
-영향 범위의 시작과 끝을 알 수 있도록 배경색을 지정했습니다.
+
+ 다음 span은 인라인 요소로, 영향 범위의 시작과
+ 끝을 알 수 있도록 배경색을 지정했습니다.
+
```
이 예제에서 {{HTMLElement("div")}}는 텍스트를 가진 블록 레벨 요소입니다. 그 텍스트 안에는 인라인 요소인 {{HTMLElement("span")}}이 존재합니다. ``은 인라인이기 때문에 전체 문단이 끊기지 않고 하나로 그려집니다. 결과도 확인해보세요.
@@ -46,8 +48,11 @@ background-color:#ee3;
이제 아까 만든 ``을 마치 {{htmlelement("p")}}처럼 블록 레벨인 요소로 바꿔보겠습니다.
```html
-
다음 p는
블록 레벨 요소
로,
-영향 범위의 시작과 끝을 알 수 있도록 배경색을 지정했습니다.
+
+ 다음 p는
+
블록 레벨 요소
+ 로, 영향 범위의 시작과 끝을 알 수 있도록 배경색을 지정했습니다.
+
```
The CSS (not displayed in standard reading mode) is also used:
body {
diff --git a/files/ko/glossary/javascript/index.md b/files/ko/glossary/javascript/index.md
index 0c7327b98bf5e2..5a6d9fc6660c53 100644
--- a/files/ko/glossary/javascript/index.md
+++ b/files/ko/glossary/javascript/index.md
@@ -2,6 +2,7 @@
title: JavaScript
slug: Glossary/JavaScript
---
+
JavaScript는 프로그래밍 언어입니다. 대부분의 상황에서는 클라이언트 측에서 웹페이지를 동적으로 다룰때 사용되며, 종종 {{Glossary("Server","서버")}} 측에서 [Node.js](http://nodejs.org/)와 같은 패키지를 이용하여 사용되기도 합니다.
JavaScript는 Java와 가까운 관련이 없습니다만, [여기](/ko/docs/Web/JavaScript/Guide/Introduction#JavaScript_and_Java)에서 비교를 볼 수 있습니다.
diff --git a/files/ko/glossary/latency/index.md b/files/ko/glossary/latency/index.md
index 11b1f0f5f2860d..e50c6233869dfe 100644
--- a/files/ko/glossary/latency/index.md
+++ b/files/ko/glossary/latency/index.md
@@ -2,6 +2,7 @@
title: Latency
slug: Glossary/Latency
---
+
**Latency**는 요청된 리소스가 대상에 도달하는데 걸리는 네트워크 시간입니다. 지연 시간이 짧으면 기다리는 시간이 거의 없거나, 아예 없습니다. 지연 시간이 길면 요청된 리소스가 대상에 도달하는 데 오랜 시간이 걸려 좋지 않습니다.
지연 시간은 모든 종류의 데이터 흐름의 요인이 될 수 있지만, 일반적으로는 네트워크 지연 시간(데이터 패킷이 소스에서 대상으로 이동하는데 걸리는 시간)과 미디어 코덱 지연 시간(소스 데이터가 인코딩 혹은 디코딩되고 결과 데이터가 소비자에게 도달하는데 걸리는 시간) 관점에서 다룹니다.
diff --git a/files/ko/glossary/literal/index.md b/files/ko/glossary/literal/index.md
new file mode 100644
index 00000000000000..bc6f4093b82b7d
--- /dev/null
+++ b/files/ko/glossary/literal/index.md
@@ -0,0 +1,62 @@
+---
+title: Literal (리터럴)
+slug: Glossary/Literal
+l10n:
+ sourceCommit: ada5fa5ef15eadd44b549ecf906423b4a2092f34
+---
+
+{{GlossarySidebar}}
+
+**리터럴**은 JavaScript에서 값을 나타냅니다. 이는 변수가 아닌 여러분이 문자 그대로 스크립트에 제공한 고정된 값입니다.
+
+- [배열 리터럴](/ko/docs/Web/JavaScript/Guide/Grammar_and_types#array_literals)
+- [불리언 리터럴](/ko/docs/Web/JavaScript/Guide/Grammar_and_types#boolean_literals)
+- [부동 소수점 리터럴](/ko/docs/Web/JavaScript/Guide/Grammar_and_types#floating-point_literals)
+- [숫자 리터럴](/ko/docs/Web/JavaScript/Guide/Grammar_and_types#numeric_literals)
+- [객체 리터럴](/ko/docs/Web/JavaScript/Guide/Grammar_and_types#object_literals)
+- [정규식 리터럴](/ko/docs/Web/JavaScript/Guide/Grammar_and_types#regexp_literals)
+- [문자열 리터럴](/ko/docs/Web/JavaScript/Guide/Grammar_and_types#string_literals)
+
+## 예제
+
+### 문자열 리터럴
+
+문자열 리터럴은 큰따옴표(`"`) 또는 작은따옴표(`'`)로 묶인 0개 이상의 문자입니다. 문자열은 같은 유형의 따옴표로 구분해야 합니다. 즉, 모두 작은따옴표 이거나 큰따옴표여야 합니다
+
+다음은 문자열 리터럴의 예제입니다.
+
+```js
+"foo";
+"bar";
+"1234";
+"one line \n new line";
+"Joyo's cat";
+```
+
+### 객체 리터럴
+
+객체 리터럴은 중괄호(`{}`)로 묶인 0개 이상의 객체의 속성 이름과 그와 연관된 값의 쌍의 목록입니다.
+
+다음은 객체 리터럴의 예제입니다. `car` 객체의 첫 번째 요소는 `myCar` 속성을 정의하고, 여기에 새 문자열 "`Toyota`"를 할당합니다. 두 번째 요소인 `getCar` 속성에는 `carTypes('Honda')` 함수 호출의 결과가 즉시 할당됩니다. 세 번째 요소인 `special` 속성은 기존 변수(`sales`)를 사용합니다.
+
+```js
+const sales = "BMW";
+
+function carTypes(name) {
+ return name === "Honda" ? name : `Sorry, we don't sell ${name}.`;
+}
+
+const car = {
+ myCar: "Toyota",
+ getCar: carTypes("Honda"),
+ special: sales,
+};
+
+console.log(car.myCar); // Toyota
+console.log(car.getCar); // Honda
+console.log(car.special); // BMW
+```
+
+## 같이 보기
+
+- [Literal]() (위키백과)
diff --git a/files/ko/glossary/main_axis/index.md b/files/ko/glossary/main_axis/index.md
index d4c95409163d08..3fbc6478a062b7 100644
--- a/files/ko/glossary/main_axis/index.md
+++ b/files/ko/glossary/main_axis/index.md
@@ -2,6 +2,7 @@
title: 주축
slug: Glossary/Main_Axis
---
+
{{glossary("flexbox", "플렉스박스")}}에서, **주축**이란 {{cssxref("flex-direction")}} 속성이 지정한 방향과 수평한 축입니다. `flex-direction`은 다음과 같은 네 가지 방향이 가능합니다.
- `row`
diff --git a/files/ko/glossary/mutable/index.md b/files/ko/glossary/mutable/index.md
index 3a16a4b6682809..45de7e23609d01 100644
--- a/files/ko/glossary/mutable/index.md
+++ b/files/ko/glossary/mutable/index.md
@@ -14,13 +14,13 @@ slug: Glossary/Mutable
**문자열과 숫자**는 **불변**입니다. 예제를 보고 이해해볼까요?
```js
- var immutableString = "Hello";
+var immutableString = "Hello";
- // 위의 코드에서는 문자열 값을 가진 새 개체가 생성됩니다.
+// 위의 코드에서는 문자열 값을 가진 새 개체가 생성됩니다.
- immutableString = immutableString + "World";
+immutableString = immutableString + "World";
- // 우리는 지금 기존 값에 "World" 를 추가하고 있습니다.
+// 우리는 지금 기존 값에 "World" 를 추가하고 있습니다.
```
문자열 값을 사용하여 "immutableString" 을 추가하면 다음 이벤트가 발생합니다.:
diff --git a/files/ko/glossary/node.js/index.md b/files/ko/glossary/node.js/index.md
index a11afdcdbbf0f3..d6baa6e913c2c5 100644
--- a/files/ko/glossary/node.js/index.md
+++ b/files/ko/glossary/node.js/index.md
@@ -2,6 +2,7 @@
title: Node.js
slug: Glossary/Node.js
---
+
{{QuickLinksWithSubpages("/ko/docs/Glossary")}}
**Node.js**는 개발자가 서버 측과 네트워크 응용 프로그램을 만들 수 있도록 지원하는 크로스 플랫폼 {{Glossary("JavaScript")}} 런타임 환경입니다.
diff --git a/files/ko/glossary/null/index.md b/files/ko/glossary/null/index.md
index a48e6fb5d1d3e7..15773ac2bc6572 100644
--- a/files/ko/glossary/null/index.md
+++ b/files/ko/glossary/null/index.md
@@ -1,7 +1,8 @@
---
-title: 'Null'
+title: "Null"
slug: Glossary/Null
---
+
컴퓨터 과학에서 `null` 값은 일반적으로 존재하지 않거나 유효하지 않은 {{glossary ("object")}} 또는 주소를 의도적으로 가리키는 참조를 나타냅니다. null 참조의 의미는 언어의 구현에 따라 다양합니다.
{{Glossary("JavaScript")}}에서 `null`은 동작이 원시적으로 보이기 때문에 {{Glossary ( "Primitive", "primitive values")}} 중 하나로 표시됩니다. 하지만 [`typeof`](/ko/docs/Web/JavaScript/Reference/Operators/typeof) 연산자를 사용할 때는 `object`를 반환합니다.
diff --git a/files/ko/glossary/object/index.md b/files/ko/glossary/object/index.md
index 5ce0d193a92a8f..2c1f27dc47f435 100644
--- a/files/ko/glossary/object/index.md
+++ b/files/ko/glossary/object/index.md
@@ -2,6 +2,7 @@
title: Object
slug: Glossary/Object
---
+
[객체](/ko/docs/Web/JavaScript/Reference/Global_Objects/Object)는 데이터 및 데이터 작업에 대한 지침을 포함하는 데이터 구조를 말한다. 객체는 때때로 레이싱 게임에서 `car` 나 `map` 과 같은 실생활에서의 것들을 지칭할 수 있다. {{glossary("JavaScript")}}, Java, C++, Python, and Ruby 는 {{glossary("OOP","객체 지향적 프로그래밍")}} 언어의 예이다.
## 더 알아보기
diff --git a/files/ko/glossary/oop/index.md b/files/ko/glossary/oop/index.md
index 5d32876fe5f711..3cf62b557d51db 100644
--- a/files/ko/glossary/oop/index.md
+++ b/files/ko/glossary/oop/index.md
@@ -2,6 +2,7 @@
title: OOP
slug: Glossary/OOP
---
+
**OOP** (객체 지향적 프로그래밍) 는 데이터가 **{{glossary("object","객체")}}** 내에 캡슐화되고 구성 요소 부분이 아닌 객체 자체가 운용되는 프로그래밍 방식이다
{{glossary("JavaScript")}} 는 매우 객체 지향적인 언어이다. JavaScript는 [클래스 기반의 것과는 대조적으로](/ko/docs/Web/JavaScript/Guide/Details_of_the_Object_Model#Class-based_vs._prototype-based_languages) **프로토타입** 기반의 모델을 따른다 .
diff --git a/files/ko/glossary/operator/index.md b/files/ko/glossary/operator/index.md
index efdcdc140b7140..0bce607ad71937 100644
--- a/files/ko/glossary/operator/index.md
+++ b/files/ko/glossary/operator/index.md
@@ -2,6 +2,7 @@
title: Operator
slug: Glossary/Operator
---
+
연산자는 문장 부호 또는 내장 기능을 수행하는 영어 또는 숫자로 구성된 예약된 **구문**이다. 예를 들어, JavaScript에서 추가 연산자("+")는 숫자를 추가하고 문자열을 연결하며, "not" 연산자("!")는 식을 부정한다 (예를 들어 참 문을 거짓으로 되돌리도록 만든다.).
## 더 알아보기
diff --git a/files/ko/glossary/percent-encoding/index.md b/files/ko/glossary/percent-encoding/index.md
index bc1401e793314f..b152c3a0549a33 100644
--- a/files/ko/glossary/percent-encoding/index.md
+++ b/files/ko/glossary/percent-encoding/index.md
@@ -7,28 +7,28 @@ slug: Glossary/Percent-encoding
인코딩이 필요한 특수문자는 `':'`, `'/'`, `'?'`, `'#'`, `'['`, `']'`, `'@'`, `'!'`, `'$'`, `'&'`, `"'"`, `'('`, `')'`, `'*'`, `'+'`, `','`, `';'`, `'='` 그리고 `'%'` 그 자체입니다. 다른 문자는 인코딩 할 수 있지만 인코딩을 할 필요는 없습니다.
-| 문자 | 인코딩 |
-| --------- | ------------ |
-| `':'` | `%3A` |
-| `'/'` | `%2F` |
-| `'?'` | `%3F` |
-| `'#'` | `%23` |
-| `'['` | `%5B` |
-| `']'` | `%5D` |
-| `'@'` | `%40` |
-| `'!'` | `%21` |
-| `'$'` | `%24` |
-| `'&'` | `%26` |
-| `"'"` | `%27` |
-| `'('` | `%28` |
-| `')'` | `%29` |
-| `'*'` | `%2A` |
-| `'+'` | `%2B` |
-| `','` | `%2C` |
-| `';'` | `%3B` |
-| `'='` | `%3D` |
-| `'%'` | `%25` |
-| `' '` | `%20` or `+` |
+| 문자 | 인코딩 |
+| ----- | ------------ |
+| `':'` | `%3A` |
+| `'/'` | `%2F` |
+| `'?'` | `%3F` |
+| `'#'` | `%23` |
+| `'['` | `%5B` |
+| `']'` | `%5D` |
+| `'@'` | `%40` |
+| `'!'` | `%21` |
+| `'$'` | `%24` |
+| `'&'` | `%26` |
+| `"'"` | `%27` |
+| `'('` | `%28` |
+| `')'` | `%29` |
+| `'*'` | `%2A` |
+| `'+'` | `%2B` |
+| `','` | `%2C` |
+| `';'` | `%3B` |
+| `'='` | `%3D` |
+| `'%'` | `%25` |
+| `' '` | `%20` or `+` |
문맥에 따라 문자 `' '`는 `application/x-www-form-urlencoded` 메시지에서 사용된 것과 같은 퍼센트 인코딩처럼 `'+'`로 변환되며 URL에서는 `'%20'`으로 변환됩니다.
diff --git a/files/ko/glossary/png/index.md b/files/ko/glossary/png/index.md
index 5048ee4080da0b..171ca976f2f9d7 100644
--- a/files/ko/glossary/png/index.md
+++ b/files/ko/glossary/png/index.md
@@ -2,6 +2,7 @@
title: PNG
slug: Glossary/PNG
---
+
**PNG**(Portable Network Graphics)는 무손실 데이터 압축을 지원하는 그래픽 파일 형식입니다.
## 더 알아보기
diff --git a/files/ko/glossary/polyfill/index.md b/files/ko/glossary/polyfill/index.md
index fe1da5c28595d4..49ca841d934396 100644
--- a/files/ko/glossary/polyfill/index.md
+++ b/files/ko/glossary/polyfill/index.md
@@ -2,6 +2,7 @@
title: Polyfill
slug: Glossary/Polyfill
---
+
polyfill은 기본적으로 지원하지 않는 이전 브라우저에서 최신 기능을 제공하는 데 필요한 코드 (일반적으로 웹의 JavaScript)입니다.
예를 들어, Silverlight 플러그인을 사용하여 Microsoft Internet Explorer 7에서 HTML Canvas 요소의 기능을 모방하거나 CSS rem 단위 또는 {{cssxref("text-shadow")}}를 모방하는 등 필요한 모든 것에 polyfill을 사용할 수 있습니다.
diff --git a/files/ko/glossary/primitive/index.md b/files/ko/glossary/primitive/index.md
index a21875b63a1f5a..6316e26e227f73 100644
--- a/files/ko/glossary/primitive/index.md
+++ b/files/ko/glossary/primitive/index.md
@@ -2,6 +2,7 @@
title: 원시 값
slug: Glossary/Primitive
---
+
{{Glossary("JavaScript")}}에서 **원시 값**(primitive, 또는 원시 자료형)이란 {{Glossary("object", "객체")}}가 아니면서 {{glossary("method", "메서드")}}도 가지지 않는 데이터입니다. 원시 값에는 7종류, {{Glossary("string")}}, {{Glossary("number")}}, {{glossary("bigint")}}, {{Glossary("boolean")}}, {{Glossary("undefined")}}, {{Glossary("symbol")}}, 그리고 {{glossary("null")}}이 존재합니다.
대부분의 경우, 원시 값은 언어 구현체의 가장 저급(low level) 단계에서 나타냅니다.
@@ -17,15 +18,15 @@ slug: Glossary/Primitive
```js
// 문자열 메서드는 문자열을 변형하지 않음
var bar = "baz";
-console.log(bar); // baz
+console.log(bar); // baz
bar.toUpperCase();
-console.log(bar); // baz
+console.log(bar); // baz
// 배열 메소드는 배열을 변형함
var foo = [];
-console.log(foo); // []
+console.log(foo); // []
foo.push("plugh");
-console.log(foo); // ["plugh"]
+console.log(foo); // ["plugh"]
// 할당은 원시 값에 새로운 값을 부여 (변형이 아님)
bar = bar.toUpperCase(); // BAZ
@@ -45,21 +46,21 @@ let foo = 5;
// 원시 값을 변경해야 하는 함수 정의
function addTwo(num) {
- num += 2;
+ num += 2;
}
// 같은 작업을 시도하는 다른 함수
function addTwo_v2(foo) {
- foo += 2;
+ foo += 2;
}
// 원시 값을 인수로 전달해 첫 번째 함수를 호출
addTwo(foo);
// 현재 원시 값 반환
-console.log(foo); // 5
+console.log(foo); // 5
// 두 번째 함수로 다시 시도
addTwo_v2(foo);
-console.log(foo); // 5
+console.log(foo); // 5
```
`5` 대신 `7` 일 것이라고 예상하였나요? 그렇다면, 이 코드의 실행 과정을 살펴보세요.
diff --git a/files/ko/glossary/protocol/index.md b/files/ko/glossary/protocol/index.md
index ea35ecac1ea966..4a01d3f7057e8a 100644
--- a/files/ko/glossary/protocol/index.md
+++ b/files/ko/glossary/protocol/index.md
@@ -2,6 +2,7 @@
title: 프로토콜
slug: Glossary/Protocol
---
+
**프로토콜**은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계입니다. 기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구합니다. 이런 형식을 정의하는 규칙의 집합을 프로토콜이라고 합니다.
## 더 알아보기
diff --git a/files/ko/glossary/proxy_server/index.md b/files/ko/glossary/proxy_server/index.md
index 3b9208abfca3a0..5184039c23b67e 100644
--- a/files/ko/glossary/proxy_server/index.md
+++ b/files/ko/glossary/proxy_server/index.md
@@ -2,6 +2,7 @@
title: 프록시 서버
slug: Glossary/Proxy_server
---
+
프록시 서버란 인터넷 상의 여러 네트워크들에 접속할 때 중계 역할을 해주는 프로그램 또는 컴퓨터를 말한다. 월드 와이드 웹(World Wide Web) 상의 컨텐츠에 쉽게 접근할 수 있도록 도와준다. 프록시는 리퀘스트를 가로챈 뒤(intercepts) 리스폰스를 돌려준다. 이렇게 가로챈 리퀘스트를 전달해줄 수도, 아닐 수도(예시. 캐시인 경우), 수정할 수도 있다(예시. 서로 다른 두 네트워크 간의 경계에서 헤더를 바꾸는 경우)
프록시는 사용자의 로컬 컴퓨터에 존재할 수도 있고, 인터넷 상에서 사용자의 컴퓨터와 목표 서버 사이 그 어느 곳에든 존재할 수 있다. 일반적으로 크게 주로 2가지 종류의 프록시 서버가 존재한다.
diff --git a/files/ko/glossary/regular_expression/index.md b/files/ko/glossary/regular_expression/index.md
index 1d98d748bcc957..cb355b1813c361 100644
--- a/files/ko/glossary/regular_expression/index.md
+++ b/files/ko/glossary/regular_expression/index.md
@@ -2,6 +2,7 @@
title: 정규식
slug: Glossary/Regular_expression
---
+
정규식(Regular expressions or _regex_)은 연속적인 문자들을 검색하는 제어방법입니다.
정규식은 다양한 언어에서 구현되지만 펄 스크립트 언어에서 가장 잘 구현되어 있으며, 이는 PCRE (_Perl Compatible Regular Expression_)라고 불리는 자체 문법 체계를 구현했습니다. 웹상에서, {{glossary("JavaScript")}} 는{{jsxref("RegExp")}}를 통해 또다른 정규 표현식 문법을 제공합니다.
diff --git a/files/ko/glossary/response_header/index.md b/files/ko/glossary/response_header/index.md
index 54dbdb9405ee2d..aa73a5e18659d8 100644
--- a/files/ko/glossary/response_header/index.md
+++ b/files/ko/glossary/response_header/index.md
@@ -2,6 +2,7 @@
title: 응답 헤더
slug: Glossary/Response_header
---
+
**응답 헤더**는 HTTP 응답에서 사용될 수 있는 {{glossary("header", "HTTP 헤더")}}이며, 메시지의 컨텐츠와는 관련이 없습니다. {{HTTPHeader("Age")}}, {{HTTPHeader("Location")}} 또는 {{HTTPHeader("Server")}}와 같은 응답 헤더는 더 상세한 응답의 컨텍스트를 제공하기위해 사용됩니다.
응답에 나타나는 모든 헤더가 *응답 헤더*인것은 아닙니다. 예를 들어, {{HTTPHeader("Content-Length")}} 헤더는 응답 메시지 바디의 크기를 참조하는 {{glossary("entity header")}}입니다. 그러나 이러한 엔티티 요청은 보통 컨텍스트에서 응답 헤더로 불립니다.
diff --git a/files/ko/glossary/rest/index.md b/files/ko/glossary/rest/index.md
index 0852759c06dc02..3f507c25f82a74 100644
--- a/files/ko/glossary/rest/index.md
+++ b/files/ko/glossary/rest/index.md
@@ -2,6 +2,7 @@
title: REST
slug: Glossary/REST
---
+
**REST(**Representational State Transfer)는 효율적, 안정적이며 확장가능한 분산시스템을 가져올 수 있는소프트웨어 아키텍처 디자인 제약의 모음을 나타냅니다. 그리고 그 제약들을 준수했을 때 그 시스템은 RESTful하다고 일컬어집니다.
REST의 기본 개념은 리소스입니다. 리소스의 예로는 잘 정의된 상태와 관계, 표준화된 작동방식과 형식을 가지고 전송되는 문서를 들 수 있습니다. 종종 타입이나 문서를 수정해야할 때, [APIs](/ko/docs/Glossary/API)혹은 그 서비스는 어디에선가 액션을 불러일으키지 않고 스스로 RESTful을 호출합니다.
diff --git a/files/ko/glossary/safe/http/index.md b/files/ko/glossary/safe/http/index.md
index 869ace8400c794..5b8fd29dc5ead0 100644
--- a/files/ko/glossary/safe/http/index.md
+++ b/files/ko/glossary/safe/http/index.md
@@ -2,6 +2,7 @@
title: 안전함 (HTTP 메서드)
slug: Glossary/Safe/HTTP
---
+
HTTP 메서드가 서버의 상태를 바꾸지 않으면 그 메서드가 **안전**하다고 말합니다. 다른 말로 하면, 읽기
작업만 수행하는 메서드는 안전합니다. 흔히 쓰이는 HTTP 메서드 중에서는 {{HTTPMethod("GET")}}, {{HTTPMethod("HEAD")}},
{{HTTPMethod("OPTIONS")}}가 안전합니다. 모든 안전한 메서드는 [멱등성](/ko/docs/Glossary/Idempotent) 또한
diff --git a/files/ko/glossary/safe/index.md b/files/ko/glossary/safe/index.md
index 89cb0ce25d9149..d7821de502f4f6 100644
--- a/files/ko/glossary/safe/index.md
+++ b/files/ko/glossary/safe/index.md
@@ -2,6 +2,7 @@
title: 안전함
slug: Glossary/Safe
---
+
**안전함**은 맥락에 따라 여러가지를 의미할 수 있습니다. 아래의 용어를 가리키는 경우도 있습니다.
{{GlossaryDisambiguation}}
diff --git a/files/ko/glossary/scope/index.md b/files/ko/glossary/scope/index.md
index 8df469d5a874b0..6ee97840172746 100644
--- a/files/ko/glossary/scope/index.md
+++ b/files/ko/glossary/scope/index.md
@@ -10,13 +10,13 @@ original_slug: Glossary/스코프
```js
function exampleFunction() {
- var x = "declared inside function";
- // x는 오직 exampleFunction 내부에서만 사용 가능.
- console.log("Inside function");
- console.log(x);
+ var x = "declared inside function";
+ // x는 오직 exampleFunction 내부에서만 사용 가능.
+ console.log("Inside function");
+ console.log(x);
}
-console.log(x); // 에러 발생
+console.log(x); // 에러 발생
```
그러나 다음과 같은 코드는 변수가 함수 외부의 전역에서 선언되었기 때문에 유효하다.
@@ -27,8 +27,8 @@ var x = "declared outside function";
exampleFunction();
function exampleFunction() {
- console.log("Inside function");
- console.log(x);
+ console.log("Inside function");
+ console.log(x);
}
console.log("Outside function");
diff --git a/files/ko/glossary/self-executing_anonymous_function/index.md b/files/ko/glossary/self-executing_anonymous_function/index.md
index 807c4d70afbafa..48d551c78475b5 100644
--- a/files/ko/glossary/self-executing_anonymous_function/index.md
+++ b/files/ko/glossary/self-executing_anonymous_function/index.md
@@ -2,6 +2,7 @@
title: Self-Executing Anonymous Function
slug: Glossary/Self-Executing_Anonymous_Function
---
+
정의되자마자 실행되는 {{glossary("JavaScript")}} {{glossary("function")}}입니다. (a.k.a. {{glossary("IIFE")}} (즉시실행함수))
링크된 즉시실행함수 페이지에서 더 많은 정보를 얻을 수 있습니다.
diff --git a/files/ko/glossary/semantics/index.md b/files/ko/glossary/semantics/index.md
index acf7ccfe3e6766..dbf9ec75febf18 100644
--- a/files/ko/glossary/semantics/index.md
+++ b/files/ko/glossary/semantics/index.md
@@ -2,6 +2,7 @@
title: Semantics
slug: Glossary/Semantics
---
+
프로그래밍에서,**시맨틱**은 코드 조각의 *의미*를 나타냅니다 — 예를 들어 ("이게 어떻게 시각적으로 보여질까?" 보다)"이 Javascript 라인을 실행하는 것은 어떤 효과가 있는가?", 혹은 "이 HTML 엘리먼트가 가진 목적이나 역할은 무엇인가?"
## JavaScript 시맨틱
@@ -25,7 +26,9 @@ CSS의 경우입니다. 다양한 종류의 과일을 나타내기 위해서는
반면에 모든 요소를 '최상위 제목'처럼 _보이게_ 할 수 있습니다. 다음을 고려하세요:
```html
-Is this a top level heading?
+Is this a top level heading?
```
이렇게 하면 top level heading 처럼 보이지만 의미적 가치(semantic value)가 없으므로 위에서 설명한 것처럼 추가적인 이점은 얻을 수 없습니다. 따라서 작업에 적합한 HTML 요소를 사용하는 것이 좋습니다.
diff --git a/files/ko/glossary/seo/index.md b/files/ko/glossary/seo/index.md
index 91ce988245391c..c83092ed856fde 100644
--- a/files/ko/glossary/seo/index.md
+++ b/files/ko/glossary/seo/index.md
@@ -2,6 +2,7 @@
title: SEO
slug: Glossary/SEO
---
+
**SEO**(검색 엔진 최적화)는 웹사이트가 검색 결과에 더 잘 보이도록 최적화하는 과정입니다. 검색 랭크 개선이라고도 합니다.
검색 엔진은 웹을 {{Glossary("Crawler", "크롤링")}}하면서 페이지에서 페이지로 링크를 따라가고, 찾은 콘텐츠의 색인을 생성합니다. 검색 결과에 보이는 것은 바로 그 콘텐츠 색인입니다. 크롤러는 일정 규칙을 따르므로, SEO를 진행하며 해당 규칙을 밀접하게 따라가면 웹사이트가 검색 결과의 보다 높은 곳에 노출돼 (전자상거래와 광고라면) 수익으로 연결될 수도 있습니다.
diff --git a/files/ko/glossary/server/index.md b/files/ko/glossary/server/index.md
index 6ee76213459166..6be4f4d9cb1eee 100644
--- a/files/ko/glossary/server/index.md
+++ b/files/ko/glossary/server/index.md
@@ -2,6 +2,7 @@
title: Server
slug: Glossary/Server
---
+
서버는 일반적으로 클라이언트라고 불리는 사용자에게 서비스를 제공하는 소프트웨어 또는 하드웨어이다. 하드웨어 서버는 네트워크의 공유 컴퓨터로서, 대개 강력하고 데이터 센터에 저장된다. 소프트웨어 서버(하드웨어 서버에서 자주 실행됨)는 클라이언트 프로그램에 서비스를 제공하는 프로그램 또는 사용자 클라이언트의 {{glossary("UI","user interface")}}을 말한다.
서비스는 일반적으로 지역 네트워크 또는 인터넷과 같은 광역 네트워크를 통해 제공된다. 클라이언트 프로그램과 서버 프로그램은 전통적으로 {{glossary("API")}}을 사용하여 인코딩된 메시지를 {{glossary("protocol", "프로토콜")}}에 전달하여 연결한다.
diff --git a/files/ko/glossary/shim/index.md b/files/ko/glossary/shim/index.md
index fa5f6623acf905..718f1f9b48e9a2 100644
--- a/files/ko/glossary/shim/index.md
+++ b/files/ko/glossary/shim/index.md
@@ -2,6 +2,7 @@
title: 심
slug: Glossary/Shim
---
+
**심shim**은 이미 존재하는 코드의 동작을 바로잡는 데 사용되는 코드 모음이며, 보통 문제를 야기시키는 신규 API에 대응한다. 시중에 배포된 브라우저에서 지원되지 않는 신규 API를 구현하는 폴리필({{Glossary("polyfill")}})과 대조된다.
## 더 많은 정보
diff --git a/files/ko/glossary/signature/function/index.md b/files/ko/glossary/signature/function/index.md
index d9e3066c2c094a..50b4a928e4bbb1 100644
--- a/files/ko/glossary/signature/function/index.md
+++ b/files/ko/glossary/signature/function/index.md
@@ -19,7 +19,7 @@ slug: Glossary/Signature/Function
{{Glossary("JavaScript")}}는 _약한 타입_ 혹은 _동적_ 언어입니다. 이것은 여러분이 변수의 타입을 미리 선언하지 않아도 됨을 의미합니다. 타입은 프로그램이 실행되는 동안 자동으로 결정됩니다. 하지만 JavaScript에서의 시그니처는 여전히 여러분에게 메소드에 대한 몇 가지 정보를 제공해줄 수 있습니다:
```js
-MyObject.prototype.myFunction(value)
+MyObject.prototype.myFunction(value);
```
- 메소드는 `MyObject`라 불리는 {{Glossary("object")}}에 장착되어 있습니다.
diff --git a/files/ko/glossary/smtp/index.md b/files/ko/glossary/smtp/index.md
index ae1ba9bd9cc136..7a4b824acb21a0 100644
--- a/files/ko/glossary/smtp/index.md
+++ b/files/ko/glossary/smtp/index.md
@@ -2,6 +2,7 @@
title: SMTP
slug: Glossary/SMTP
---
+
**SMTP**(Simple Mail Transfer Protocol)는 새로운 이메일을 전송할 때 사용하는 {{glossary("protocol", "프로토콜")}}입니다. {{glossary("POP3")}}나 {{glossary("NNTP")}}처럼, SMTP도 {{glossary("state machine", "상태 기계")}} 기반 프로토콜입니다.
SMTP는 상대적으로 직관적입니다. 복잡함을 유발하는 주요 원인은 다양한 인증 방법([GSSAPI](http://en.wikipedia.org/wiki/Generic_Security_Services_Application_Program_Interface), [CRAM-MD5](http://en.wikipedia.org/wiki/CRAM-MD5), [NTLM](http://en.wikipedia.org/wiki/NTLM), MSN, AUTH LOGIN, AUTH PLAIN...) 지원, 오류 응답 처리, 인증 실패(서버에서 어떤 방법을 지원한다고 주장했으나 사실 아닐 때 등) 시 처리 등입니다.
diff --git a/files/ko/glossary/stacking_context/index.md b/files/ko/glossary/stacking_context/index.md
index 10ab9e27426485..1a9566e9fa5c4b 100644
--- a/files/ko/glossary/stacking_context/index.md
+++ b/files/ko/glossary/stacking_context/index.md
@@ -2,6 +2,7 @@
title: 쌓임 맥락
slug: Glossary/Stacking_context
---
+
**쌓임 맥락**은 마치 책상 위의 카드를 옆으로 늘어놓거나 서로 겹치게 만들 수 있듯, 웹 페이지에서 어떤 요소가 위에 그려지는지 결정하는 방법입니다.
## 더 알아보기
diff --git a/files/ko/glossary/synchronous/index.md b/files/ko/glossary/synchronous/index.md
index 8d52142d297593..0b1c51c4113b00 100644
--- a/files/ko/glossary/synchronous/index.md
+++ b/files/ko/glossary/synchronous/index.md
@@ -13,5 +13,5 @@ l10n:
## 같이 보기
-- [비동기(Asynchronous)]({{glossary("Asynchronous")}})
+- [비동기(Asynchronous)](<{{glossary("Asynchronous")}}>)
- [XMLHttpRequest()](/ko/docs/Web/API/XMLHttpRequest) {{glossary("API")}} 를 활용한 [동기, 비동기 요청](/ko/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests)
diff --git a/files/ko/glossary/tls/index.md b/files/ko/glossary/tls/index.md
index 294b5e2a66b595..1662f9a25bbd84 100644
--- a/files/ko/glossary/tls/index.md
+++ b/files/ko/glossary/tls/index.md
@@ -2,6 +2,7 @@
title: 전송 계층 보안 (TLS)
slug: Glossary/TLS
---
+
이전에 {{Glossary("SSL", "Secure Sockets Layer (SSL)")}}로 알려진 **Transport Layer Security** (**TLS**)는 어플리케이션들이 네트워크 상에서 안전하게 통신하기 위해 사용된 {{Glossary("protocol")}}이며, 이메일, 웹 브라우징, 메세징, 그리고 다른 프로토코들의 감청을 통한 정보의 변형을 방지한다. SSL과 TLS 모두 네트워크 상에서 보안을 제공하는 cryptographic 프로토콜을 사용한 클라이언트 / 서버 프로토콜이다. 서버와 클라이언트가 TLS로 통신을 할때, 어떠한 제 3자도 메세지를 변형시키거나 감청할 수 없도록 한다.
모든 모던 브라우저들을 TLS를 지원하고, 안전한 연결을 하기위해서 서버가 유효한 {{Glossary("Digital certificate", "digital certificate")}} 를 제공하기를 요구한다. 클라이언트와 서버 둘 다 각자 digital certificate을 제공하면, 서로를 인증해줄 수 있다.
diff --git a/files/ko/glossary/truthy/index.md b/files/ko/glossary/truthy/index.md
index 7caaf68daf5d12..2e91a57650e11f 100644
--- a/files/ko/glossary/truthy/index.md
+++ b/files/ko/glossary/truthy/index.md
@@ -2,6 +2,7 @@
title: 참 같은 값
slug: Glossary/Truthy
---
+
{{Glossary("JavaScript")}}에서, **참 같은 값**(Truthy)인 값이란 {{Glossary("Boolean", "불리언")}}을 기대하는 문맥에서 `true`로 평가되는 값입니다. 따로 {{Glossary("Falsy", "거짓 같은 값")}}으로 정의된 값이 아니면 모두 참 같은 값으로 평가됩니다. (예: `false`, `0`, `-0`, `0n`, `""`, `null`, `undefined`와 `NaN` 등)
JavaScript는 불리언 문맥에서 {{Glossary("Type_Conversion", "형 변환")}}을 사용합니다.
diff --git a/files/ko/glossary/undefined/index.md b/files/ko/glossary/undefined/index.md
index ba32bbc9c9320b..5379920d5d0f5a 100644
--- a/files/ko/glossary/undefined/index.md
+++ b/files/ko/glossary/undefined/index.md
@@ -10,7 +10,7 @@ slug: Glossary/Undefined
```js
var x; // 값을 할당하지 않고 변수 선언
-console.log("x's value is", x) // "x's value is undefined" 출력
+console.log("x's value is", x); // "x's value is undefined" 출력
```
## 더 알아보기
diff --git a/files/ko/glossary/utf-8/index.md b/files/ko/glossary/utf-8/index.md
index 756a40c385d6a0..cccde794eaf6f1 100644
--- a/files/ko/glossary/utf-8/index.md
+++ b/files/ko/glossary/utf-8/index.md
@@ -2,6 +2,7 @@
title: UTF-8
slug: Glossary/UTF-8
---
+
UTF-8(UCS Transformation Format 8)은 월드 와이드 웹의 가장 일반적인 {{Glossary("Character encoding", "문자 인코딩")}}이다. 각 문자는 1\~4바이트로 표시된다. UTF-8은 {{Glossary("ASCII")}}와 역호환되며 표준 유니코드 문자를 나타낼 수 있다.
처음 128개의 UTF-8 문자는 처음 128개의 ASCII 문자(숫자 0-127)와 정확히 일치하며, 이는 기존 ASCII 텍스트가 이미 유효한 UTF-8임을 의미한다. 다른 모든 문자는 2 \~ 4바이트를 사용한다. 각각의 바이트는 인코딩 목적으로 남겨진 비트가 있다. 비 ASCII 문자가 저장을 위해 1 바이트 이상을 요구하기 때문에, 바이트가 분리되고 재결합되지 않은 상태로 실행하면 손상될 위험이 있다.
diff --git a/files/ko/glossary/variable/index.md b/files/ko/glossary/variable/index.md
index 9b10e1057758e9..bf1b5e04d6296d 100644
--- a/files/ko/glossary/variable/index.md
+++ b/files/ko/glossary/variable/index.md
@@ -2,6 +2,7 @@
title: Variable
slug: Glossary/Variable
---
+
변수는 {{Glossary("Value", "값")}}을 저장하기 위해 명명된 위치이다. 이것을 사용하면 미리 정해진 이름을 통해 예측할 수 없는 값에 접근할 수 있다.
## 더 알아보기
diff --git a/files/ko/glossary/webextensions/index.md b/files/ko/glossary/webextensions/index.md
index c4acad2884596f..fa34bfbe837786 100644
--- a/files/ko/glossary/webextensions/index.md
+++ b/files/ko/glossary/webextensions/index.md
@@ -2,6 +2,7 @@
title: WebExtensions
slug: Glossary/WebExtensions
---
+
WebExtensions은 Firefox에서 브라우저 Extension을 개발하기위한 크로스 브라우저 시스템입니다. 이 시스템은 Mozilla Firefox, Google Chrome, Opera Browser 및 Microsoft Edge와 같은 다양한 브라우저에서 지원되는 API를 제공합니다.
## Learn more
diff --git a/files/ko/glossary/whatwg/index.md b/files/ko/glossary/whatwg/index.md
index 9f0c9e3f035a4c..3f6878d01b2a6c 100644
--- a/files/ko/glossary/whatwg/index.md
+++ b/files/ko/glossary/whatwg/index.md
@@ -2,6 +2,7 @@
title: WHATWG
slug: Glossary/WHATWG
---
+
**WHATWG**(Web Hypertext Application Technology Working Group)은 {{Glossary("DOM")}}, Fetch, {{Glossary("HTML")}} 등 웹 표준을 개발하고 유지하는 단체입니다. 2004년, Apple, Mozilla, Opera의 임직원이 설립했습니다.
## 더 알아보기
diff --git a/files/ko/glossary/world_wide_web/index.md b/files/ko/glossary/world_wide_web/index.md
index cbae01c6822e72..dbb5d914ae4589 100644
--- a/files/ko/glossary/world_wide_web/index.md
+++ b/files/ko/glossary/world_wide_web/index.md
@@ -2,6 +2,7 @@
title: World Wide Web
slug: Glossary/World_Wide_Web
---
+
흔히 **WWW**, **W3**, **Web으로** 불리는 *World Wide Web*은 {{Glossary("Internet")}}을 통해 접근 가능한 공용 웹페이지의 상호연결 시스템이다. 웹은 인터넷과 다르며, 인터넷을 기반으로 한 수많은 응용 프로그램 중 하나이다.
팀 버너스리가 제안한 구조를 바탕으로 훗날 World Wide Web으로 알려질 것이 만들어졌다. 그는 1990년에 CERN 물리학 연구소에서 자신의 컴퓨터에 최초의 웹 {{Glossary("Server","server")}}, 웹 {{Glossary("Browser","browser")}}, 웹페이지를 만들었다. 곧바로 alt.hypertext 뉴스 그룹에 이 소식을 알렸고, 이것이 웹이 세상에 공식적으로 모습을 드러낸 첫 순간이었다.
diff --git a/files/ko/glossary/xhtml/index.md b/files/ko/glossary/xhtml/index.md
index 4d89e493f4ef6b..d61876609d9a41 100644
--- a/files/ko/glossary/xhtml/index.md
+++ b/files/ko/glossary/xhtml/index.md
@@ -3,6 +3,7 @@ title: XHTML
slug: Glossary/XHTML
original_slug: XHTML
---
+
[HTML](/ko/docs/HTML)은 HTML 또는 XHTML이라는 XML문법으로 브라우저를 통해 네트워크에 접속할 수 있습니다.
## HTML5 와 HTML/XHTML
diff --git a/files/ko/learn/accessibility/html/index.md b/files/ko/learn/accessibility/html/index.md
index 38c3bdea341c7b..d1c17f7ee8867b 100644
--- a/files/ko/learn/accessibility/html/index.md
+++ b/files/ko/learn/accessibility/html/index.md
@@ -67,7 +67,7 @@ HTML `
```
-이 코드로는 라벨이 인풋과 명확하게 연관지어집니다. 스크린 리더 설명은 “Fill in your name: edit text”와 같을 것입니다.
+이 코드로는 라벨이 인풋과 명확하게 연관지어집니다. 스크린 리더 설명은 "Fill in your name: edit text"와 같을 것입니다.
!['Fill in your name'으로 읽히는 좋은 폼 라벨이 주어진 텍스트 인풋 폼 컨트롤.](voiceover-good-form-label.png)
@@ -486,7 +486,7 @@ Fill in your name:
```
-첫번째 이미지는 스크린 리더로 봤을 때 사용자에게 별 도움을 주지 않습니다. 예를 들어 VoiceOver는 "/dinosaur.png, image”라고 읽어줍니다. 조금의 도움이라도 제공하기 위해 파일명을 읽어주는 것이죠. 이 예시에서는 유저가 적어도 어떤 종류의 공룡이라는 점을 알 수 있지만, 대부분의 경우 파일명은 기계(예를 들면 디지털 카메라)가 생성합니다. 아마 이미지 내용에 대한 어떤 맥락도 제공하지 않겠죠.
+첫번째 이미지는 스크린 리더로 봤을 때 사용자에게 별 도움을 주지 않습니다. 예를 들어 VoiceOver는 "/dinosaur.png, image"라고 읽어줍니다. 조금의 도움이라도 제공하기 위해 파일명을 읽어주는 것이죠. 이 예시에서는 유저가 적어도 어떤 종류의 공룡이라는 점을 알 수 있지만, 대부분의 경우 파일명은 기계(예를 들면 디지털 카메라)가 생성합니다. 아마 이미지 내용에 대한 어떤 맥락도 제공하지 않겠죠.
> **참고:** 이것이 이미지 안에 텍스트 콘텐츠를 포함해서는 안되는 이유입니다. 스크린 리더는 그 정보에 접근할 수 없습니다. 다른 단점도 있습니다. 그것을 선택하거나 복사/붙여넣기 할 수 없습니다. 하지 말라면 하지마세요.
@@ -548,7 +548,7 @@ HTML에는 {{htmlelement("figure")}}와 어떤 종류(이미지 외에 어떤
```
-페이지 디자인에 포함되어 있는 이미지가 시각적인 장식의 목적만을 가지는 경우가 있습니다. 위 코드 예시에서는 이미지의 `alt` 속성이 비어있는 것을 볼 수 있는데, 이는 스크린 리더가 이미지를 인식해도 설명을 시도하지 않게 하기 위함입니다. “이미지” 같은 것을 말하기보다요.
+페이지 디자인에 포함되어 있는 이미지가 시각적인 장식의 목적만을 가지는 경우가 있습니다. 위 코드 예시에서는 이미지의 `alt` 속성이 비어있는 것을 볼 수 있는데, 이는 스크린 리더가 이미지를 인식해도 설명을 시도하지 않게 하기 위함입니다. "이미지" 같은 것을 말하기보다요.
`alt` 속성을 아예 사용하지 않는 대신 빈 문자열을 넣는 것은 많은 스크린 리더가 `alt` 속성이 없는 경우 이미지 URL 자체를 알려주기 때문입니다. 위 예시의 이미지는 관련된 머릿말을 시각적으로 꾸미는 역할을 합니다. 이런 경우, 또는 정말로 의미있는 내용 없이 장식 요소인 경우 `img` 요소에 빈 `alt` 속성을 추가해야 합니다. 또 다른 방법으로는 aria [`role`](/ko/docs/Web/Accessibility/ARIA/Roles) 속성을 활용해 [`role="presentation"`](/ko/docs/Web/Accessibility/ARIA/Roles/presentation_role) 설정을 할 수 있습니다. 이 역시 스크린 리더가 대체 텍스트를 읽지 않도록 합니다.
diff --git a/files/ko/learn/accessibility/mobile/index.md b/files/ko/learn/accessibility/mobile/index.md
deleted file mode 100644
index cbfc471130b530..00000000000000
--- a/files/ko/learn/accessibility/mobile/index.md
+++ /dev/null
@@ -1,278 +0,0 @@
----
-title: 모바일 접근성
-slug: Learn/Accessibility/Mobile
-original_slug: Learn/접근성/모바일
----
-
-{{LearnSidebar}}{{PreviousMenuNext("Learn/Accessibility/Multimedia","Learn/Accessibility/Accessibility_troubleshooting", "Learn/Accessibility")}}
-
-모바일 기기에서 웹 접근이 매우 자주 발생하고 iOS와 안드로이드와 같은 유명 플랫폼들은 전문적인 접근성 점검도구들이 있기 때문에 웹콘텐츠의 접근성을 고려하는 것이 더욱 중요하다. 여기서는 모바일환경을 중심으로 접근성 고려사항을 살펴본다.
-
-
-
-
-
사전지식:
-
-
- 기본적인 컴퓨터 사용능력, HTML, CSS, JavaScript에 대한 기본적인 이해,
- 그리고
- 이전 내용들에 대한 이해.
-
-
-
-
-
목표:
-
-
- 모바일 기기의 접근성에 어떤 문제가 있는지, 그리고 이를 극복하는 방법을
- 이해한다.
-
-
-
-
-
-
-## 모바일 장치에서의 접근성
-
-접근성 상태(일반적으로 웹 표준에 대한 지원)는 최근의 모바일 장치에서 좋다. 모바일 기기가 데스크톱 브라우저에 전혀 다른 웹 기술을 실행하면서 개발자들이 브라우저 코웃음을 치며 완전히 별개의 사이트에 서비스를 제공하도록 강요하던 시대는 이미 오래 전에 지났다(아직도 상당수의 회사가 모바일 장치의 사용을 감지하여 별도의 모바일 도메인을 서비스하고 있다).
-
-The state of accessibility — and support for web standards in general — is good in modern mobile devices. Long gone are the days when mobile devices ran completely different web technologies to desktop browsers, forcing developers to use browser sniffing and serve them completely separate sites (although quite a few companies still detect usage of mobile devices and serve them a separate mobile domain).
-
-These days, mobile devices can usually handle fully-featured websites, and the main platforms even have screenreaders built in to enable visually impaired users to use them successfully. Modern mobile browsers tend to have good support for [WAI-ARIA](/ko/docs/Learn/Accessibility/WAI-ARIA_basics), too.
-
-To make a website accessible and usable on mobile, you just need to follow general good web design and accessibility best practices.
-
-There are some exceptions that need special consideration for mobile; the main ones are:
-
-- Control mechanisms — Make sure interface controls such as buttons are accessible on mobiles (i.e., mainly touchscreen), as well as desktops/laptops (mainly mouse/keyboard).
-- User input — Make user input requirements as painless as possible on mobile (e.g., in forms, keep typing to a minimum).
-- Responsive design — Make sure layouts work on mobile, conserve image download sizes, and think about the provision of images for high-resolution screens.
-
-## Summary of screenreader testing on Android and iOS
-
-The most common mobile platforms have fully functional screen readers. These function in much the same way as desktop screenreaders, except they are largely operated using touch gestures rather than key combinations.
-
-Let's look at the main two: TalkBack on Android and VoiceOver on iOS.
-
-### Android TalkBack
-
-The TalkBack screen reader is built into the Android operating system.
-
-To turn it on, look up what phone model and Android version you have, and then look up where the TalkBack menu is. It tends to differ widely between Android versions and even between different phone models. Some phone manufacturers (e.g. Samsung) don't even have TalkBack in newer phones, and instead opted for their own screen reader.
-
-When you've found the TalkBack menu, press the slider switch to turn TalkBack on. Follow any additional on-screen prompts that you are presented with.
-
-When TalkBack is turned on, your Android device's basic controls will be a bit different. For example:
-
-1. Single-tapping an app will select it, and the device will read out what the app is.
-2. Swiping left and right will move between apps, or buttons/controls if you are in a control bar. The device will read out each option.
-3. Double-tapping anywhere will open the app/select the option.
-4. You can also "explore by touch" — hold your finger down on the screen and drag it around, and your device will read out the different apps/items you move across.
-
-If you want to turn TalkBack off:
-
-1. Navigate back to the TalkBack menu screen (using the different gestures that are currently enabled.)
-2. Navigate to the slider switch and activate it to turn it off.
-
-> **참고:** You can get to your home screen at any time by swiping up and left in a smooth motion. If you have more than one home screen, you can move between them by swiping two fingers left and right.
-
-For a more complete list of TalkBack gestures, see [Use TalkBack gestures](https://support.google.com/accessibility/android/answer/6151827).
-
-#### Unlocking the phone
-
-When TalkBack is turned on, unlocking the phone is a bit different.
-
-You can do a two-finger swipe up from the bottom of the lock screen. If you've set a passcode or pattern for unlocking your device, you will then be taken to the relevant entry screen to enter it.
-
-You can also explore by touch to find the _Unlock_ button at the bottom middle of the screen, and then double-tap.
-
-#### Global and local menus
-
-TalkBack allows you to access global and local context menus, wherever you have navigated to on the device. The former provides global options relating to the device as a whole, and the latter provides options relating just to the current app/screen you are in.
-
-To get to these menus:
-
-1. Access the global menu by quickly swiping down, and then right.
-2. Access the local menu by quickly swiping up, and then right.
-3. Swipe left and right to cycle between the different options.
-4. Once you've selected the option you want, double-click to choose that option.
-
-For details on all the options available under the global and local context menus, see [Use global and local context menus](https://support.google.com/accessibility/android/answer/6007066).
-
-#### Browsing web pages
-
-You can use the local context menu while in a web browser to find options to navigate web pages using just the headings, form controls, or links, or navigate line by line, etc.
-
-For example, with TalkBack turned on:
-
-1. Open your web browser.
-2. Activate the URL bar.
-3. Enter a web page that has a bunch of headings on it, such as the front page of bbc.co.uk. To enter the text of the URL:
-
- - Select the URL bar by swiping left/right till you get to it, and then double-tapping.
- - Hold your finger down on the virtual keyboard until you get the character you want, and then release your finger to type it. Repeat for each character.
- - Once you've finished, find the Enter key and press it.
-
-4. Swipe left and right to move between different items on the page.
-5. Swipe up and right with a smooth motion to enter the local content menu.
-6. Swipe right until you find the "Headings and Landmarks" option.
-7. Double-tap to select it. Now you'll be able to swipe left and right to move between headings and ARIA landmarks.
-8. To go back to the default mode, enter the local context menu again by swiping up and right, select "Default", and then double-tap to activate.
-
-**Note:** See [Get started on Android with TalkBack](https://support.google.com/accessibility/android/answer/6283677?hl=en&ref_topic=3529932) for more complete documentation.
-
-### iOS VoiceOver
-
-A mobile version of VoiceOver is built into the iOS operating system.
-
-To turn it on, go to Your _Settings_ app and select _Accessibility > VoiceOver_. Press the _VoiceOver_ slider to enable it (you'll also see a number of other options related to VoiceOver on this page).
-
-> **참고:** Some older iOS devices have the VoiceOver menu at _Settings app_ > _General_ > _Accessibility_ > _VoiceOver_.
-
-Once VoiceOver is enabled, iOS's basic control gestures will be a bit different:
-
-1. A single tap will cause the item you tap on to be selected; your device will speak the item you've tapped on.
-2. You can also navigate the items on the screen by swiping left and right to move between them, or by sliding your finger around on the screen to move between different items (when you find the item you want, you can remove your finger to select it).
-3. To activate the selected item (e.g., open a selected app), double-tap anywhere on the screen.
-4. Swipe with three fingers to scroll through a page.
-5. Tap with two fingers to perform a context-relevant action — for example, taking a photo while in the camera app.
-
-To turn it off again, navigate back to _Settings > General > Accessibility > VoiceOver_ using the above gestures, and toggle the _VoiceOver_ slider back to off.
-
-#### Unlock phone
-
-To unlock the phone, you need to press the home button (or swipe) as normal. If you have a passcode set, you can select each number by swiping/sliding (as explained above) and then double-tapping to enter each number when you've found the right one.
-
-#### Using the Rotor
-
-When VoiceOver is turned on, you have a navigation feature called the Rotor available to you, which allows you to quickly choose from a number of common useful options. To use it:
-
-1. Twist two fingers around on the screen like you are turning a dial. Each option will be read aloud as you twist further around. You can go back and forth to cycle through the options.
-2. Once you've found the option you want:
-
- - Release your fingers to select it.
- - If it is an option you can iterate the value of (such as Volume or Speaking Rate), you can do a swipe up or down to increase or decrease the value of the selected item.
-
-The options available under the Rotor are context-sensitive — they will differ depending on what app or view you are in (see below for an example).
-
-#### Browsing web pages
-
-Let's have a go at web browsing with VoiceOver:
-
-1. Open your web browser.
-2. Activate the URL bar.
-3. Enter a web page that has a bunch of headings on it, such as the front page of bbc.co.uk. To enter the text of the URL:
-
- - Select the URL bar by swiping left/right until you get to it, and then double-tapping.
- - For each character, hold your finger down on the virtual keyboard until you get the character you want, and then release your finger to select it. Double-tap to type it.
- - Once you've finished, find the Enter key and press it.
-
-4. Swipe left and right to move between items on the page. You can double-tap an item to select it (e.g., follow a link).
-5. By default, the selected Rotor option will be Speaking Rate; you can currently swipe up and down to increase or decrease the speaking rate.
-6. Now turn two fingers around the screen like a dial to show the rotor and move between its options. Here are a few examples of the options available:
-
- - _Speaking Rate_: Change the speaking rate.
- - _Containers_: Move between different semantic containers on the page.
- - _Headings_: Move between headings on the page.
- - _Links_: Move between links on the page.
- - _Form Controls_: Move between form controls on the page.
- - _Language_: Move between different translations, if they are available.
-
-7. Select _Headings_. Now you'll be able to swipe up and down to move between headings on the page.
-
-**Note:** For a more complete reference covering the VoiceOver gestures available and other hints on accessibility testing on iOS, see [Test Accessibility on Your Device with VoiceOver](https://developer.apple.com/library/content/technotes/TestingAccessibilityOfiOSApps/TestAccessibilityonYourDevicewithVoiceOver/TestAccessibilityonYourDevicewithVoiceOver.html#//apple_ref/doc/uid/TP40012619-CH3).
-
-## Control mechanisms
-
-In our CSS and JavaScript accessibility article, we looked at the idea of events that are specific to a certain type of control mechanism (see [Mouse-specific events](/ko/docs/Learn/Accessibility/CSS_and_JavaScript#mouse-specific_events)). To recap, these cause accessibility issues because other control mechanisms can't activate the associated functionality.
-
-As an example, the [click](/ko/docs/Web/API/GlobalEventHandlers/onclick) event is good in terms of accessibility — an associated event handler can be invoked by clicking the element the handler is set on, tabbing to it and pressing Enter/Return, or tapping it on a touchscreen device. Try our [simple-button-example.html](https://github.com/mdn/learning-area/blob/master/accessibility/mobile/simple-button-example.html) example ([see it running live](http://mdn.github.io/learning-area/accessibility/mobile/simple-button-example.html)) to see what we mean.
-
-Alternatively, mouse-specific events such as [mousedown](/ko/docs/Web/API/GlobalEventHandlers/onmousedown) and [mouseup](/ko/docs/Web/API/GlobalEventHandlers/onmouseup) create problems — their event handlers cannot be invoked using non-mouse controls.
-
-If you try to control our [simple-box-drag.html](https://github.com/mdn/learning-area/blob/master/accessibility/mobile/simple-box-drag.html) ([see example live](http://mdn.github.io/learning-area/accessibility/mobile/simple-box-drag.html)) example with a keyboard or touch, you'll see the problem. This occurs because we are using code such as the following:
-
-```
-div.onmousedown = function() {
- initialBoxX = div.offsetLeft;
- initialBoxY = div.offsetTop;
- movePanel();
-}
-
-document.onmouseup = stopMove;
-```
-
-To enable other forms of control, you need to use different, yet equivalent events — for example, touch events work on touchscreen devices:
-
-```
-div.ontouchstart = function(e) {
- initialBoxX = div.offsetLeft;
- initialBoxY = div.offsetTop;
- positionHandler(e);
- movePanel();
-}
-
-panel.ontouchend = stopMove;
-```
-
-We've provided a simple example that shows how to use the mouse and touch events together — see [multi-control-box-drag.html](https://github.com/mdn/learning-area/blob/master/accessibility/mobile/multi-control-box-drag.html) ([see the example live](http://mdn.github.io/learning-area/accessibility/mobile/multi-control-box-drag.html) also).
-
-> **참고:** You can also see fully functional examples showing how to implement different control mechanisms at [Implementing game control mechanisms](/ko/docs/Games/Techniques/Control_mechanisms).
-
-## Responsive design
-
-[Responsive design](/ko/docs/Web/Apps/Progressive/Responsive) is the practice of making your layouts and other features of your apps dynamically change depending on factors such as screen size and resolution, so they are usable and accessible to users of different device types.
-
-In particular, the most common problems that need to be addressed for mobile are:
-
-- Suitability of layouts for mobile devices. A multi-column layout won't work as well on a narrow screen, for example, and the text size may need to be increased so it is legible. Such issues can be solved by creating a responsive layout using technologies such as [media queries](/ko/docs/Web/CSS/Media_Queries), [viewport](/ko/docs/Mozilla/Mobile/Viewport_meta_tag), and [flexbox](/ko/docs/Learn/CSS/CSS_layout/Flexbox).
-- Conserving image sizes downloaded. In general, small screen devices won't need images that are as large as their desktop counterparts, and they are more likely to be on slow network connections. Therefore, it is wise to serve smaller images to narrow screen devices as appropriate. You can handle this using [responsive image techniques](/ko/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images).
-- Thinking about high resolutions. Many mobile devices have high-resolution screens, and therefore need higher-resolution images so that the display can continue to look crisp and sharp. Again, you can serve images as appropriate using responsive image techniques. In addition, many image requirements can be fulfilled using the SVG vector images format, which is well-supported across browsers today. SVG has a small file size and will stay sharp regardless of whatever size is being displayed (see [Adding vector graphics to the web](/ko/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web) for more details).
-
-**Note:** We won't provide a full discussion of responsive design techniques here, as they are covered in other places around MDN (see above links).
-
-### Specific mobile considerations
-
-There are other important issues to consider when making sites more accessible on mobile. We have listed a couple here, but we will add more when we think of them.
-
-#### Not disabling zoom
-
-Using [viewport](/ko/docs/Mozilla/Mobile/Viewport_meta_tag), it is possible to disable zoom. Always ensure resizing is enabled, and set the width to the device's width in the {{htmlelement("head")}}:
-
-```html
-
-```
-
-You should never set `user-scalable=no` if at all possible — many people rely on zoom to be able to see the content of your website, so taking this functionality away is a really bad idea. There are certain situations where zooming might break the UI; in such cases, if you feel that you absolutely need to disable zoom, you should provide some other kind of equivalent, such as a control for increasing the text size in a way that doesn't break your UI.
-
-#### Keeping menus accessible
-
-Because the screen is so much narrower on mobile devices, it is very common to use media queries and other technologies to make the navigation menu shrink down to a tiny icon at the top of the display — which can be pressed to reveal the menu only if it's needed — when the site is viewed on mobile. This is commonly represented by a "three horizontal lines" icon, and the design pattern is consequently known as a "hamburger menu".
-
-When implementing such a menu, you need to make sure that the control to reveal it is accessible by appropriate control mechanisms (normally touch for mobile), as discussed in [Control mechanisms](#control_mechanisms) above, and that the rest of the page is moved out of the way or hidden in some way while the menu is being accessed, to avoid confusion with navigating it.
-
-Click here for a [good hamburger menu example](http://fritz-weisshart.de/meg_men/).
-
-## User input
-
-On mobile devices, inputting data tends to be more annoying for users than the equivalent experience on desktop computers. It is more convenient to type text into form inputs using a desktop or laptop keyboard than a touchscreen virtual keyboard or a tiny mobile physical keyboard.
-
-For this reason, it is worth trying to minimize the amount of typing needed. As an example, instead of getting users to fill out their job title each time using a regular text input, you could instead offer a {{htmlelement("select")}} menu containing the most common options (which also helps with consistency in data entry), and offer an "Other" option that displays a text field to type any outliers into. You can see a simple example of this idea in action in [common-job-types.html](https://github.com/mdn/learning-area/blob/master/accessibility/mobile/common-job-types.html) (see the [common jobs example live](http://mdn.github.io/learning-area/accessibility/mobile/common-job-types.html)).
-
-It is also worth considering the use of HTML5 form input types such as the date on mobile platforms as they handle them well — both Android and iOS, for example, display usable widgets that fit well with the device experience. See [html5-form-examples.html](https://github.com/mdn/learning-area/blob/master/accessibility/mobile/html5-form-examples.html) for some examples (see the [HTML5 form examples live](http://mdn.github.io/learning-area/accessibility/mobile/html5-form-examples.html)) — try loading these and manipulating them on mobile devices. For example:
-
-- Types `number`, `tel`, and `email` display suitable virtual keyboards for entering numbers/telephone numbers.
-- Types `time` and `date` display suitable pickers for selecting times and dates.
-
-If you want to provide a different solution for desktops, you could always serve different markup to your mobile devices using feature detection. See [input types](http://diveinto.html5doctor.com/detect.html#input-types) for raw information on detecting different input types, and also check out our [feature detection article](/ko/docs/Learn/Tools_and_testing/Cross_browser_testing/Feature_detection) for much more information.
-
-## Summary
-
-In this article, we have provided you with some details about common mobile accessibility-specific issues and how to overcome them. We also took you through the usage of the most common screenreaders to aid you in accessibility testing.
-
-## See also
-
-- [Guidelines For Mobile Web Development](https://www.smashingmagazine.com/guidelines-for-mobile-web-development/) — A list of articles in _Smashing Magazine_ covering different techniques for mobile web design.
-- [Make your site work on touch devices](http://www.creativebloq.com/javascript/make-your-site-work-touch-devices-51411644) — Useful article about using touch events to get interactions working on mobile devices.
-
-{{PreviousMenuNext("Learn/Accessibility/Multimedia","Learn/Accessibility/Accessibility_troubleshooting", "Learn/Accessibility")}}
diff --git a/files/ko/learn/accessibility/what_is_accessibility/index.md b/files/ko/learn/accessibility/what_is_accessibility/index.md
index 095953c1e4322e..eaed31f92bc9ed 100644
--- a/files/ko/learn/accessibility/what_is_accessibility/index.md
+++ b/files/ko/learn/accessibility/what_is_accessibility/index.md
@@ -110,7 +110,7 @@ l10n:
## 프로젝트에 접근성 구현하기
-실제 프로젝트 구현 단계에서 접근성은 “비싼 추가 사항”으로 간주되는 경우가 많은데, 아래와 같은 경우에는 사실이 될 수 있습니다.
+실제 프로젝트 구현 단계에서 접근성은 "비싼 추가 사항"으로 간주되는 경우가 많은데, 아래와 같은 경우에는 사실이 될 수 있습니다.
- 심각한 접근성 이슈가 있는 기존의 웹 사이트에 접근성을 추가하며 개조하려고 하는 경우
- 프로젝트가 한참 진행된 뒤에야 접근성을 고려하며 관련된 이슈들을 발견한 경우
@@ -125,7 +125,7 @@ l10n:
접근성을 위한 작업이 필요한 잠재적 문제 영역에 대해 기록하고, 철저하게 테스팅 될 수 있도록 하며 해결 방안과 대안을 생각해야 합니다. 텍스트 콘텐츠는 (다음 아티클에서 살펴볼 것처럼) 쉬운 편이지만, 멀티미디어 콘텐츠나 최신 3D 기술로 만들어진 그래픽들은 어떻게 해야할까요? 프로젝트 예산을 고려해 이런 콘텐츠들을 접근성 있게 만들기 위해서 어떤 일을 할 수 있는지 생각해보세요. 비용은 많이 들겠지만 모든 멀티미디어에 대해 다른 형태의 기록, 음성 등을 제공하는 것도 가능합니다.
-동시에 현실적으로 생각하세요. “100% 접근성"은 실현 불가능한 이상입니다. 언제나 예외가 존재하고 어떤 사용자는 어떤 콘텐츠를 사용하기 어렵다고 느낄 것입니다. 하지만 할 수 있는 만큼 노력해야 합니다. 만약 WebGL을 사용해 멋진 3D 파이 차트 그래픽을 만들 계획이라면, 같은 데이터에 대한 데이터 테이블을 접근성 있는 형태로 포함할 수 있습니다. 또는 3D 파이 차트를 테이블로 대체할 수도 있겠습니다. 테이블은 모두에게 접근성 있으며, 더 빠르게 개발 가능하고, CPU 집약적이지도 않으며 유지보수도 더 쉽습니다.
+동시에 현실적으로 생각하세요. "100% 접근성"은 실현 불가능한 이상입니다. 언제나 예외가 존재하고 어떤 사용자는 어떤 콘텐츠를 사용하기 어렵다고 느낄 것입니다. 하지만 할 수 있는 만큼 노력해야 합니다. 만약 WebGL을 사용해 멋진 3D 파이 차트 그래픽을 만들 계획이라면, 같은 데이터에 대한 데이터 테이블을 접근성 있는 형태로 포함할 수 있습니다. 또는 3D 파이 차트를 테이블로 대체할 수도 있겠습니다. 테이블은 모두에게 접근성 있으며, 더 빠르게 개발 가능하고, CPU 집약적이지도 않으며 유지보수도 더 쉽습니다.
반면에 흥미로운 3D 아트를 전시하는 갤러리 웹사이트를 작업하고 있다면, 모든 작품이 전적으로 시각적인 매체이므로 시각 장애인에게 완벽한 접근성을 제공하기는 어려울 것입니다.
diff --git a/files/ko/learn/common_questions/tools_and_setup/checking_that_your_web_site_is_working_properly/index.md b/files/ko/learn/common_questions/tools_and_setup/checking_that_your_web_site_is_working_properly/index.md
index 0560cea75f8994..16ab5b3b72b4d1 100644
--- a/files/ko/learn/common_questions/tools_and_setup/checking_that_your_web_site_is_working_properly/index.md
+++ b/files/ko/learn/common_questions/tools_and_setup/checking_that_your_web_site_is_working_properly/index.md
@@ -47,7 +47,7 @@ _There is no active learning available yet. [Please, consider contributing](/ko/
우리의 개인 사이트를 봅시다.(동작x), `http://demozilla.examplehostingprovider.net/`. It's not showing the image we expected!
-![Oops, the ‘unicorn’ image is missing](image-missing.png)
+![Oops, the 'unicorn' image is missing](image-missing.png)
Open Firefox's Network tool (**Tools ➤ Web Developer ➤ Network**) and reload the page:
@@ -86,7 +86,7 @@ So what went wrong?
At first glance, the image we asked for seems to be in the right place... but the Network tool reported a "404". It turns out that we made a typo in our HTML code: `unicorn_pics.png` rather than `unicorn_pic.png`. So correct the typo in your code editor by changing the image's `src` attribute:
-![Deleting the ‘s’](code-correct.png)
+![Deleting the 's'](code-correct.png)
Save, [push to the server](/en-US/Learn/Upload_files_to_a_web_server), and reload the page in your browser:
@@ -105,7 +105,7 @@ The most frequent errors that we find are these:
#### Typos in the address
-We wanted to type `http://demozilla.examplehostingprovider.net/` but typed too fast and forgot an “l”:
+We wanted to type `http://demozilla.examplehostingprovider.net/` but typed too fast and forgot an "l":
![Address unreachable](cannot-find-server.png)
@@ -154,7 +154,7 @@ PING mozilla.org (63.245.215.20): 56 data bytes
round-trip min/avg/max/stddev = 147.857/148.468/148.741/0.362 ms
```
-Just keep in mind a handy keyboard shortcut: **Ctrl+C**. Ctrl+C sends an “interrupt” signal to the runtime and tells it to stop. If you don't stop the runtime, `ping` will ping the server indefinitely.
+Just keep in mind a handy keyboard shortcut: **Ctrl+C**. Ctrl+C sends an "interrupt" signal to the runtime and tells it to stop. If you don't stop the runtime, `ping` will ping the server indefinitely.
### A simple checklist
diff --git a/files/ko/learn/common_questions/tools_and_setup/upload_files_to_a_web_server/index.md b/files/ko/learn/common_questions/tools_and_setup/upload_files_to_a_web_server/index.md
index 16a292b0363aa6..18d6df9508fd6b 100644
--- a/files/ko/learn/common_questions/tools_and_setup/upload_files_to_a_web_server/index.md
+++ b/files/ko/learn/common_questions/tools_and_setup/upload_files_to_a_web_server/index.md
@@ -85,7 +85,7 @@ To publish to this account, please connect through FTP with the following creden
![Our demozilla personal website, seen in a browser: it's empty](demozilla-empty.png)
-> **참고:** 보이는 화면은 여러분의 호스팅 제공자에 따라 다릅니다. 대부분은 “This website is hosted by \[Hosting Service].”과 같은 페이지를 보게될 것입니다.
+> **참고:** 보이는 화면은 여러분의 호스팅 제공자에 따라 다릅니다. 대부분은 "This website is hosted by \[Hosting Service]."과 같은 페이지를 보게될 것입니다.
이제 우리의 FTP 클라이언트를 멀리 떨어진 서버에 접속하기 위해 _"Create an account..." 버튼을 누릅니다._ 그리고 호스팅제공자로 부터 받은 정보를 해당 필드에 채워줍니다.
diff --git a/files/ko/learn/common_questions/web_mechanics/pages_sites_servers_and_search_engines/index.md b/files/ko/learn/common_questions/web_mechanics/pages_sites_servers_and_search_engines/index.md
index 46046eedfa0c5f..ae53414f9ccf60 100644
--- a/files/ko/learn/common_questions/web_mechanics/pages_sites_servers_and_search_engines/index.md
+++ b/files/ko/learn/common_questions/web_mechanics/pages_sites_servers_and_search_engines/index.md
@@ -84,7 +84,7 @@ _웹 페이지_ 와 _웹사이트 에 대한 생각은_ 특히 하나의*웹 페
### 웹 서버
-##### *웹 서버*는 한 개 이상의 *웹사이트*를 호스팅하는 컴퓨터입니다. "호스팅"은 모든 _웹 페이지_ 및 웹 페이지가 지원하는 파일들을 컴퓨터에서 이용할 수 있다는 것을 의미한다. *웹 서버*는 유저의 request(요청)마다 호스팅하는 *웹사이트*에서 유저의 브라우저로 *웹 페이지*를 보낼 것이다.
+##### *웹 서버*는 한 개 이상의 *웹사이트*를 호스팅하는 컴퓨터입니다. "호스팅"은 모든 _웹 페이지_ 및 웹 페이지가 지원하는 파일들을 컴퓨터에서 이용할 수 있다는 것을 의미한다. *웹 서버*는 유저의 request(요청)마다 호스팅하는 *웹사이트*에서 유저의 브라우저로 *웹 페이지*를 보낼 것이다
*웹 사이트*와 *웹 서버*를 혼동하지 마라. 예를 들어, 당신이 누군가 "내 웹사이트가 반응하지 않는다." 라고 말하는 것을 들었다면, 그것은 사실 *웹 서버*가 반응하지 않는다는 의미이다. 그러므로 *웹사이트*를 이용하지 못 한다. 더 중요하게, *웹 서버*는 여러 웹사이트에 호스팅될 수 있기 때문에, 웹 서버라는 용어는 절대 웹사이트를 지정하기 위해 사용하지 않는다. 그것이 큰 혼란을 일으킬 수 있기 때문이다. 아까의 예처럼, 만약 우리가 "내 웹 서버가 반응하지 않는다." 라고 하면, 그것은 웹 서버가 이용할 수 있는 웹 사이트가 없다는 것을 의미한다.
diff --git a/files/ko/learn/common_questions/web_mechanics/what_is_a_domain_name/index.md b/files/ko/learn/common_questions/web_mechanics/what_is_a_domain_name/index.md
index 0d915096660839..f12afb46db0ba3 100644
--- a/files/ko/learn/common_questions/web_mechanics/what_is_a_domain_name/index.md
+++ b/files/ko/learn/common_questions/web_mechanics/what_is_a_domain_name/index.md
@@ -59,7 +59,7 @@ _아직 이용가능한 Active Learning이 없습니다. [Please, consider contr
#### 누가 도메인 이름을 갖고 있나요?
-You cannot “buy a domain name”. You pay for the right to use a domain name for one or more years. You can renew your right, and your renewal has priority over other people's applications. But you never own the domain name.
+You cannot "buy a domain name". You pay for the right to use a domain name for one or more years. You can renew your right, and your renewal has priority over other people's applications. But you never own the domain name.
Companies called registrars use domain name registries to keep track of technical and administrative information connecting you to your domain name.
@@ -69,7 +69,7 @@ Companies called registrars use domain name registries to keep track of technica
To find out whether a given domain name is available,
-- Go to a domain name registrar's website. Most of them provide a “whois” service that tells you whether a domain name is available.
+- Go to a domain name registrar's website. Most of them provide a "whois" service that tells you whether a domain name is available.
- Alternatively, if you use a system with a built-in shell, type a `whois` command into it, as shown here for `mozilla.org`:
```
@@ -113,7 +113,7 @@ NOT FOUND
과정은 다음과 같습니다.
1. 등록 웹사이트로 가세요.
-2. 일반적으로 눈에 띄게 “Get a domain name” 이라는 글자가 있을거에요. 클릭하세요.
+2. 일반적으로 눈에 띄게 "Get a domain name" 이라는 글자가 있을거에요. 클릭하세요.
3. 요구하는 상세 정보를 채우세요. 그리고 특별히 원하는 도메인 네임의 스펠링을 정확하게 입력했는지 다시한번 확인해주세요. 한번 지불하면 돌이킬 수 없습니다.
4. 등록이 잘 되었다면 등록 웹사이트에서 연락이 올 것입니다. 그리고 몇시간내로 모든 DNS 서버들이 당신의 DNS 정보를 받을거구요.
@@ -121,7 +121,7 @@ NOT FOUND
#### DNS 갱신
-DNS databases are stored on every DNS server worldwide, and all these servers refer to a few ones called “authoritative name server” or “top-level DNS servers.” Whenever your registrar creates or updates any information for a given domain, the information must be refreshed in every DNS database. Each DNS server that knows about a given domain stores the information for some time before it is automatically invalidated and then refreshed (the DNS server queries an authoritative server again). Thus, it takes some time for DNS servers that know about this domain name to get the up-to-date information.
+DNS databases are stored on every DNS server worldwide, and all these servers refer to a few ones called "authoritative name server" or "top-level DNS servers." Whenever your registrar creates or updates any information for a given domain, the information must be refreshed in every DNS database. Each DNS server that knows about a given domain stores the information for some time before it is automatically invalidated and then refreshed (the DNS server queries an authoritative server again). Thus, it takes some time for DNS servers that know about this domain name to get the up-to-date information.
> **참고:** **Note :** This time is often called **propagation time**. However this term is not precise since the update is not propagating itself (top → down). DNS servers queried by your computer (down) are the ones that fetch the information from the authoritative server (top) when they need it.
diff --git a/files/ko/learn/css/building_blocks/backgrounds_and_borders/index.md b/files/ko/learn/css/building_blocks/backgrounds_and_borders/index.md
index 88e287d43edcc2..a74e3a526a8a37 100644
--- a/files/ko/learn/css/building_blocks/backgrounds_and_borders/index.md
+++ b/files/ko/learn/css/building_blocks/backgrounds_and_borders/index.md
@@ -45,8 +45,14 @@ CSS {{cssxref("background")}} 속성은 이 수업에서 만나게 될 많은 ba
```css
.box {
- background: linear-gradient(105deg, rgba(255,255,255,.2) 39%, rgba(51,56,57,1) 96%) center center / 400px 200px no-repeat,
- url(big-star.png) center no-repeat, rebeccapurple;
+ background:
+ linear-gradient(
+ 105deg,
+ rgba(255, 255, 255, 0.2) 39%,
+ rgba(51, 56, 57, 1) 96%
+ ) center center / 400px 200px no-repeat,
+ url(big-star.png) center no-repeat,
+ rebeccapurple;
}
```
@@ -179,9 +185,12 @@ CSS {{cssxref("background")}} 속성은 이 수업에서 만나게 될 많은 ba
다른 `background-*` 속성은 `background-image` 와 같은 방식으로 쉼표로 구분된 값을 가질 수도 있습니다:
```css
-background-image: url(image1.png), url(image2.png), url(image3.png), url(image1.png);
+background-image: url(image1.png), url(image2.png), url(image3.png),
+ url(image1.png);
background-repeat: no-repeat, repeat-x, repeat;
-background-position: 10px 20px, top right;
+background-position:
+ 10px 20px,
+ top right;
```
다른 속성의 각 값은 다른 속성의 같은 위치에 있는 값과 일치합니다. 예를 들어, `image1` 의 `background-repeat` 값은 `no-repeat` 입니다. 그러나, 다른 속성의 값이 다른 경우 어떻게 됩니까? 답은 더 적은 수의 값이 순환한다는 것입니다 — 위의 예에서는 4 개의 배경 이미지가 있지만 2 개의 `background-position` 값만 있습니다. 처음 두 위치 값은 처음 두 이미지에 적용되고 다시 순환됩니다 — `image3` 에는 첫 번째 위치값이 제공되고, `image4` 에는 두 번째 위치값이 제공됩니다.
diff --git a/files/ko/learn/css/building_blocks/cascade_and_inheritance/index.md b/files/ko/learn/css/building_blocks/cascade_and_inheritance/index.md
index 20c3c9012b9cc7..df0d3cc399f7bf 100644
--- a/files/ko/learn/css/building_blocks/cascade_and_inheritance/index.md
+++ b/files/ko/learn/css/building_blocks/cascade_and_inheritance/index.md
@@ -2,6 +2,7 @@
title: 계단식 및 상속
slug: Learn/CSS/Building_blocks/Cascade_and_inheritance
---
+
{{LearnSidebar}}{{NextMenu("Learn/CSS/Building_blocks/Selectors", "Learn/CSS/Building_blocks")}}
이 수업의 목적은 CSS 가 HTML 에 적용되는 방법과 충돌을 해결하는 방법을 제어하는 CSS 의 가장 기본적인 개념인 — 계단식, 우선 순위 및 상속 — 에 대한 이해를 발전시키는 것입니다.
@@ -175,12 +176,12 @@ CSS 속기 속성을 `all` 로 사용하면 이러한 상속 값 중 하나를 (
다음 표는 기분을 전환하기 위해 몇 가지 분리된 예를 보여줍니다. 이것들을 살펴보고 왜 그들이 우리에게 그들에게 주어진 우선 순위를 가지고 있는지 이해하도록 하십시오. 선택자는 아직 자세히 다루지 않았지만, MDN [선택자 참조](/ko/docs/Web/CSS/CSS_Selectors) 에서 각 선택자의 세부 정보를 찾을 수 있습니다.
-| 선택자 | Thousands | Hundreds | Tens | Ones | Total specificity |
-| ------------------------------------------------------------------------------- | --------- | -------- | ---- | ---- | ----------------- |
-| `h1` | 0 | 0 | 0 | 1 | 0001 |
-| `h1 + p::first-letter` | 0 | 0 | 0 | 3 | 0003 |
-| `li > a[href*="en-US"] > .inline-warning` | 0 | 0 | 2 | 2 | 0022 |
-| `#identifier` | 0 | 1 | 0 | 0 | 0100 |
+| 선택자 | Thousands | Hundreds | Tens | Ones | Total specificity |
+| ------------------------------------------------------------------------ | --------- | -------- | ---- | ---- | ----------------- |
+| `h1` | 0 | 0 | 0 | 1 | 0001 |
+| `h1 + p::first-letter` | 0 | 0 | 0 | 3 | 0003 |
+| `li > a[href*="en-US"] > .inline-warning` | 0 | 0 | 2 | 2 | 0022 |
+| `#identifier` | 0 | 1 | 0 | 0 | 0100 |
| 요소의 {{htmlattrxref("style")}} 속성 안에 규칙이 있는 선택자가 없습니다 | 1 | 0 | 0 | 0 | 1000 |
계속 진행하기 전에, 실제 사례를 살펴보겠습니다.
diff --git a/files/ko/learn/css/building_blocks/handling_different_text_directions/index.md b/files/ko/learn/css/building_blocks/handling_different_text_directions/index.md
index 7e4e8caf0be70d..8c71322471a838 100644
--- a/files/ko/learn/css/building_blocks/handling_different_text_directions/index.md
+++ b/files/ko/learn/css/building_blocks/handling_different_text_directions/index.md
@@ -1,7 +1,6 @@
---
title: 텍스트 표시 방향 제어하기
slug: Learn/CSS/Building_blocks/Handling_different_text_directions
-
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Backgrounds_and_borders", "Learn/CSS/Building_blocks/Overflowing_content", "Learn/CSS/Building_blocks")}}
@@ -80,7 +79,7 @@ CSS 레이아웃, 특히 최신 레이아웃 방법을 살펴보기 시작하면
쓰기 모드 외에 텍스트 방향도 있습니다. 위에서 언급한 것처럼, 아랍어와 같은 일부 언어는 가로로 작성되지만, 오른쪽에서 왼쪽으로 작성됩니다. 이것은 창의적 의미에서 사용할 가능성이 있는 것이 아닙니다 — 단순히 오른쪽에 무언가를 정렬하려면 다른 방법이 있습니다 — 그러나 CSS 의 특성의 일부로 이것을 이해하는 것이 중요합니다. 웹은 왼쪽에서 오른쪽으로 표시되는 언어만을 위한 것이 아닙니다!
-쓰기 모드와 텍스트 방향이 변경될 수 있기 때문에, 최신 CSS 레이아웃 방법은 왼쪽과 오른쪽, 위와 아래를 참조하지 않습니다. 대신에 그들은 인라인과 블록이라는 아이디어와 함께 ***시작** *과 ***끝** *에 대해 이야기할 것입니다. 지금 그것에 대해 너무 걱정하지 말고 레이아웃을 살펴보기 시작할 때, 이러한 아이디어를 명심하십시오. CSS 에 대한 이해에 도움이 될 것입니다.
+쓰기 모드와 텍스트 방향이 변경될 수 있기 때문에, 최신 CSS 레이아웃 방법은 왼쪽과 오른쪽, 위와 아래를 참조하지 않습니다. 대신에 그들은 인라인과 블록이라는 아이디어와 함께 _시작_ 과 _끝_ 에 대해 이야기할 것입니다. 지금 그것에 대해 너무 걱정하지 말고 레이아웃을 살펴보기 시작할 때, 이러한 아이디어를 명심하십시오. CSS 에 대한 이해에 도움이 될 것입니다.
## 논리적 속성 및 값
diff --git a/files/ko/learn/css/building_blocks/images_media_form_elements/index.md b/files/ko/learn/css/building_blocks/images_media_form_elements/index.md
index 807c21ac7b6b61..409ec268e38f08 100644
--- a/files/ko/learn/css/building_blocks/images_media_form_elements/index.md
+++ b/files/ko/learn/css/building_blocks/images_media_form_elements/index.md
@@ -129,8 +129,8 @@ button,
input,
select,
textarea {
- font-family : inherit;
- font-size : 100%;
+ font-family: inherit;
+ font-size: 100%;
}
```
@@ -173,7 +173,8 @@ textarea {
font-family: inherit;
font-size: 100%;
box-sizing: border-box;
- padding: 0; margin: 0;
+ padding: 0;
+ margin: 0;
}
textarea {
diff --git a/files/ko/learn/css/building_blocks/index.md b/files/ko/learn/css/building_blocks/index.md
index f57d587987e4ef..48ba52d890c2eb 100644
--- a/files/ko/learn/css/building_blocks/index.md
+++ b/files/ko/learn/css/building_blocks/index.md
@@ -2,6 +2,7 @@
title: CSS 구성 블록
slug: Learn/CSS/Building_blocks
---
+
{{LearnSidebar}}
이 강의에서는 [CSS 첫 번째 단계](/ko/docs/Learn/CSS/First_steps) 가 중단된 부분을 처리합니다 — 이제 언어와 구문에 익숙해졌으며, 약간 더 깊이 익힐 때가 되었을 때, 이를 사용하는 기본적인 경험을 얻었습니다. 이 과목에서는 계단식 및 상속, 사용 가능한 모든 선택자 유형, 단위 크기 조정, 배경 및 테두리 스타일 지정, 디버깅 등을 살펴 봅니다.
@@ -35,7 +36,7 @@ slug: Learn/CSS/Building_blocks
- [결합자 (combinators)](/ko/docs/Learn/CSS/Building_blocks/Selectors/Combinators)
- [박스 모델](/ko/docs/Learn/CSS/Building_blocks/The_box_model)
- - : CSS 의 모든 것에는 주위에 박스가 있으며, 이러한 박스를 이해하는 것은 CSS 를 사용하여 레이아웃을 만들거나 다른 항목과 항목을 정렬하는 데 중요합니다. 이 수업에서는 CSS ***박스 모델** *을 제대로 살펴보고, 작동 방식 및 관련 용어를 이해하여 보다 복잡한 레이아웃 작업으로 넘어갈 수 있습니다.
+ - : CSS 의 모든 것에는 주위에 박스가 있으며, 이러한 박스를 이해하는 것은 CSS 를 사용하여 레이아웃을 만들거나 다른 항목과 항목을 정렬하는 데 중요합니다. 이 수업에서는 CSS _박스 모델_ 을 제대로 살펴보고, 작동 방식 및 관련 용어를 이해하여 보다 복잡한 레이아웃 작업으로 넘어갈 수 있습니다.
- [배경 및 테두리](/ko/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders)
- : 이번 수업에서는 CSS 배경과 테두리로 할 수 있는 창의적인 작업을 살펴 보겠습니다. 그라데이션 (gradients), 배경 이미지 및 둥근 테두리를 추가하는 경우, 배경과 테두리는 CSS 의 많은 스타일 질문에 대한 답입니다.
- [다른 텍스트 방향 처리](/ko/docs/Learn/CSS/Building_blocks/Handling_different_text_directions)
diff --git a/files/ko/learn/css/building_blocks/organizing/index.md b/files/ko/learn/css/building_blocks/organizing/index.md
index bc70d64595875d..724e5e66ca19f7 100644
--- a/files/ko/learn/css/building_blocks/organizing/index.md
+++ b/files/ko/learn/css/building_blocks/organizing/index.md
@@ -2,6 +2,7 @@
title: CSS 구성
slug: Learn/CSS/Building_blocks/Organizing
---
+
{{LearnSidebar}}{{PreviousMenu("Learn/CSS/Building_blocks/Debugging_CSS", "Learn/CSS/Building_blocks")}}
더 큰 스타일 시트와 큰 프로젝트에서 작업을 시작하면 큰 CSS 파일을 유지 관리하는 것이 어려울 수 있습니다. 이 기사에서는 CSS 를 쉽게 유지 관리할 수 있도록 작성하는 몇 가지 모범 사례와 유지 관리성을 개선하기 위해, 다른 사용자가 사용하는 해결책을 간략하게 살펴보겠습니다.
@@ -63,8 +64,13 @@ slug: Learn/CSS/Building_blocks/Organizing
CSS 형식을 볼 수 있는 몇 가지 방법이 있습니다. 일부 개발자는 다음과 같이 모든 규칙을 한 라인에 넣습니다:
```css
-.box { background-color: #567895; }
-h2 { background-color: black; color: white; }
+.box {
+ background-color: #567895;
+}
+h2 {
+ background-color: black;
+ color: white;
+}
```
다른 개발자는 모든 것을 새로운 라인으로 나누는 것을 선호합니다:
@@ -236,7 +242,7 @@ If you are not taking an OOCSS approach you might create custom CSS for the diff
}
.comment .content {
- font-size: .8rem;
+ font-size: 0.8rem;
}
.list-item {
@@ -246,7 +252,7 @@ If you are not taking an OOCSS approach you might create custom CSS for the diff
}
.list-item .content {
- font-size: .8rem;
+ font-size: 0.8rem;
}
```
@@ -259,14 +265,14 @@ In OOCSS, you would create one pattern called `media` that would have all of the
}
.media .content {
- font-size: .8rem;
+ font-size: 0.8rem;
}
.comment img {
border: 1px solid grey;
}
- .list-item {
+.list-item {
border-bottom: 1px solid grey;
}
```
@@ -286,7 +292,7 @@ The list-item would have `media` and `list-item` applied:
-
+
```
@@ -300,9 +306,7 @@ BEM stands for Block Element Modifier. In BEM a block is a standalone entity suc
```html
```
diff --git a/files/ko/learn/css/building_blocks/selectors/index.md b/files/ko/learn/css/building_blocks/selectors/index.md
index 28ae67425d4dd8..d5de7052f1447a 100644
--- a/files/ko/learn/css/building_blocks/selectors/index.md
+++ b/files/ko/learn/css/building_blocks/selectors/index.md
@@ -52,7 +52,7 @@ CSS 에서, 선택자는 CSS 선택자 사양에 정의되어 있습니다. CSS
## 선택자 목록
-동일한 CSS 를 사용하는 항목이 두 개 이상인 경우 규칙이 모든 개별 선택자에 적용되도록 개별 선택자를 ***선택자 목록** *으로 결합할 수 있습니다. 예를 들어, `h1` 에 대해 동일한 CSS 와 `special` class 를 사용하면 이것을 두 개의 별도 규칙으로 작성할 수 있습니다.
+동일한 CSS 를 사용하는 항목이 두 개 이상인 경우 규칙이 모든 개별 선택자에 적용되도록 개별 선택자를 _선택자 목록_ 으로 결합할 수 있습니다. 예를 들어, `h1` 에 대해 동일한 CSS 와 `special` class 를 사용하면 이것을 두 개의 별도 규칙으로 작성할 수 있습니다.
```css
h1 {
@@ -66,7 +66,7 @@ h1 {
또한 이들 사이에 쉼표를 추가하여 선택자 목록으로 결합할 수도 있습니다.
-```css
+```css-nolint
h1, .special {
color: blue;
}
@@ -102,7 +102,8 @@ h1 {
그러나 결합하면, 전체 규칙이 유효하지 않은 것으로 간주되어 `h1` 또는 class 가 스타일 지정되지 않습니다.
```css
-h1, ..special {
+h1,
+..special {
color: blue;
}
```
@@ -116,19 +117,22 @@ h1, ..special {
이 그룹에는 `
` 과 같은 HTML 요소를 대상으로 하는 선택자가 포함됩니다.
```css
-h1 { }
+h1 {
+}
```
또한 class 를 대상으로 하는 선택자가 포함됩니다.
```css
-.box { }
+.box {
+}
```
또는 ID
```css
-#unique { }
+#unique {
+}
```
### 속성 선택자
@@ -136,13 +140,16 @@ h1 { }
이 선택자 그룹은 요소에 특정 속성이 있는지에 따라 요소를 선택하는 다른 방법을 제공합니다.
```css
-a[title] { }
+a[title] {
+}
```
또는 특정 값을 가진 속성의 존재 여부를 기반으로 선택하십시오:
```css
-a[href="https://example.com"] { }
+a[href="https://example.com"]
+{
+}
```
### Pseudo-classes 및 pseudo-elements
@@ -150,13 +157,15 @@ a[href="https://example.com"] { }
이 선택자 그룹에는 요소의 특정 상태를 스타일링하는 pseudo-classes 가 포함됩니다. 예를 들어 `:hover` pseudo-class 는 마우스 포인터에 의해 요소를 가리킬 때만 요소를 선택합니다:
```css
-a:hover { }
+a:hover {
+}
```
또한 요소 자체가 아닌 요소의 특정 부분을 선택하는 pseudo-elements 도 포함됩니다. 예를 들어, `::first-line` 은 항상 `` 이 첫 번째 형식의 라인을 감싸는 것처럼 작동하여, 요소 내부의 첫 번째 텍스트 라인 (아래의 경우 `
`) 을 선택합니다.
```css
-p::first-line { }
+p::first-line {
+}
```
### 결합자 (Combinators)
@@ -164,7 +173,8 @@ p::first-line { }
최종 선택자 그룹은 문서 내의 요소를 대상으로 하기 위해 다른 선택자를 결합합니다. 예를 들어 다음은 자식 결합자 (`>`) 를 사용하여 `` 요소의 자식인 단락을 선택합니다:
```css
-article > p { }
+article > p {
+}
```
## 다음 단계
diff --git a/files/ko/learn/css/building_blocks/styling_tables/index.md b/files/ko/learn/css/building_blocks/styling_tables/index.md
index 3ab6a0dc098370..7bec5be1960b8c 100644
--- a/files/ko/learn/css/building_blocks/styling_tables/index.md
+++ b/files/ko/learn/css/building_blocks/styling_tables/index.md
@@ -32,7 +32,9 @@ HTML 표 스타일링은 세계에서 가장 매력적인 일이 아니지만,
```html
-
A summary of the UK's most famous punk bands
+
+ A summary of the UK's most famous punk bands
+
Band
@@ -55,7 +57,7 @@ HTML 표 스타일링은 세계에서 가장 매력적인 일이 아니지만,
London Calling
- ... some rows removed for brevity
+ ... some rows removed for brevity
The Stranglers
@@ -87,9 +89,9 @@ HTML 표 스타일링은 세계에서 가장 매력적인 일이 아니지만,
2. 다음으로, `style.css` 라는 새 파일을 만들고 다른 파일과 같은 디렉토리에 저장하십시오.
3. {{htmlelement("head")}} 안에 다음 HTML 행을 배치하여 CSS 를 HTML 에 연결하십시오:
- ```html
-
- ```
+ ```html
+
+ ```
### 간격 및 레이아웃
@@ -121,7 +123,8 @@ thead th:nth-child(4) {
width: 35%;
}
-th, td {
+th,
+td {
padding: 20px;
}
```
@@ -149,7 +152,10 @@ th, td {
먼저, 다음 {{htmlelement("link")}} 요소를 기존 `` 요소 바로 위의 HTML head 에 추가하십시오:
```html
-
+
```
이제 이전 CSS 아래의 `style.css` 파일에, 다음 CSS 를 추가하십시오:
@@ -158,11 +164,12 @@ th, td {
/* typography */
html {
- font-family: 'helvetica neue', helvetica, arial, sans-serif;
+ font-family: "helvetica neue", helvetica, arial, sans-serif;
}
-thead th, tfoot th {
- font-family: 'Rock Salt', cursive;
+thead th,
+tfoot th {
+ font-family: "Rock Salt", cursive;
}
th {
@@ -200,14 +207,21 @@ tfoot th {
아래에서 다시 CSS 를 `style.css` 파일에 추가하고, 다시 시작하십시오:
```css
-thead, tfoot {
+thead,
+tfoot {
background: url(leopardskin.jpg);
color: white;
text-shadow: 1px 1px 1px black;
}
-thead th, tfoot th, tfoot td {
- background: linear-gradient(to bottom, rgba(0,0,0,0.1), rgba(0,0,0,0.5));
+thead th,
+tfoot th,
+tfoot td {
+ background: linear-gradient(
+ to bottom,
+ rgba(0, 0, 0, 0.1),
+ rgba(0, 0, 0, 0.5)
+ );
border: 3px solid purple;
}
```
@@ -256,7 +270,7 @@ table {
```css
caption {
- font-family: 'Rock Salt', cursive;
+ font-family: "Rock Salt", cursive;
padding: 20px;
font-style: italic;
caption-side: bottom;
diff --git a/files/ko/learn/css/building_blocks/the_box_model/index.md b/files/ko/learn/css/building_blocks/the_box_model/index.md
index 0f5afadc761678..7663b3af932731 100644
--- a/files/ko/learn/css/building_blocks/the_box_model/index.md
+++ b/files/ko/learn/css/building_blocks/the_box_model/index.md
@@ -1,7 +1,7 @@
---
-title: 상자 모델
+title: 박스 모델
slug: Learn/CSS/Building_blocks/The_box_model
-original_slug: Learn/CSS/Building_blocks/상자_모델
+original_slug: Learn/CSS/Building_blocks/박스_모델
---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Combinators", "Learn/CSS/Building_blocks/Backgrounds_and_borders", "Learn/CSS/Building_blocks")}}
@@ -101,9 +101,9 @@ CSS 레이아웃에 대해 자세한 내용을 배우려면 다음번에는 예
나머지 수업에서는 외부 디스플레이 유형에 집중할 것이다.
-## CSS Box Model이란 무엇인가?
+## CSS 박스 모델이란 무엇인가?
-전체 CSS box model은 블록 박스에 적용되며, 인라인 박스는 박스 모델에 정의된 일부 동작만 사용합니다. 이 모델은 당신이 페이지에서 볼 수 있는 박스를 생성하기 위해 박스의 서로 다른 부분인 여백, 테두리, 패딩 및 콘텐츠등이 어떻게 함께 작동할 것인지를 정의합니다. 몇 가지 복잡성을 추가하기 위해 표준 및 대체 박스 모델이 있습니다.
+전체 CSS 박스 모델은 블록 박스에 적용되며, 인라인 박스는 박스 모델에 정의된 일부 동작만 사용합니다. 이 모델은 당신이 페이지에서 볼 수 있는 박스를 생성하기 위해 박스의 서로 다른 부분인 여백, 테두리, 패딩 및 콘텐츠등이 어떻게 함께 작동할 것인지를 정의합니다. 몇 가지 복잡성을 추가하기 위해 표준 및 대체 박스 모델이 있습니다.
### Box의 구성
@@ -118,9 +118,9 @@ CSS 블록 박스 구성하기 위한 우리의 준비물은:
![박스 모델](box-model.png)
-### 표준 CSS box model
+### 표준 CSS 박스 모델
-표준 box model에서 box에서 `width`와 `height`를 부여하면 *content box*의 너비와 높이가 정의됩니다. 그런 다음 패딩과 테두리는 박스의 너비와 높이에 추가되여 박스가 점유하는 전체 크기가 정해집니다. 그 내용이 아래 이미지에서 제시되었습니다.
+표준 박스 모델에서 box에서 `width`와 `height`를 부여하면 *content box*의 너비와 높이가 정의됩니다. 그런 다음 패딩과 테두리는 박스의 너비와 높이에 추가되여 박스가 점유하는 전체 크기가 정해집니다. 그 내용이 아래 이미지에서 제시되었습니다.
우리는 박스의 `width`와 `height`, `margin`과 `border` 및 `padding` CSS 값이 다음과 같이 지정되어 있다고 간주합니다:
@@ -140,7 +140,7 @@ CSS 블록 박스 구성하기 위한 우리의 준비물은:
> **참고:** 여백은 박스의 실제 크기에 포함되지 않습니다. 물론 여백은 박스가 페이지에서 차지하는 총 공간에 영향을 미치지만, 박스의 외부 공간에만 영향을 미칩니다. 박스의 영역은 테두리에서 멈추게 됩니다. 여백으로 확장되지 않습니다.
-### 대체 CSS box model
+### 대체 CSS 박스 모델
박스의 실제 크기를 얻기 위해 테두리와 패딩을 추가하는 것이 다소 불편하다고 생각할 수 있습니다. 당신 말이 옳을 것입니다! 이러한 이유로 CSS는 표준 박스 모델 이후 머지않아 대체 박스 모델이 도입되었습니다. 이 모델을 사용한다면 너비는 페이지에서 표시되는 박스 너비이므로 콘텐츠 영역 너비는 너비에서 패딩 및 테두리 너비를 뺀 너비입니다. 위에서 사용된 것과 동일한 CSS를 아래 결과에 대입하면(폭 = 350px, 높이 = 150px)가 됩니다.
@@ -160,7 +160,9 @@ CSS 블록 박스 구성하기 위한 우리의 준비물은:
html {
box-sizing: border-box;
}
-*, *::before, *::after {
+*,
+*::before,
+*::after {
box-sizing: inherit;
}
```
diff --git a/files/ko/learn/css/building_blocks/values_and_units/index.md b/files/ko/learn/css/building_blocks/values_and_units/index.md
index 78289aa54937ae..71be89c6dff8f4 100644
--- a/files/ko/learn/css/building_blocks/values_and_units/index.md
+++ b/files/ko/learn/css/building_blocks/values_and_units/index.md
@@ -52,7 +52,7 @@ CSS 사양과 MDN 의 속성 페이지에서 [``](/ko/docs/Web/CSS/color_
```css
h1 {
color: black;
- background-color: rgb(197,93,161);
+ background-color: rgb(197, 93, 161);
}
```
@@ -64,12 +64,12 @@ CSS 값은 허용가능한 하위값 모음을 정의하는 방법입니다. 즉
CSS 에서 사용할 수 있는 다양한 숫자 데이터 형식이 있습니다. 다음은 모두 숫자로 분류됩니다:
-| 데이터 형식 | 설명 |
-| ---- | --- |
-| [``](/ko/docs/Web/CSS/integer) | `` 은 `1024` 또는`-55` 와 같은 정수입니다. |
-| [``](/ko/docs/Web/CSS/number) | `` 는 10진수를 나타냅니다 — 소수점 이하의 소수 자릿수 (예: `0.255`, `128` 또는 `-1.2`) 가 있을 수도 있고 없을 수도 있습니다.|
-| [``](/ko/docs/Web/CSS/dimension) | `` 은 예를 들어 `45deg`, `5s` 또는 `10px`. 과 같은 단위가 붙어있는 `` 입니다. `` 은 [``](/ko/docs/Web/CSS/length), [``](/ko/docs/Web/CSS/angle), [`