Skip to content

Commit 014c9dc

Browse files
marocchinoriseshia
andauthored
Translate faq 8~11 (ko) (#3040)
* Translate faq 8 (ko) * Translate faq 9 (ko) * Translate faq 10 (ko) * Translate faq 11 (ko) * Fix phrasing error in faq 9 (ko) * Apply suggestions from code review Co-authored-by: Shia <rise.shia@gmail.com> * Unify words directory (ko) --------- Co-authored-by: Shia <rise.shia@gmail.com>
1 parent fd0fd81 commit 014c9dc

File tree

12 files changed

+1096
-37
lines changed

12 files changed

+1096
-37
lines changed

ko/documentation/faq/1/index.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ header: |
2121
<span class="separator"> | </span>
2222
<a href="../7/" title="파트 7">7</a>
2323
<span class="separator"> | </span>
24-
<a href="/en/documentation/faq/8/" title="파트 8">8</a>
24+
<a href="../8/" title="파트 8">8</a>
2525
<span class="separator"> | </span>
26-
<a href="/en/documentation/faq/9/" title="파트 9">9</a>
26+
<a href="../9/" title="파트 9">9</a>
2727
<span class="separator"> | </span>
28-
<a href="/en/documentation/faq/10/" title="파트 10">10</a>
28+
<a href="../10/" title="파트 10">10</a>
2929
<span class="separator"> | </span>
30-
<a href="/en/documentation/faq/11/" title="파트 11">11</a>
30+
<a href="../11/" title="파트 11">11</a>
3131
</div>
3232
<h1>공식 Ruby FAQ</h1>
3333
@@ -310,7 +310,7 @@ Ruby의 구문은 Ruby 1.0 이후 상당히 안정적이지만 때때로 새로
310310

311311
문제가 있는 소스 코드와 함께 `ruby -v`의 출력을 첨부하세요.
312312

313-
[`irb`](/en/documentation/faq/10/#irb)를 사용하는 데 문제가 있는 경우 몇 가지
313+
[`irb`](../10/#irb)를 사용하는 데 문제가 있는 경우 몇 가지
314314
제한 사항이 있다는 점에 유의하세요. `irb --single-irb`를 사용하거나 `ruby`
315315
명령을 직접 사용하여 스크립트를 사용해 보세요.
316316

ko/documentation/faq/10/index.md

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
---
2+
layout: page
3+
title: "공식 Ruby FAQ"
4+
lang: ko
5+
6+
header: |
7+
<div class="multi-page">
8+
<a href="../" title="Content">콘텐츠</a>
9+
<span class="separator"> | </span>
10+
<a href="../1/" title="파트 1">1</a>
11+
<span class="separator"> | </span>
12+
<a href="../2/" title="파트 2">2</a>
13+
<span class="separator"> | </span>
14+
<a href="../3/" title="파트 3">3</a>
15+
<span class="separator"> | </span>
16+
<a href="../4/" title="파트 4">4</a>
17+
<span class="separator"> | </span>
18+
<a href="../5/" title="파트 5">5</a>
19+
<span class="separator"> | </span>
20+
<a href="../6/" title="파트 6">6</a>
21+
<span class="separator"> | </span>
22+
<a href="../7/" title="파트 7">7</a>
23+
<span class="separator"> | </span>
24+
<a href="../8/" title="파트 8">8</a>
25+
<span class="separator"> | </span>
26+
<a href="../9/" title="파트 9">9</a>
27+
<span class="separator"> | </span>
28+
<strong>10</strong>
29+
<span class="separator"> | </span>
30+
<a href="../11/" title="파트 11">11</a>
31+
</div>
32+
<h1>공식 Ruby FAQ</h1>
33+
34+
---
35+
36+
{% include faq-notice.md %}
37+
38+
## 확장 라이브러리
39+
40+
### Ruby를 대화형으로 사용하려면 어떻게 해야 하나요?
41+
{: #irb}
42+
43+
{% include faq-out-of-date.html %}
44+
45+
`irb`를 사용해 보세요. 다음은 고토 켄타로(Gotoken)의 글을 의역한 것으로,
46+
원래는 [\[ruby-talk:444\]][ruby-talk:444]에 실린 내용입니다.
47+
48+
1. Ruby 아카이브의 [contrib 디렉터리](ftp://ftp.netlab.co.jp/pub/lang/ruby/contrib/)에서
49+
`irb`의 최신 타볼을 가져옵니다.
50+
2. `irb` 디렉터리 트리를 압축해제합니다.
51+
3. `irb/` 디렉터리 위치를 `$RUBYLIB` 환경 변수에 추가합니다.
52+
4. 경로 어딘가에 `$RUBYLIB/irb/irb.rb`를 가리키는 `irb`라는 심볼릭 링크를
53+
만듭니다.
54+
5. `chmod +x $RUBYLIB/irb/irb.rb`
55+
6. 'rehash'를 사용하여 로그인 셸에 새 명령에 대해 알려줄 수 있습니다.
56+
7. `irb`를 입력합니다.
57+
58+
readline 확장 모듈이 인터프리터와 함께 작동하면 `irb`를 훨씬 더 재미있게 사용할
59+
수 있습니다.
60+
61+
Ruby 배포판의 `samples/` 디렉터리에 `eval`이라는 간단한 프로그램도 있습니다.
62+
이 프로그램을 사용하면 표현식을 입력하고 그 값을 볼 수 있습니다. `eval`
63+
Ruby 트리의 `site_ruby` 디렉터리에 복사하고 다음을 통해 호출할 수
64+
있습니다.
65+
66+
~~~
67+
ruby -r eval -e0
68+
~~~
69+
70+
[ruby-talk:444]: https://blade.ruby-lang.org/ruby-talk/444
71+
72+
### Ruby용 디버거가 있나요?
73+
74+
Ruby용 gdb와 유사한 디버거가 있습니다.
75+
76+
~~~
77+
ruby -r debug your_program
78+
~~~
79+
80+
### Ruby에서 C로 작성된 라이브러리를 사용하려면 어떻게 해야 하나요?
81+
82+
모든 스크립팅 언어 중에서 Ruby는 아마도 가장 확장하기 쉬운 언어일 것입니다.
83+
참조 카운팅과 변수 유형에 대한 문제가 없고 배울 인터페이스도 거의 없습니다.
84+
실제로 Ruby를 확장하는 데 사용되는 C 코드는 놀랍게도 Ruby 코드 자체와 비슷하게
85+
보이는 경우가 많습니다.
86+
87+
먼저 Ruby 소스에서 `doc/extension.rdoc` 파일을 읽거나
88+
[docs.ruby-lang.org][extension-rdoc]의 extension.rdoc을 읽어보세요. 확장
89+
라이브러리를 작성하는 경우뿐만 아니라 Ruby를 더 깊이 이해하고자 하는 경우에도
90+
좋은 문서입니다.
91+
92+
그런 다음 RubyGems 사이트에서 [확장을 사용한 젬 생성 가이드][rubygems-guide]
93+
제공합니다.
94+
여기에는 설치 시 빌드되는 C 확장을 사용하여 젬을 설정하는 방법이 나와 있습니다.
95+
또한 C 라이브러리를 래핑하는 일부 기존 젬에 대한 링크와 추가 읽을거리에 대한
96+
링크도 있습니다.
97+
98+
인터프리터 자체의 소스와 `ext/` 디렉터리에서 제공되는 다양한 확장기능을
99+
살펴볼 수도 있습니다(GitHub에서 [Ruby 저장소][ruby-github]를 찾아볼 수 있습니다).
100+
101+
[extension-rdoc]: https://docs.ruby-lang.org/en/master/extension_rdoc.html
102+
[rubygems-guide]: http://guides.rubygems.org/gems-with-extensions/
103+
[ruby-github]: https://github.com/ruby/ruby
104+
105+
### Ruby에서 Tcl/Tk를 사용할 수 있나요?
106+
107+
{% include faq-out-of-date.html %}
108+
109+
표준 배포판에는 Tcl/Tk에 대한 두 개의 인터페이스가 포함되어 있습니다. 하나는
110+
`ext/tcltk/` 아래에 있으며 `require "tcltk"`로 로드됩니다. 이 구문은 Tcl
111+
인터프리터에 전달되는 Tcl과 매우 유사합니다. 안타깝게도 이 라이브러리에 대한
112+
설명은 일본어로 작성되어 있습니다.
113+
114+
다른 하나는 `ext/tk/` 아래에 있으며 `require "tk"`로 로드됩니다. 이 구문은
115+
Perl 및 Python 인터페이스에서 제공하는 Tk 인터페이스 스타일에 더 가깝습니다.
116+
117+
### Tk가 작동하지 않습니다. 왜 그럴까요?
118+
119+
{% include faq-out-of-date.html %}
120+
121+
Tk 버전이 오래되었을 수 있으니 최신 버전을 사용해 보세요.
122+
123+
### Ruby에서 gtk+나 xforms 인터페이스를 사용할 수 있나요?
124+
125+
{% include faq-out-of-date.html %}
126+
127+
Ruby ftp 사이트의 `contrib/`에서 `ruby-gtk-x.xx.tar.gz`,
128+
`ruby-forms-x.x.tar.gz`를 찾을 수 있습니다.
129+
130+
### 날짜 계산은 어떻게 하나요?
131+
132+
{% include faq-out-of-date.html %}
133+
134+
`Time` 개체는 1970년 1월 1일부터 2038년 1월 19일 사이의 날짜만 표현
135+
할 수 있습니다.
136+
137+
두 가지 표준 확장 라이브러리 모듈이 제공됩니다. 단순하고 영어 달력을 사용하는
138+
`require "date"`와 보다 일반적인 용도의 `require "date2"`가 있습니다.
139+
140+
`sample/cal.rb`도 참조하세요.

ko/documentation/faq/11/index.md

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
---
2+
layout: page
3+
title: "공식 Ruby FAQ"
4+
lang: ko
5+
6+
header: |
7+
<div class="multi-page">
8+
<a href="../" title="Content">콘텐츠</a>
9+
<span class="separator"> | </span>
10+
<a href="../1/" title="파트 1">1</a>
11+
<span class="separator"> | </span>
12+
<a href="../2/" title="파트 2">2</a>
13+
<span class="separator"> | </span>
14+
<a href="../3/" title="파트 3">3</a>
15+
<span class="separator"> | </span>
16+
<a href="../4/" title="파트 4">4</a>
17+
<span class="separator"> | </span>
18+
<a href="../5/" title="파트 5">5</a>
19+
<span class="separator"> | </span>
20+
<a href="../6/" title="파트 6">6</a>
21+
<span class="separator"> | </span>
22+
<a href="../7/" title="파트 7">7</a>
23+
<span class="separator"> | </span>
24+
<a href="../8/" title="파트 8">8</a>
25+
<span class="separator"> | </span>
26+
<a href="../9/" title="파트 9">9</a>
27+
<span class="separator"> | </span>
28+
<a href="../10/" title="파트 10">10</a>
29+
<span class="separator"> | </span>
30+
<strong>11</strong>
31+
</div>
32+
<h1>공식 Ruby FAQ</h1>
33+
34+
---
35+
36+
{% include faq-notice.md %}
37+
38+
## 기타 기능
39+
40+
### `a ? b : c`는 무엇을 의미하나요?
41+
42+
이것은 "삼항 연산자"라고 하며, 'if a then b else c end'와
43+
동일합니다.
44+
45+
### 파일의 줄 수를 계산하려면 어떻게 해야 하나요?
46+
47+
다음 코드가 가장 빠른 결과를 제공할 수 있습니다.
48+
49+
~~~
50+
File.readlines("example").size # => 3
51+
~~~
52+
53+
### `MatchData#begin``MatchData#end`는 무엇을 반환하나요?
54+
55+
이 함수는 `$~`와 함께 작동하며 원본 문자열에서 일치하는 데이터의 시작 인덱스와
56+
끝 인덱스를 반환합니다. [탭 확장](../9/#tab-expansion)에서 예제를 참조하세요.
57+
58+
### 배열의 요소를 합산하려면 어떻게 해야 하나요?
59+
60+
{% include faq-out-of-date.html %}
61+
62+
특정 문제를 해결하기보다는 일반적인 경우를 해결해 봅시다. 가장 먼저 할 일은
63+
`Enumerable` 객체를 반복하고 단일 결과를 수집하는 메서드를 생성하는 것입니다.
64+
Smalltalk는 이 메소드를 inject라고 부르기 때문에 우리도 그렇게 부르겠습니다.
65+
66+
~~~
67+
module Enumerable
68+
69+
# inject(n) {|n, i| ...}
70+
def inject(n)
71+
each {|i| n = yield(n, i) }
72+
73+
n
74+
end
75+
end
76+
~~~
77+
78+
`Enumerable`에 메서드를 추가한 것을 주목하세요. 즉, Enumerable을 포함하는 모든
79+
곳에서 이제 `inject`를 사용할 수 있습니다. 하지만 어떻게 사용할까요? 하나의
80+
인자 `n`과 블록이 필요합니다. 열거되는 대상의 각 요소에 대해 `n`과 요소 자체를
81+
전달하면서 블록을 호출합니다. 블록의 결과는 다시 `n`에 할당됩니다. 따라서
82+
`sum`을 정의하기 위해 다음과 같이 작성할 수 있습니다:
83+
84+
~~~
85+
module Enumerable
86+
def sum
87+
inject(0) {|n, i| n + i }
88+
end
89+
end
90+
91+
[1,3,5,7,9].sum # => 25
92+
(1..100).sum # => 5050
93+
~~~
94+
95+
### 연속은 어떻게 사용하나요?
96+
97+
{% include faq-out-of-date.html %}
98+
99+
Ruby의 연속을 사용하면 Ruby 프로그램에서 특정 장소를 나타내는 객체를 생성한
100+
다음 언제든지 해당 장소로 돌아갈 수 있습니다(범위를 벗어난 것처럼 보이
101+
는 경우에도). 연속은 복잡한 제어 구조를 구현하는 데 사용할 수 있지만
102+
일반적으로는 사람들에게 혼란을 더하기만 합니다.
103+
104+
[\[ruby-talk:4482\]][ruby-talk:4482]에서 Jim Weirich가 다음과 같은 연속 예제를
105+
게시했습니다.
106+
107+
~~~
108+
# --------------------------------------------------------------------
109+
# 단순 생산자/소비자
110+
# --------------------------------------------------------------------
111+
# 연속을 사용하여 단순 계산 작업과 인쇄 작업을 함께 연결합니다.
112+
#
113+
# 사용법: count(limit)
114+
115+
def count_task(count, consumer)
116+
(1..count).each do |i|
117+
callcc {|cc| consumer.call cc, i }
118+
end
119+
nil
120+
end
121+
122+
def print_task()
123+
producer, i = callcc { |cc| return cc }
124+
print "#{i} "
125+
callcc { |cc| producer.call }
126+
end
127+
128+
def count(limit)
129+
count_task(limit, print_task())
130+
print "\n"
131+
end
132+
~~~
133+
134+
135+
~~~
136+
# --------------------------------------------------------------------
137+
# 주어진 숫자의 배수 필터링하기
138+
# --------------------------------------------------------------------
139+
# 소비자이면서 동시에 생산자인 필터를 만듭니다. 카운팅 작업과 인쇄 작업 사이에
140+
# 삽입합니다.
141+
#
142+
# 사용법: omit(2, limit)
143+
144+
def filter_task(factor, consumer)
145+
producer, i = callcc { |cc| return cc }
146+
if (i%factor) != 0 then
147+
callcc { |cc| consumer.call cc, i }
148+
end
149+
producer.call
150+
end
151+
152+
def omit(factor, limit)
153+
printer = print_task()
154+
filter = filter_task(factor, printer)
155+
count_task(limit, filter)
156+
print "\n"
157+
end
158+
~~~
159+
160+
161+
~~~
162+
# --------------------------------------------------------------------
163+
# 소수 생성기
164+
# --------------------------------------------------------------------
165+
# 소수 생성기를 생성합니다. 새로운 소수가 발견되면
166+
# 생산자와 소비자의 체인에 새로운 다중 필터를 동적으로 추가합니다.
167+
#
168+
# 사용법: primes(limit)
169+
170+
def prime_task(consumer)
171+
producer, i = callcc { |cc| return cc }
172+
if i >= 2 then
173+
callcc { |cc| consumer.call cc, i }
174+
consumer = filter_task(i, consumer)
175+
end
176+
producer.call
177+
end
178+
179+
def primes(limit)
180+
printer = print_task()
181+
primes = prime_task(printer)
182+
count_task(limit, primes)
183+
print "\n"
184+
end
185+
~~~
186+
187+
[ruby-talk:4482]: https://blade.ruby-lang.org/ruby-talk/4482

ko/documentation/faq/2/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ header: |
2121
<span class="separator"> | </span>
2222
<a href="../7/" title="파트 7">7</a>
2323
<span class="separator"> | </span>
24-
<a href="/en/documentation/faq/8/" title="파트 8">8</a>
24+
<a href="../8/" title="파트 8">8</a>
2525
<span class="separator"> | </span>
26-
<a href="/en/documentation/faq/9/" title="파트 9">9</a>
26+
<a href="../9/" title="파트 9">9</a>
2727
<span class="separator"> | </span>
28-
<a href="/en/documentation/faq/10/" title="파트 10">10</a>
28+
<a href="../10/" title="파트 10">10</a>
2929
<span class="separator"> | </span>
30-
<a href="/en/documentation/faq/11/" title="파트 11">11</a>
30+
<a href="../11/" title="파트 11">11</a>
3131
</div>
3232
<h1>공식 Ruby FAQ</h1>
3333

ko/documentation/faq/3/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ header: |
2121
<span class="separator"> | </span>
2222
<a href="../7/" title="파트 7">7</a>
2323
<span class="separator"> | </span>
24-
<a href="/en/documentation/faq/8/" title="파트 8">8</a>
24+
<a href="../8/" title="파트 8">8</a>
2525
<span class="separator"> | </span>
26-
<a href="/en/documentation/faq/9/" title="파트 9">9</a>
26+
<a href="../9/" title="파트 9">9</a>
2727
<span class="separator"> | </span>
28-
<a href="/en/documentation/faq/10/" title="파트 10">10</a>
28+
<a href="../10/" title="파트 10">10</a>
2929
<span class="separator"> | </span>
30-
<a href="/en/documentation/faq/11/" title="파트 11">11</a>
30+
<a href="../11/" title="파트 11">11</a>
3131
</div>
3232
<h1>공식 Ruby FAQ</h1>
3333

0 commit comments

Comments
 (0)