Skip to content

Commit 13fd51e

Browse files
두 번째 대단원 맞춤법 점검(WIP)
1 parent fe02966 commit 13fd51e

File tree

4 files changed

+34
-35
lines changed

4 files changed

+34
-35
lines changed

1-js/02-first-steps/01-hello-world/article.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
코어 자바스크립트를 다루고 있긴 하지만, 학습을 위해선 스크립트를 실행할 수 있는 환경이 필요합니다. 본 튜토리얼은 온라인으로 제공되기 때문에 실행환경으로 브라우저를 사용하도록 하겠습니다. Node.js와 같이 브라우저 이외의 환경에 주력하는 학습자를 위해, 브라우저 한정 명령어(`alert` 등)는 최소한으로 사용하도록 하겠습니다. 이런 명령어를 학습하는 데 시간을 보내지 않도록 말이죠. 브라우저 환경에서의 자바스크립트는 [다음 파트](/ui)에서 다루도록 하겠습니다.
66

7-
먼저, 웹 페이지에 스크립트를 삽입하는 방법에 대해 알아봅시다. Node.js와 같은 서버 사이드 환경에서 스크립트를 실행하고 싶다면 `"node my.js"`와 같은 명령어를 사용하면 됩니다.
7+
먼저, 웹 페이지에 스크립트를 삽입하는 방법에 대해 알아봅시다. 참고로 Node.js와 같은 서버 사이드 환경에서 스크립트를 실행하고 싶다면 `'node my.js'`와 같은 명령어를 사용하면 됩니다.
88

99

10-
## "script" 태그
10+
## 'script' 태그
1111

1212
`<script>` 태그를 이용하면 자바스크립트 프로그램을 HTML 문서 어느 곳에나 삽입할 수 있습니다.
1313

@@ -35,7 +35,7 @@
3535
```
3636

3737
```online
38-
오른쪽 위에 있는 "재생" 버튼을 누르면 예제가 실행됩니다.
38+
오른쪽 위에 있는 '재생' 버튼을 누르면 예제가 실행됩니다.
3939
```
4040

4141
`<script>` 태그엔 자바스크립트 코드가 들어갑니다. 브라우저는 이 태그를 만나면 안의 코드를 자동으로 처리합니다.
@@ -99,8 +99,8 @@ HTML 안에 직접 스크립트를 작성하는 방식은 대개 스크립트가
9999
이를 통해 트래픽이 절약되고 웹 페이지의 실 속도가 빨라집니다.
100100
```
101101

102-
````warn header="`src` 속성이 있으면, 태그 내부의 코드는 무시됩니다."
103-
`<script>` 태그는 `src` 속성과 내부 코드를 동시에 가지지 못합니다.
102+
````warn header="`src` 속성이 있으면 태그 내부의 코드는 무시됩니다."
103+
`<script>` 태그는 `src` 속성과 내부 코드를 동시에 가지지 못합니다.
104104

105105
다음 코드는 실행되지 않습니다.
106106

1-js/02-first-steps/02-structure/article.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
문(statement)은 어떤 작업을 수행하는 문법 구조(syntax structure)와 명령어(command)를 의미합니다.
88

9-
앞서 "Hello, world!" 메시지를 보여주는 `alert('Hello, world!')` 문을 확인한 바 있습니다.
9+
앞서 'Hello, world!' 메시지를 보여주는 `alert('Hello, world!')` 문을 확인한 바 있습니다.
1010

1111
코드엔 원하는 만큼 문을 작성할 수 있습니다. 이때, 서로 다른 문은 세미콜론으로 구분합니다.
1212

13-
아래 코드는 "Hello World"를 두 개의 alert 문으로 나눈 예시입니다.
13+
아래 코드는 'Hello World'를 두 개의 alert 문으로 나눈 예시입니다.
1414

1515
```js run no-beautify
1616
alert('Hello'); alert('World');
@@ -34,9 +34,9 @@ alert('Hello')
3434
alert('World')
3535
```
3636

