Skip to content

Commit 6b5a95d

Browse files
authored
Update translation of "Ruby FAQ 5", "Ruby FAQ 6" (ko) (#3037)
1 parent 645335e commit 6b5a95d

File tree

3 files changed

+40
-41
lines changed

3 files changed

+40
-41
lines changed

ko/documentation/faq/2/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Ruby의 객체 지향 순수성은 Python에는 부족하거나 Python이 여전
6868
할 수 있고, 그러면 해당 모듈의 메서드, 상수 등이 클래스에 삽입됩니다.
6969

7070
Ruby는 또 Smalltalk와 마찬가지로 클로저와 코드 블록을 제공하고 동일한 효과를
71-
위해 사용합니다. Ruby 컬렉션 클래스와 반복자는 Python이 싹트고 있는
71+
위해 사용합니다. Ruby 컬렉션 클래스와 이터레이터는 Python이 싹트고 있는
7272
임시방편(람다, 리스트 컴프리헨션)보다 뛰어나고 훨씬 강력하고 우아합니다.
7373

7474
Ruby의 구문과 디자인 철학은 Perl의 영향을 많이 받았습니다. 문법적 변동성이

ko/documentation/faq/5/index.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ end
6262
~~~
6363

6464
배열 `data`의 each 메서드에는 `do ... end` 블록이 전달되어 반복적으로
65-
실행됩니다. 호출할 때마다 블록은 배열의 연속적인 요소를 전달받습니다.
65+
실행됩니다. 호출할 때마다 블록은 배열의 요소를 차례로 전달받습니다.
6666

6767
블록을 정의할 때 `do ... end` 대신 `{ ... }`를 쓸 수 있습니다.
6868

@@ -81,30 +81,30 @@ data.each { |i|
8181
3
8282
~~~
8383

84-
이 코드는 예제와 동일한 의미를 갖습니다. 그러나 경우에 따라 우선순위
84+
이 코드는 앞의 예제와 동일한 의미를 갖습니다. 그러나 경우에 따라 우선순위
8585
문제로 인해 `do ... end``{ ... }`가 다르게 동작할 수 있습니다.
8686

8787
~~~
8888
foobar a, b do ... end # foobar가 이터레이터.
8989
foobar a, b { ... } # b가 이터레이터.
9090
~~~
9191

92-
이는 `{ ... }` `do ... end` 블록보다 앞의 표현식에 더 강하게 바인딩되기
92+
이는 `{ ... }` `do ... end` 블록보다 앞의 표현식에 더 강하게 바인딩되기
9393
때문입니다. 첫 번째 예는 `foobar(a, b) do ... end`와 같고, 두 번째 예는
9494
`foobar(a, b { ... })`와 같습니다.
9595

9696
### 블록을 이터레이터에 전달하려면 어떻게 해야 하나요?
9797

98-
반복자 호출 뒤에 블록을 배치하기만 하면 됩니다. `Proc`을 참조하는 변수나 상수
98+
이터레이터 호출 뒤에 블록을 배치하기만 하면 됩니다. `Proc`을 참조하는 변수나 상수
9999
이름 앞에 `&`를 붙여 `Proc` 객체를 전달할 수도 있습니다.
100100

101101
### 블록은 이터레이터에서 어떻게 사용되나요?
102102

103103
{% include faq-out-of-date.html %}
104104

105-
이터레이터 메서드에서 블록을 실행하는 방법에는 세 가지가 있습니다:
105+
이터레이터 메서드에서 블록을 실행하는 방법에는 세 가지가 있습니다.
106106
(1) `yield` 제어 구조, (2) `call`을 사용하여 (블록으로 만든) `Proc` 인자를
107-
호출하는 것, (3) `Proc.new`를 사용한 후 호출하는 것 등이 있습니다.
107+
호출하는 것, (3) `Proc.new`를 사용한 후 호출하는 것입니다.
108108

109109
`yield` 문은 블록을 호출하며, 하나 이상의 인수를 전달할 수 있습니다.
110110

@@ -146,7 +146,7 @@ my_iterator {|a, b| puts a, b }
146146
메서드에 주어진 블록을 인수로 받아 프로시저 객체를 생성합니다. (`proc`
147147
`lambda`는 사실상 동의어입니다.)
148148

149-
_[업데이트 필요: `lambda`는 약간 다른 방식으로 작동하며 블록 없이 Proc 객체를
149+
_[업데이트 필요: `lambda`는 약간 다른 방식으로 작동하며, 블록 없이 Proc 객체를
150150
생성하려고 시도했습니다(`tried to create Proc object without a block`)라는
151151
경고가 표시됩니다.]_
152152

@@ -174,7 +174,7 @@ my_iterator {|a, b| puts a, b }
174174
놀랍게도 `Proc.new`와 친구들은 메서드에 연결된 블록을 전혀 소비하지 않으며,
175175
`Proc.new`를 호출할 때마다 동일한 블록에서 새 프로시저 객체를 생성합니다.
176176

177-
블록이 메서드와 연관되어 있는지 여부는 `block_given?`을 호출하여 확인할 수
177+
메서드에 연관된 블록이 있는지 여부는 `block_given?`을 호출하여 확인할 수
178178
있습니다.
179179

180180
### 블록이 없는 `Proc.new`는 어떤 기능을 하나요?
@@ -183,11 +183,10 @@ my_iterator {|a, b| puts a, b }
183183
그러나 메서드 정의에서 블록이 없는 `Proc.new`는 메서드가 호출될 때 블록이
184184
존재한다는 것을 의미하므로 오류가 발생하지 않습니다.
185185

186-
187186
### 이터레이터를 병렬로 실행하려면 어떻게 해야 하나요?
188187

189188
여기 [\[ruby-talk:5252\]][ruby-talk:5252]에서 Matz가 스레드를 사용하는 해결책을
190-
채택했습니다.
189+
가져왔습니다.
191190

192191
~~~
193192
require "thread"

ko/documentation/faq/6/index.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,16 @@ header: |
4545
`Fixnum`, `true`, `nil`, `false`는 즉시 값으로 구현되어 있습니다. 즉시
4646
값을 사용하면 변수는 객체에 대한 참조가 아니라 객체 자체를 보유합니다.
4747

48-
이러한 객체에는 싱글톤 메서드를 정의할 수 없습니다. 동일한 값을 가진 두
49-
`Fixnum`은 항상 동일한 객체 인스턴스를 나타내므로, (예를 들어) 값이
50-
`1``Fixnum`에 대한 인스턴스 변수는 시스템의 모든 '1'에 공유됩니다. 따라서
48+
이러한 객체에는 싱글턴 메서드를 정의할 수 없습니다. 동일한 값을 가진 두 개의
49+
`Fixnum`은 항상 동일한 객체 인스턴스를 나타내므로, (예를 들어) 값이
50+
`1``Fixnum`에 대한 인스턴스 변수는 시스템의 모든 `1`에 공유됩니다. 따라서
5151
이 중 하나에 대해서만 싱글톤 메서드를 정의하는 것은 불가능합니다.
5252

5353
### `nil``false`의 차이점은 무엇인가요?
5454

55-
먼저 유사성부터 설명하겠습니다. `nil``false`부울 컨텍스트에서 `false`
55+
먼저 유사성부터 설명하겠습니다. `nil``false` 컨텍스트에서 `false`
5656
평가되는 유일한 두 개의 객체입니다.
57-
(즉, 이 둘은 유일한 "falsy" 값이며 다른 모든 객체는 "truthy" 입니다.)
57+
(즉, 이 둘은 유일한 "falsy" 값이며 다른 모든 객체는 "truthy"입니다.)
5858

5959
그러나 `nil``false`는 서로 다른 클래스(`NilClass``FalseClass`)의
6060
인스턴스이며, 다른 곳에서는 다른 동작을 합니다.
@@ -65,13 +65,13 @@ header: |
6565

6666
### 빈 문자열이 `false`가 아닌 이유는 무엇인가요?
6767

68-
Q: 조건 표현식에서 빈 문자열(`""`)이 `true`를 반환하던데요! Perl에서
69-
`false`였는데...
68+
Q: 조건 표현식에서 빈 문자열(`""`)이 `true`를 반환하던데요! Perl에서는
69+
`false`였는데...
7070

71-
A: 하지만 Ruby는 Perl이 아닙니다 ;-). Ruby에서는 조건부 컨텍스트에서
72-
`nil``false`만 거짓입니다.
71+
A: 하지만 Ruby는 Perl이 아닙니다. ;-) Ruby에서는 조건부 컨텍스트에서
72+
`nil``false`만 거짓입니다.
7373

74-
`empty?`를 사용하거나 문자열을 `""`와 비교하거나 문자열의 `size`, `length`
74+
`empty?`를 사용하거나, 문자열을 `""`와 비교하거나, 문자열의 `size`, `length`
7575
`0`과 비교하여 문자열이 비어 있는지 확인할 수 있습니다.
7676

7777
### `:name`은 무엇을 의미하나요?
@@ -107,9 +107,9 @@ SOUTH = :SOUTH
107107

108108
### 심볼의 값에 액세스하려면 어떻게 해야 하나요?
109109

110-
심볼에 해당하는 변수의 값을 얻으려면 `symbol.to_s` 또는 `"#{심볼}"`
111-
사용하여 변수 이름을 얻은 다음 심볼의 범위에서 이를 평가하여 변수의 내용
112-
얻을 수 있습니다.
110+
심볼에 해당하는 변수의 값을 얻으려면 `symbol.to_s` 또는 `"#{symbol}"`
111+
사용하여 변수 이름을 얻은 다음 심볼의 스코프에서 이를 평가하여 변수의 내용을
112+
얻을 수 있습니다.
113113

114114
~~~
115115
a = "This is the content of `a'"
@@ -136,7 +136,7 @@ demo = Demo.new
136136
demo.send(:hello)
137137
~~~
138138

139-
또는 `Object#method`를 사용하여 해당 `Method` 객체를 반환한 다음 호출할
139+
또는 `Object#method`를 사용하여 해당 `Method` 객체를 반환하게 한 다음 호출할
140140
수 있습니다.
141141

142142
~~~
@@ -147,9 +147,9 @@ m.call # => "Hello, world"
147147
### `loop`는 제어 구조인가요?
148148

149149
`loop`는 제어 구조체처럼 보이지만 실제로는 `Kernel`에 정의된 메서드입니다.
150-
loop 다음 블록은 지역 변수에 대한 새로운 스코프를 만듭니다.
150+
loop 뒤에 오는 블록은 지역 변수에 대한 새로운 스코프를 만듭니다.
151151

152-
### Ruby에는 테스트(post-test) 루프가 없습니다.
152+
### Ruby에는 사후 테스트(post-test) 루프가 없습니다.
153153

154154
Q: Ruby에는 `do { ... } while` 구문이 없는데 마지막에 조건을 테스트하는
155155
루프를 어떻게 구현하나요?
@@ -175,7 +175,7 @@ i = 3
175175
i = 4
176176
~~~
177177

178-
### `p {}`경우 처럼 해시 리터럴을 메서드에 전달할 수 없는 이유는 무엇인가요?
178+
### `p {}`경우처럼 해시 리터럴을 메서드에 전달할 수 없는 이유는 무엇인가요?
179179

180180
`{}``Hash` 생성자가 아닌 블록으로 파싱됩니다. `p({})`처럼 매개변수라는
181181
사실을 명시하면 `{}`가 표현식으로 처리되도록 할 수 있습니다.
@@ -204,9 +204,9 @@ end
204204
비트 패턴)이고, `"\\1"`은 백슬래시와 문자 `"1"`이 포함된 두 문자로 된
205205
문자열입니다.
206206

