You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 23, 2020. It is now read-only.
Copy file name to clipboardExpand all lines: namespaces-and-modules.md
+16-16Lines changed: 16 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
1
# 소개 (Introduction)
2
2
3
-
이 게시물에서는 TypeScript에서 모듈(module)과 네임스페이스(namespace)를 사용하여 코드를 구성하는 다양한 방법을 간략하게 설명합니다.
4
-
또한 네임스페이스와 모듈에 관한 몇 가지 고급 주제와 TypeScript에서 이것들을 사용할 때 흔히 마주치는 위험성을 살펴볼 것입니다.
3
+
이 글에서는 TypeScript에서 모듈과 네임스페이스를 사용하여 코드를 구성하는 다양한 방법을 간략하게 설명합니다.
4
+
또한 네임스페이스와 모듈에 관한 몇 가지 고급 주제와 TypeScript에서 네임스페이스와 모듈을 사용할 때 흔히 마주치는 위험성을 살펴볼 것입니다.
5
5
6
-
ES 모듈(ES Modules)에 대한 자세한 내용은 [Modules](./Modules.md) 문서를 참고하세요.
7
-
TypeScript 네임스페이스에 대한 자세한 내용은 [Namespaces](./Namespaces.md) 문서를 참고하세요.
6
+
ES 모듈에 대한 자세한 내용은 [모듈](./modules.md) 문서를 참고하세요.
7
+
TypeScript 네임스페이스에 대한 자세한 내용은 [네임스페이스](./namespaces.md) 문서를 참고하세요.
8
8
9
-
참고: 매우 오래된 버전의 TypeScript 네임스페이스는 이전의 JavaScript 모듈 시스템인 '내부 모듈'이라고 불렸습니다.
9
+
참고: _매우_ 오래된 버전의 TypeScript 네임스페이스는 이전의 JavaScript 모듈 시스템인 '내부 모듈'이라고 불렸습니다.
10
10
11
11
# 모듈 사용하기 (Using Modules)
12
12
@@ -17,16 +17,16 @@ TypeScript 네임스페이스에 대한 자세한 내용은 [Namespaces](./Names
17
17
18
18
또한 Node.js 애플리케이션의 경우 모듈이 기본적인 방법이며, 코드를 구조화하는 데 있어 권장하는 접근법이라는 점을 유의해야 합니다.
19
19
20
-
ECMAScript 2015부터, 모듈은 언어에서 기본적으로 내재한 부분이며, 모든 호환 엔진 구현(compliant engine implementation)은 모듈을 지원해야 합니다.
20
+
ECMAScript 2015부터, 모듈은 언어에서 기본적으로 내재한 부분이며, 모든 호환 엔진 구현은 모듈을 지원해야 합니다.
21
21
따라서, 새로운 프로젝트의 경우 코드를 구성하는 방법으로 모듈을 권장합니다.
22
22
23
23
# 네임스페이스 사용하기 (Using Namespaces)
24
24
25
-
네임스페이스는 TypeScript에 따라 코드를 구성하는 방법입니다.
26
-
네임스페이스는 단순히 전역 네임스페이스 내부의 JavaScript 객체에 붙은 명칭입니다.
25
+
네임스페이스는 코드를 구성하는 TypeScript만의 고유한 방법입니다.
26
+
네임스페이스는 간단히 전역 네임스페이스에서 JavaScript 객체로 이름 붙여집니다.
27
27
이러한 점 덕분에 네임스페이스를 아주 단순한 구조로 사용할 수 있습니다.
28
28
모듈과 달리, 여러 개의 파일을 포괄할 수 있으며, `--outFile`을 사용해 연결할 수 있습니다.
29
-
네임스페이스는 웹 애플리케이션에서 코드를 구조화하기에 좋은 방법이며, 모든 의존성은 HTML 페이지의 `<script>` 태그로 포함됩니다.
29
+
네임스페이스는 웹 애플리케이션에서 코드를 구조화하기에 좋은 방법이며, 모든 의존성은 HTML 페이지의 `<script>` 태그로 포함합니다.
30
30
31
31
특히 대규모 애플리케이션의 경우, 이 방법은 모든 전역 네임스페이스가 오염되는 경우와 마찬가지로 컴포넌트의 의존성을 식별하기 힘들게 만들 수 있습니다.
32
32
@@ -37,7 +37,7 @@ ECMAScript 2015부터, 모듈은 언어에서 기본적으로 내재한 부분
37
37
## `/// <reference>`를 사용한 모듈
38
38
39
39
일반적인 실수는 모듈 파일을 참조하기 위해 `import`문 대신 `/// <reference ... />` 구문을 사용하는 것입니다.
40
-
이 둘의 차이를 구분하기 위해, 우선 import 경로에 위치한 모듈에 대한 타입 정보를 컴파일러가 어떻게 찾아내는지를 이해해야 합니다. (예: import x from "..."; 또는 import x = require("..."); 내부의 ...)
40
+
이 둘의 차이를 이해하기 위해, 우선 `import` 경로에 위치한 모듈에 대한 타입 정보를 컴파일러가 어떻게 찾아내는지를 이해해야 합니다. (예를 들어, `import x from "...";`, `import x = require("...");` 등 안의 `...`)
41
41
42
42
컴파일러는 `.ts`, `.tsx`를 찾은 다음 적절한 경로에 위치한 `.d.ts`를 찾습니다.
43
43
만약 특정 파일을 찾지 못한다면, 컴파일러는 *앰비언트 모듈(ambient module) 선언*을 탐색할 것입니다.
@@ -60,7 +60,7 @@ ECMAScript 2015부터, 모듈은 언어에서 기본적으로 내재한 부분
60
60
```
61
61
62
62
위의 reference 태그는 앰비언트 모듈(ambient module) 선언이 포함된 선언 파일의 위치를 지정하는 데 필요합니다.
63
-
이러한 방법으로 여러 개의 TypeScript 샘플에서 사용되는`node.d.ts` 파일이 사용됩니다.
63
+
이 방법은 여러 TypeScript 샘플에서 사용하는`node.d.ts`파일을 사용하는 방법입니다.
64
64
65
65
## 불필요한 네임스페이스 (Needless Namespacing)
66
66
@@ -88,8 +88,8 @@ ECMAScript 2015부터, 모듈은 언어에서 기본적으로 내재한 부분
88
88
TypeScript 모듈의 중요한 특징 중 하나는 서로 다른 두 개의 모듈이 절대 같은 스코프 안에 이름을 제공하지 않는다는 점입니다.
89
89
모듈 사용자가 어떤 이름을 할당할지를 결정하기 때문에, 네임스페이스 내부에서 내보내는 심벌을 미리 감싸줄 필요가 없습니다.
90
90
91
-
왜 모듈 내용물의 네임스페이스를 설정할 필요가 없는지를 반복하자면, 네임스페이스를 지정하는 일반적인 목적은 구조의 논리적 그룹을 제공하고 이름 충돌을 방지하기 위함입니다.
92
-
모듈 파일이 이미 스스로 논리적 그룹을 형성하고 있기 때문에, 이것의 최상위 이름은 이를 가져오는 코드에 의해 정의되고, 내보내는 객체를 위한 추가적인 모듈 계층을 사용할 필요가 없습니다.
91
+
모듈 내용의 네임스페이스를 설정하지 않아도 되는 이유를 다시 말하면, 네임스페이스를 지정하는 일반적인 목적은 구조의 논리적 그룹을 제공하고 이름 충돌을 방지하기 위함입니다.
92
+
모듈 파일이 이미 스스로 논리적 그룹을 형성하고 있기 때문에, 최상위 이름은 이를 가져오는 코드에 의해 정의되고, 내보내는 객체를 위한 추가적인 모듈 계층을 사용할 필요가 없습니다.
93
93
94
94
다음은 수정된 예입니다:
95
95
@@ -107,8 +107,8 @@ TypeScript 모듈의 중요한 특징 중 하나는 서로 다른 두 개의 모
107
107
let t =newshapes.Triangle();
108
108
```
109
109
110
-
## 모듈 간의 균형 (Trade-offs of Modules)
110
+
## 모듈의 트레이드-오프 (Trade-offs of Modules)
111
111
112
-
JS 파일과 모듈이 일대일 대응을 하는 것처럼, TypeScript는 모듈 소스 파일과 이것으로부터 생성된 JS 파일도 일대일 대응을 합니다.
112
+
JS 파일과 모듈이 일대일 대응인 것처럼, TypeScript는 모듈 소스 파일과 이 파일에서 생성된 JS 파일도 일대일 대응입니다.
113
113
이러한 특성 때문에 어떤 모듈 시스템을 사용하느냐에 따라서 여러 모듈 소스 파일을 합치는 작업이 불가능할 수 있습니다.
114
-
예를 들어, `commonjs` 또는 `umd`를 대상으로 하는 동안에는 `outFile` 옵션을 사용할 수 없었지만, TypeScript 1.8 이후부터, amd 또는 system를 대상으로 하는 경우에는 outFile 옵션을 [사용할 수 있게 되었습니다](./release%20notes/TypeScript%201.8.md#concatenate-amd-and-system-modules-with---outfile).
114
+
예를 들어, `commonjs` 또는 `umd`를 대상으로 하는 동안에는 `outFile` 옵션을 사용할 수 없지만, TypeScript 1.8 이후부터, `amd` 또는 `system`를 대상으로 하는 경우에는 `outFile` 옵션을 [사용할 수 있게 되었습니다](./release%20notes/TypeScript%201.8.md#concatenate-amd-and-system-modules-with---outfile).
0 commit comments