37-
자바스크립트는 줄 바꿈이 있으면 이를 "암시적" 세미콜론으로 해석합니다. 이런 동작 방식을 [세미콜론 자동 삽입(automatic semicolon insertion)](https://tc39.github.io/ecma262/#sec-automatic-semicolon-insertion)이라 부릅니다.
37+
자바스크립트는 줄 바꿈이 있으면 이를 '암시적' 세미콜론으로 해석합니다. 이런 동작 방식을 [세미콜론 자동 삽입(automatic semicolon insertion)](https://tc39.github.io/ecma262/#sec-automatic-semicolon-insertion)이라 부릅니다.
3838

39-
**대부분의 경우, 줄 바꿈은 세미콜론을 의미합니다. 하지만 "대부분의 경우"가 "항상"을 의미하진 않습니다.**
39+
**대부분의 경우, 줄 바꿈은 세미콜론을 의미합니다. 하지만 '대부분의 경우'가 '항상'을 의미하진 않습니다.**
4040

4141
아래와 같이 줄 바꿈이 세미콜론을 의미하지 않는 경우도 있습니다.
4242

@@ -46,9 +46,9 @@ alert(3 +
4646
+ 2);
4747
```
4848

49-
세미콜론 자동 삽입이 일어나지 않았기 때문에 `6`이 출력됩니다. 어떤 줄이 `"+"` 로 끝나면, 그 줄은 "불완전한 표현식"이므로 세미콜론이 필요하지 않다는 걸 직감하실 겁니다. 위 코드도 이런 의도로 동작합니다.
49+
세미콜론 자동 삽입이 일어나지 않았기 때문에 `6`이 출력됩니다. 어떤 줄이 `"+"` 로 끝나면, 그 줄은 '불완전한 표현식'이므로 세미콜론이 필요하지 않다는 걸 직감하실 겁니다. 위 코드도 이런 의도로 동작합니다.
5050

51-
**반면, 세미콜론이 정말로 필요하지만 자바스크립트가 이를 추정하지 "못하는" 상황도 존재합니다.**
51+
**반면, 세미콜론이 정말로 필요하지만 자바스크립트가 이를 추정하지 '못하는' 상황도 존재합니다.**
5252

5353
이런 상황에서 발생하는 에러는 찾거나 고치기가 상당히 어렵습니다.
5454

@@ -75,7 +75,7 @@ alert("에러가 발생합니다.")
7575
```js run
7676
alert("제대로 동작합니다.");
7777
78-
[1, 2].forEach(alert)
78+
[1, 2].forEach(alert)
7979
```
8080
8181
"제대로 동작합니다." 메시지 다음에 `1`과 `2`가 나타나는 것을 확인할 수 있죠.

1-js/02-first-steps/03-strict-mode/article.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
덕분에 기존에 작성한 코드는 절대 망가지지 않는다는 장점이 있었습니다. 하지만 자바스크립트 창시자들이 했던 실수나 불완전한 결정이 언어 안에 영원히 박제된다는 단점도 생겼습니다.
66

7-
이런 상황은 ECMAScript5(ES5)가 등장하기 전인 2009년까지 지속되었습니다. 그런데 새롭게 제정된 ES5에서는 새로운 기능이 추가되고 기존 기능 중 일부가 변경되었습니다. 기존 기능을 변경하였기 때문에 하위 호환성 문제가 생길 수 있겠죠? 그래서 변경사항 대부분은 ES5의 기본 모드에선 활성화되지 않도록 설계되었습니다. 대신 `"use strict"`라는 특별한 지시자를 사용해 엄격 모드(strict mode)를 활성화 했을 때만 이 변경사항이 활성화되게 해놓았습니다.
7+
이런 상황은 ECMAScript5(ES5)가 등장하기 전인 2009년까지 지속되었습니다. 그런데 새롭게 제정된 ES5에서는 새로운 기능이 추가되고 기존 기능 중 일부가 변경되었습니다. 기존 기능을 변경하였기 때문에 하위 호환성 문제가 생길 수 있겠죠? 그래서 변경사항 대부분은 ES5의 기본 모드에선 활성화되지 않도록 설계되었습니다. 대신 `use strict`라는 특별한 지시자를 사용해 엄격 모드(strict mode)를 활성화 했을 때만 이 변경사항이 활성화되게 해놓았습니다.
88

9-
## "use strict"
9+
## use strict
1010

1111
지시자 `"use strict"`, 혹은 `'use strict'`는 단순한 문자열처럼 생겼습니다. 하지만 이 지시자가 스크립트 최상단에 오면 스크립트 전체가 "모던한" 방식으로 동작합니다.
1212

@@ -21,7 +21,6 @@
2121

2222
명령어를 그룹화하는 방식인 함수에 대해선 곧 학습하도록 하겠습니다. 함수에 대해 학습하기 전에, `"use strict"`는 스크립트 최상단이 아닌 함수 본문 맨 앞에 올 수도 있다는 점을 알아두시기 바랍니다. 이렇게 하면 오직 해당 함수만 엄격 모드로 실행됩니다. 엄격 모드는 대개 스크립트 전체에 적용하지만 말이죠.
2323

24-
````warn header="Ensure that \"use strict\" is at the top"
2524
````warn header="\"use strict\"는 반드시 최상단에 위치시키세요."
2625
`"use strict"`는 스크립트 최상단에 있어야 한다는 점을 잊지 마세요. 그렇지 않으면 엄격 모드가 활성화되지 않을 수도 있습니다.
2726
@@ -51,7 +50,7 @@ alert("some code");
5150
5251
`use strict`에 영향을 받는 경우라면 개발자는 기대하지 않았던 결과를 얻을 수 있기 때문입니다.
5352
54-
그렇다면 어떻게 해야 콘솔에서 `use strict`를 사용할 수 있을까요?
53+
그렇다면 어떻게 해야 콘솔에서 `use strict`를 사용할 수 있을까요?
5554
5655
'use strict'를 입력한 후, `Shift+Enter키`를 눌러 줄 바꿈 해 원하는 스크립트를 입력하면 됩니다. 아래와 같이 말이죠.
5756
@@ -81,7 +80,7 @@ alert("some code");
8180

8281
모던 자바스크립트는 '클래스'와 '모듈'이라 불리는 진일보한 구조를 제공합니다(클래스와 모듈에 대해선 당연히 뒤에서 학습할 예정입니다). 이 둘을 사용하면 `use strict`가 자동으로 적용되죠. 따라서 이 둘을 사용하고 있다면 스크립트에 `"use strict"`를 붙일 필요가 없습니다.
8382

84-
결론은 이렇습니다. **코드를 클래스와 모듈을 사용해 구성한다면 `"use strict"`를 생략해도 됩니다. 그런데 아직은 이 둘을 배우지 않았으니 `"use strict"`를 귀한 손님처럼 모시도록 합시다.**
83+
결론은 이렇습니다. **코드를 클래스와 모듈을 사용해 구성한다면 `"use strict"`를 생략해도 됩니다. 그런데 아직은 이 둘을 배우지 않았으니 `"use strict"`를 귀한 손님처럼 모시도록 하겠습니.**
8584

8685
지금까지는 `use strict`의 일반적인 특징에 대해 알아보았습니다.
8786

1-js/02-first-steps/04-variables/article.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88

99
## 변수
1010

11-
[변수(variable)](https://en.wikipedia.org/wiki/Variable_(computer_science))는 데이터를 저장할 때 쓰이는 "이름이 붙은 저장소" 입니다. 온라인 쇼핑몰 애플리케이션을 구축하는 경우 상품이나 방문객 등의 정보를 저장할 때 변수를 사용하죠.
11+
[변수(variable)](https://en.wikipedia.org/wiki/Variable_(computer_science))는 데이터를 저장할 때 쓰이는 '이름이 붙은 저장소' 입니다. 온라인 쇼핑몰 애플리케이션을 구축하는 경우 상품이나 방문객 등의 정보를 저장할 때 변수를 사용하죠.
1212

1313
자바스크립트에선 `let` 키워드를 사용해 변수를 생성합니다.
1414

15-
아래 문(statement)은 "message"라는 이름을 가진 변수를 생성(*선언*)합니다.
15+
아래 문(statement)은 'message'라는 이름을 가진 변수를 생성(*선언*)합니다.
1616

1717
```js
1818
let message;
@@ -70,7 +70,7 @@ let user = 'John',
7070
message = 'Hello';
7171
```
7272

73-
"쉼표가 먼저 오는" 방식으로 작성하는 사람도 있습니다.
73+
'쉼표가 먼저 오는' 방식으로 작성하는 사람도 있습니다.
7474

7575
```js no-beautify
7676
let user = 'John'
@@ -88,16 +88,16 @@ let user = 'John'
8888
*!*var*/!* message = 'Hello';
8989
```
9090

91-
`var``let`*거의* 동일하게 동작합니다. `var``let`처럼 변수를 선언하는 데 쓰이죠. 다만 `var`"오래된" 방식입니다.
91+
`var``let`*거의* 동일하게 동작합니다. `var``let`처럼 변수를 선언하는 데 쓰이죠. 다만 `var`'오래된' 방식입니다.
9292

9393
`let``var`의 미묘한 차이점에 대해선 추후 <info:var> 에서 자세히 다루도록 하겠습니다. 지금 시점에선 이 차이점이 중요하지 않기 때문에 넘어가도록 합시다.
9494
````
9595
9696
## 현실 속의 비유
9797
98-
"상자" 안에 데이터를 저장하는데, 이 상자에는 특별한 이름표가 붙어 있다고 상상해 봅시다. 이렇게 하면 "변수"를 좀 더 쉽게 이해할 수 있습니다.
98+
'상자' 안에 데이터를 저장하는데, 이 상자에는 특별한 이름표가 붙어 있다고 상상해 봅시다. 이렇게 하면 '변수'를 좀 더 쉽게 이해할 수 있습니다.
9999
100-
예를 들어, 변수 `message`는 `"message"`라는 이름표가 붙어있는 상자에 `"Hello!"`라는 값을 저장한 것이라고 생각할 수 있습니다.
100+
예를 들어, 변수 `message`는 `message`라는 이름표가 붙어있는 상자에 `"Hello!"`라는 값을 저장한 것이라고 생각할 수 있습니다.
101101
102102
![](variable.svg)
103103
@@ -136,9 +136,9 @@ alert(message); // Hello world!
136136
```
137137
138138
```smart header="함수형 언어"
139-
[함수형(functional)](https://en.wikipedia.org/wiki/Functional_programming) 프로그래밍 언어는 변숫값 변경을 금지합니다. [스칼라(Scala)](http://www.scala-lang.org/)와 [얼랭(Erlang)](http://www.erlang.org/)은 대표적인 함수형 언어입니다.
139+
[함수형(functional)](https://en.wikipedia.org/wiki/Functional_programming) 프로그래밍 언어는 변숫값 변경을 금지합니다. [스칼라(Scala)](http://www.scala-lang.org/)와 [얼랭(Erlang)](http://www.erlang.org/)은 대표적인 함수형 언어입니다.
140140
141-
이들 언어에서는 "상자 속에" 값이 일단 저장되면, 그 값을 영원히 유지합니다. 다른 값을 저장하고 싶다면 새로운 상자를 만들어야(새 변수를 선언해야)만 합니다. 이전 변수를 재사용할 수 없습니다.
141+
이들 언어에서는 '상자 속에' 값이 일단 저장되면, 그 값을 영원히 유지합니다. 다른 값을 저장하고 싶다면 새로운 상자를 만들어야(새 변수를 선언해야)만 합니다. 이전 변수를 재사용할 수 없습니다.
142142
143143
처음 봤을 땐 좀 이상해 보일 수 있지만, 함수형 언어는 중대한 개발에 상당히 적합한 언어입니다. 이런 제약이 장점으로 작용하는 병렬 계산(parallel computation)과 같은 영역도 있죠. 당장은 사용할 계획이 없더라도 이런 언어를 공부하는 것은 시야를 넓히는 데 도움이 되므로, 학습을 권유 드립니다.
144144
```
@@ -164,8 +164,8 @@ let test123;
164164
아래는 유효한 변수명에 관한 예시입니다.
165165
166166
```js run untrusted
167-
let $ = 1; // "$"라는 이름의 변수를 선언합니다.
168-
let _ = 2; // "_"라는 이름의 변수를 선언합니다.
167+
let $ = 1; // '$'라는 이름의 변수를 선언합니다.
168+
let _ = 2; // '_'라는 이름의 변수를 선언합니다.
169169
170170
alert($ + _); // 3
171171
```
@@ -198,11 +198,11 @@ let 我 = '...';
198198
199199
예약어 예시: `let`, `class`, `return`, `function`
200200
201-
아래 코드는 문법(syntax) 에러를 발생시킵니다.
201+
아래 코드는 문법 에러를 발생시킵니다.
202202
203203
```js run no-beautify
204-
let let = 5; // "let"을 변수명으로 사용할 수 없으므로 에러!
205-
let return = 5; // "return"을 변수명으로 사용할 수 없으므로 에러!
204+
let let = 5; // 'let'을 변수명으로 사용할 수 없으므로 에러!
205+
let return = 5; // 'return'을 변수명으로 사용할 수 없으므로 에러!
206206
```
207207
````
208208

@@ -213,7 +213,7 @@ let return = 5; // "return"을 변수명으로 사용할 수 없으므로 에러
213213
```js run no-strict
214214
// 참고: 이 예제에는 "use strict"가 없습니다.
215215

216-
num = 5; // 변수 "num"이 정의되어있지 않더라도, 단순 할당만으로 변수가 생성됩니다.
216+
num = 5; // 변수 'num'이 정의되어있지 않더라도, 단순 할당만으로 변수가 생성됩니다.
217217

218218
alert(num); // 5
219219
```
@@ -237,7 +237,7 @@ num = 5; // error: num is not defined
237237
const myBirthday = '18.04.1982';
238238
```
239239
240-
이렇게 `const`로 선언한 변수를 "상수(constant)"라고 부릅니다. 상수는 재할당할 수 없으므로 상수를 변경하려고 하면 에러가 발생합니다.
240+
이렇게 `const`로 선언한 변수를 '상수(constant)'라고 부릅니다. 상수는 재할당할 수 없으므로 상수를 변경하려고 하면 에러가 발생합니다.
241241
242242
```js run
243243
const myBirthday = '18.04.1982';
@@ -275,7 +275,7 @@ alert(color); // #FF7F00
275275
276276
그렇다면 언제 일반적인 방식으로 상수를 명명하고, 언제 대문자를 사용해서 명명해야 하는 걸까요? 명확히 짚고 넘어갑시다.
277277
278-
"상수"는 변수의 값이 절대 변하지 않음을 의미합니다. 그중에는 (빨간색을 나타내는 16진수 값처럼) 코드가 실행되기 전에 이미 그 값을 알고 있는 상수도 있고, 런타임 과정에서 *계산되지만* 최초 할당 이후 값이 변하지 않는 상수도 있습니다.
278+
'상수'는 변수의 값이 절대 변하지 않음을 의미합니다. 그중에는 (빨간색을 나타내는 16진수 값처럼) 코드가 실행되기 전에 이미 그 값을 알고 있는 상수도 있고, 런타임 과정에서 *계산되지만* 최초 할당 이후 값이 변하지 않는 상수도 있습니다.
279279
280280
예시:
281281
```js
@@ -284,7 +284,7 @@ const pageLoadTime = /* 웹페이지를 로드하는데 걸린 시간 */;
284284
285285
`pageLoadTime`의 값은 페이지가 로드되기 전에는 정해지지 않기 때문에 일반적인 방식으로 변수명을 지었습니다. 하지만 이 값은 최초 할당 이후에 변경되지 않으므로 여전히 상수입니다.
286286
287-
정리하자면, 대문자 상수는 "하드 코딩한" 값의 별칭을 만들 때 사용하면 됩니다.
287+
정리하자면, 대문자 상수는 '하드 코딩한' 값의 별칭을 만들 때 사용하면 됩니다.
288288
289289
## 바람직한 변수명
290290
@@ -303,7 +303,7 @@ const pageLoadTime = /* 웹페이지를 로드하는데 걸린 시간 */;
303303
- `userName` 이나 `shoppingCart`처럼 사람이 읽을 수 있는 이름을 사용하세요.
304304
- 무엇을 하고 있는지 명확히 알고 있지 않을 경우 외에는 줄임말이나 `a`, `b`, `c`와 같은 짧은 이름은 피하세요.
305305
- 최대한 서술적이고 간결하게 명명해 주세요. `data`와 `value`는 나쁜 이름의 예시입니다. 이런 이름은 아무것도 설명해주지 않습니다. 코드 문맥상 변수가 가리키는 데이터나 값이 아주 명확할 때에만 이런 이름을 사용합시다.
306-
- 자신만의 규칙이나 소속된 팀의 규칙을 따르세요. 만약 사이트 방문객을 "user"라고 부르기로 했다면, 이와 관련된 변수를 `currentVisitor`나 `newManInTown`이 아닌 `currentUser`나 `newUser`라는 이름으로 지어야 합니다.
306+
- 자신만의 규칙이나 소속된 팀의 규칙을 따르세요. 만약 사이트 방문객을 'user'라고 부르기로 했다면, 이와 관련된 변수를 `currentVisitor`나 `newManInTown`이 아닌 `currentUser`나 `newUser`라는 이름으로 지어야 합니다.
307307
308308
간단해 보이나요? 그렇게 보이긴 합니다. 그러나 실전에서 서술적이고 간결한 변수명을 짓는 것은 간단하지 않습니다. 그럼, 화이팅!
309309

0 commit comments

Comments
 (0)