207-
### '..`'...`의 차이점은 무엇인가요?
207+
### `..``...`의 차이점은 무엇인가요?
208208

209-
'...`범위에 오른쪽을 포함하지만 '...`는 포함하지 않습니다.
209+
`..`범위의 오른쪽 항을 포함하지만 `...`는 포함하지 않습니다.
210210

211211
~~~
212212
(5..8).to_a # => [5, 6, 7, 8]
@@ -216,9 +216,9 @@ end
216216
### `or``||`의 차이점은 무엇인가요?
217217

218218
Q: `p(nil || "Hello")``"Hello"`를 출력하지만 `p(nil or "Hello")`
219-
구문 분석 오류를 발생시킵니다. 왜 그럴까요?
219+
구문 분석 오류를 발생시킵니다. 왜 그럴까요?
220220

221-
A: `or`의 우선순위가 너무 낮기 때문입니다, `p((nil 또는 "Hello") )`
221+
A: `or`의 우선순위가 너무 낮기 때문입니다, `p( (nil or "Hello") )`
222222
작동합니다.
223223

224224
`or`의 우선 순위는 `=`보다 낮지만 `||`의 우선 순위는 더 높습니다.
@@ -233,7 +233,7 @@ foo = nil or "Hello" # (foo = nil) or "Hello" 로 해석
233233
foo # => nil
234234
~~~
235235

236-
`or`(및 유사하게 `and`)은 부울 표현식을 결합하는 데 사용하는 것이 **아니라**
236+
`or`(및 유사하게 `and`)는 불 표현식을 결합하는 데 사용하는 것이 **아니라**
237237
다음과 같은 제어 흐름에 사용하는 것이 가장 좋습니다.
238238

239239
~~~
@@ -250,10 +250,10 @@ do_something or raise "some error!"
250250

251251
### `load``require`의 차이점은 무엇인가요?
252252

253-
`load`는 Ruby 프로그램(`*.rb`)을 로드하고 실행합니다.
253+
`load`는 Ruby 프로그램(`*.rb`)을 불러오고 실행합니다.
254254

255-
`require`는 Ruby 프로그램도 로드하지만 바이너리 Ruby 확장 모듈(공유 라이브러리
256-
또는 DLL)도 로드합니다. 거기에 더해 `require`기능이 두 번 이상 로드되지
255+
`require`는 Ruby 프로그램도 불러오지만 바이너리 Ruby 확장 모듈(공유 라이브러리
256+
또는 DLL)도 불러옵니다. 거기에 더해 `require`기능을 두 번 이상 불러오지
257257
않도록 합니다.
258258

259259
### Ruby에는 예외 처리가 있나요?
@@ -272,14 +272,14 @@ ensure
272272
end
273273
~~~
274274

275-
`begin` 절에서 예외가 발생하면 일치하는 예외 이름을 가진 `rescue` 절이 실행
276-
됩니다. `ensure`절은 예외 발생 여부에 관계없이 실행됩니다. `rescue` `ensure`
277-
절은 생략할 수 있습니다.
275+
`begin` 절에서 예외가 발생하면 일치하는 예외 이름을 가진 `rescue` 절이
276+
실행됩니다. `ensure` 절은 예외 발생 여부에 관계없이 실행됩니다. `rescue`
277+
`ensure` 절은 생략할 수 있습니다.
278278

279279
`rescue` 절에 대해 예외 클래스가 지정되지 않은 경우 묵시적으로 `StandardError`
280-
예외를 가르키며, `StandardError``is_a?` 관계에 있는 예외가 캡처됩니다.
280+
예외를 가리키며, `StandardError``is_a?` 관계에 있는 예외가 캡처됩니다.
281281

282282
이 표현식은 `begin` 절의 값을 반환합니다.
283283

284-
가장 최근의 예외는 전역 변수 `$!`에 의해 액세스가 가능합니다(따라서 `$!.type`
284+
가장 최근의 예외는 전역 변수 `$!`을 통해 액세스가 가능합니다(따라서 `$!.type`
285285
사용하여 유형을 확인할 수 있습니다).

0 commit comments

Comments
 (0)