Skip to content

Commit ccba4ab

Browse files
marocchinoyous
andauthored
Translate ruby faq 1 (ko) (#2998)
* Translate ruby faq 1 (ko) * Apply suggestions from code review Co-authored-by: Chayoung You <yousbe@gmail.com> * Apply suggestions from code review Co-authored-by: Chayoung You <yousbe@gmail.com> * Translate part (ko) --------- Co-authored-by: Chayoung You <yousbe@gmail.com>
1 parent 56b3955 commit ccba4ab

File tree

2 files changed

+381
-0
lines changed

2 files changed

+381
-0
lines changed

ko/documentation/faq/1/index.md

Lines changed: 319 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,319 @@
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+
<strong>1</strong>
11+
<span class="separator"> | </span>
12+
<a href="/en/documentation/faq/2/" title="파트 2">2</a>
13+
<span class="separator"> | </span>
14+
<a href="/en/documentation/faq/3/" title="파트 3">3</a>
15+
<span class="separator"> | </span>
16+
<a href="/en/documentation/faq/4/" title="파트 4">4</a>
17+
<span class="separator"> | </span>
18+
<a href="/en/documentation/faq/5/" title="파트 5">5</a>
19+
<span class="separator"> | </span>
20+
<a href="/en/documentation/faq/6/" title="파트 6">6</a>
21+
<span class="separator"> | </span>
22+
<a href="/en/documentation/faq/7/" title="파트 7">7</a>
23+
<span class="separator"> | </span>
24+
<a href="/en/documentation/faq/8/" title="파트 8">8</a>
25+
<span class="separator"> | </span>
26+
<a href="/en/documentation/faq/9/" title="파트 9">9</a>
27+
<span class="separator"> | </span>
28+
<a href="/en/documentation/faq/10/" title="파트 10">10</a>
29+
<span class="separator"> | </span>
30+
<a href="/en/documentation/faq/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+
42+
Ruby는 Yukihiro Matsumoto(이 문서와 메일링 리스트에서 "Matz"라는 핸들을
43+
사용함)가 만든 단순하고 강력한 객체 지향 프로그래밍 언어입니다.
44+
45+
Perl과 마찬가지로 Ruby는 텍스트 처리에 능숙합니다. Smalltalk와 마찬가지로 Ruby의
46+
모든 것은 객체이며 Ruby에는 블록, 이터레이터, 메타 클래스 및 기타 유용한 기능이
47+
있습니다.
48+
49+
Ruby를 사용하여 서버를 작성하고, 프로토타입을 실험하고, 일상적인 프로그래밍 작업을
50+
수행할 수 있습니다. 완전히 통합된 객체 지향 언어인 Ruby는 확장성이 뛰어납니다.
51+
52+
Ruby의 기능:
53+
54+
* 간단한 구문,
55+
* 기본적인 객체 지향 기능(클래스, 메서드, 객체 등),
56+
* 특별한 객체 지향 기능(믹스인, 싱글턴 메서드, 리네이밍 등),
57+
* 연산자 오버로딩,
58+
* 예외 처리,
59+
* 이터레이터와 클로저,
60+
* 가비지 컬렉션,
61+
* 동적 로딩(아키텍처에 따라 다름),
62+
* 높은 이동성(다양한 Unix, Windows, DOS, macOS, OS/2, Amiga 등에서 실행 가능).
63+
64+
### Ruby 코드를 보여주세요!
65+
66+
이름과 나이가 있는 `Person`이라는 클래스를 정의해 봅시다. 몇 명의 사람을 만들고
67+
검사하여 코드를 테스트합니다.
68+
69+
~~~
70+
class Person
71+
attr_accessor :name, :age
72+
73+
def initialize(name, age)
74+
@name = name
75+
@age = age.to_i
76+
end
77+
78+
def inspect
79+
"#{name} (#{age})"
80+
end
81+
end
82+
83+
p1 = Person.new("Elmo", 4)
84+
p2 = Person.new("Zoe", 7)
85+
86+
p1 # => Elmo (4)
87+
p2 # => Zoe (7)
88+
~~~
89+
90+
이제 다음과 같은 줄이 포함된 파일 `ages`에서 이름과 나이를 읽어서 사람들의
91+
배열을 채웁니다.
92+
93+
~~~
94+
Bert: 8
95+
Cookie: 11
96+
Elmo: 4
97+
Ernie: 8
98+
Zoe: 7
99+
~~~
100+
101+
이 코드는 정규식을 사용하여 입력 파일에서 연속적인 줄을 구문 분석하여 각 일치
102+
항목에 대해 새 `Person` 객체를 만들고 배열 `people`의 맨 뒤에 푸시합니다.
103+
104+
~~~
105+
people = Array.new
106+
107+
File.foreach("ages") do |line|
108+
people << Person.new($1, $2) if line =~ /(.*):\s+(\d+)/
109+
end
110+
111+
people # => [Bert (8), Cookie (11), Elmo (4), Ernie (8), Zoe (7)]
112+
~~~
113+
114+
이제 사람의 나이를 기준으로 결과를 정렬해 보겠습니다. 여러 가지 방법으로 이를
115+
수행할 수 있습니다. Ruby에 두 사람을 비교하는 방법을 알려주는 정렬 블록을 정의할
116+
수 있습니다.
117+
118+
~~~
119+
sorted = people.sort {|a, b| a.age <=> b.age }
120+
sorted # => [Elmo (4), Zoe (7), Bert (8), Ernie (8), Cookie (11)]
121+
~~~
122+
123+
또 다른 방법은 클래스 `Person`에 대한 비교 메서드를 변경하는 것입니다.
124+
125+
~~~
126+
class Person
127+
def <=>(other)
128+
age <=> other.age
129+
end
130+
end
131+
people.sort # => [Elmo (4), Zoe (7), Bert (8), Ernie (8), Cookie (11)]
132+
~~~
133+
134+
### 이름이 "Ruby"인 이유는 무엇인가요?
135+
136+
Perl의 영향을 받은 Matz는 새로운 언어에 보석 이름을 사용하고 싶었고 동료의
137+
탄생석을 따서 Ruby라는 이름을 지었습니다.
138+
139+
나중에 그는 Ruby가 여러 상황에서 Perl 바로 다음에 오는 것을 깨달았습니다.
140+
탄생석에서 Perl은 6월, Ruby는 7월입니다. 폰트 크기 측정 시 pearl은 5pt, ruby는
141+
5.5pt입니다. 그는 Ruby가 Perl보다 새로운(그리고 바라건대 더 나은) 프로그래밍
142+
언어의 좋은 이름이라고 생각했습니다.
143+
144+
(1999년 6월 11일 [\[ruby-talk:00394\]][ruby-talk:00394]에서 Matz의 설명을
145+
기반으로 합니다.)
146+
147+
[ruby-talk:00394]: https://blade.ruby-lang.org/ruby-talk/394
148+
149+
### Ruby의 역사는?
150+
151+
다음은 1999년 6월 4일 [\[ruby-talk:00382\]][ruby-talk:00382]에 Matz가 작성한
152+
게시물을 요약한 것입니다. (Ruby의 생일은 [\[ruby-list:15977\]][ruby-list:15977]에서
153+
수정되었습니다.)
154+
155+
> Ruby는 1993년 2월 24일에 태어났습니다. 동료와 객체 지향 스크립팅 언어의
156+
> 가능성에 대해 이야기하고 있었습니다. 나는 Perl(Perl5가 아닌 Perl4)을 알고
157+
> 있었지만 장난감 언어의 냄새가 나기 때문에 별로 좋아하지 않았습니다(여전히
158+
> 그렇습니다). 객체 지향 스크립팅 언어는 매우 유망해 보였습니다.
159+
160+
> 저는 그때 Python을 알았습니다. 그러나 나는 그것이 진정한 객체 지향 언어라고
161+
> 생각하지 않았기 때문에 그것을 좋아하지 않았습니다. 객체 지향 기능은 언어에 대한 추가
162+
> 기능으로 나타났습니다. 15년 동안 언어 마니아이자 객체 지향 팬으로서 저는 진정한 객체
163+
> 지향의 사용하기 쉬운 스크립팅 언어를 정말로 원했습니다. 찾아보았지만 찾을 수
164+
> 없었습니다.
165+
166+
> 그래서 만들기로 했습니다. 인터프리터를 가동시키는 데 몇 달이 걸렸습니다.
167+
> 이터레이터, 예외 처리, 가비지 컬렉터 같은 내가 좋아하는 기능을 내 언어에
168+
> 넣었습니다.
169+
170+
> 그런 다음 Perl의 기능을 클래스 라이브러리로 재구성하여 구현했습니다. 1995년
171+
> 12월에 일본 국내 뉴스그룹에 Ruby 0.95를 올렸습니다.
172+
173+
> 그 이후로 활발한 메일링 리스트가 만들어지고 웹 페이지가 형성되었습니다.
174+
175+
[ruby-talk:00382]: https://blade.ruby-lang.org/ruby-talk/382
176+
[ruby-list:15977]: https://blade.ruby-lang.org/ruby-list/15977
177+
178+
### Ruby 홈 페이지는 어디에 있나요?
179+
180+
공식 Ruby 홈 페이지는 [www.ruby-lang.org](https://www.ruby-lang.org)입니다.
181+
영어 및 일본어 버전 외에도 다양한 언어로 번역되어 있습니다.
182+
183+
Ruby 정보를 찾기 위한 좋은 출발점은 [문서](/ko/documentation/)
184+
[커뮤니티](/ko/community/) 페이지입니다.
185+
186+
### Ruby 뉴스그룹이 있나요?
187+
188+
comp.lang.ruby는 2000년 5월에 설립되었습니다.
189+
([Conrad Schneiker](mailto:schneiker@jump.net)의 노력에 감사드립니다.)
190+
191+
### Ruby 메일링 리스트가 있나요?
192+
193+
Ruby에 대해 이야기하는 여러 메일링 리스트가 있습니다.
194+
자세한 내용은 [메일링 리스트](/ko/community/mailing-lists/) 페이지를 참조하세요.
195+
196+
<https://ml.ruby-lang.org/mailman3/hyperkitty/list/ruby-talk@ml.ruby-lang.org/>
197+
사용하여 메일링 리스트 아카이브를 검색할 수 있습니다. (이것은 ruby-talk 메일링 리스트의
198+
URL이며, 다른 메일링 리스트를 원하면 변경해서 사용하세요.)
199+
200+
### mutt에서 메일링 리스트를 쓰려면 어떻게 해야 하나요?
201+
202+
{% include faq-out-of-date.html %}
203+
204+
일부 Ruby 메일링 리스트의 경우 메일링 리스트 소프트웨어는 제목 줄에
205+
`ruby-core:1234`와 같은 접두어를 추가합니다. 이로 인해 일부 메일 사용자
206+
에이전트의 스레딩이 혼동될 수 있습니다.
207+
208+
mutt에서는 다음 변수 설정을 사용하여 스레딩을 작동시킬 수 있습니다.
209+
210+
~~~
211+
# reply regexp, to support MLs like ruby-talk.
212+
set reply_regexp="^(\[[a-z0-9:-]+\][[:space:]]*)?(re([\[0-9\]+])*|aw):[[:space:]]*"
213+
~~~
214+
215+
### "Ruby"와 "ruby" 중 어느 것이 맞습니까?
216+
217+
공식적으로는 언어를 "Ruby"라고 합니다. 대부분의 시스템에서는 `ruby` 명령을
218+
사용하여 호출됩니다. "Ruby" 대신 "ruby"를 사용해도 괜찮습니다.
219+
220+
언어 이름으로 "RUBY"를 사용하지 마십시오.
221+
222+
처음엔, 역사적으로도, "ruby"라고 불렸습니다.
223+
224+
### Ruby 책이 있나요?
225+
226+
{% include faq-out-of-date.html %}
227+
228+
* Ruby 프로그래밍: 실용적인 프로그래머 가이드,
229+
(곡괭이 책) David Thomas와 Andrew Hunt 저: ISBN 0-20171-089-7,
230+
Addison-Wesley, 2000년 10월.
231+
232+
* Matz 외의 일본어 Ruby 참고서. 일본에서는 ASCII에서 출판되었습니다(ISBN
233+
4-7561-3254-5). 영어 번역본인 "The Ruby Programming Language"는 O'Reilly &
234+
Associates에서 구할 수 있습니다(ISBN 978-0596516178).
235+
236+
* 일본어 "Ruby Pocket Reference"는 O'Reilly Japan에서 출판되었습니다(ISBN
237+
4-87311-023-8). 번역본을 보고 싶다면 미국에 있는 O'Reilly에게 알려주세요.
238+
239+
* 또한 Jeffrey Friedl의 "정규 표현식 마스터링"(Hip Owl Book): O'Reilly &
240+
Associates, ISBN 1-56592-257-3은 다양한 프로그래밍 언어에서 정규 표현식의
241+
기술 및 구현을 다루는 참고서입니다. 대부분 Ruby 정규 표현식과 관련성이
242+
높습니다.
243+
244+
### 어떤 편집기가 Ruby를 지원하나요?
245+
246+
{% include faq-out-of-date.html %}
247+
248+
* [Emacs](http://www.gnu.org/software/emacs/emacs.html),
249+
[XEmacs](http://www.xemacs.org/): `ruby-mode.el`이 Ruby 배포판으로 제공됩니다.
250+
XEmacs의 일부 버전에서는 `.emacs` 파일에 `(load "font-lock")`을 추가해야
251+
`ruby-mode.el`이 사용 중인 구문 강조 패키지를 감지할 수 있습니다.
252+
* [Vim](http://www.vim.org/): Vim 5.7 이상에는 런타임 패키지의 표준으로 Ruby
253+
구문 파일이 있습니다. 이전 버전의 경우 Ruby용 구문 파일은
254+
[http://www.xs4all.nl/~hipster/lib/ruby/ruby.vim](http://www.xs4all.nl/~hipster/lib/ruby/ruby.vim)에서 찾을 수 있습니다.
255+
* [Jedit](http://jedit.sourceforge.net/): Java로 작성된 휴대용 편집기로 Ruby를
256+
지원합니다.
257+
* [Nedit](http://www.nedit.org): Eric Santonacci는 Nedit에 대한 Ruby 지원을
258+
작성했습니다.
259+
[ftp://ftp.talc.fr/pub/ruby/ruby.nedit-0.1.tar.gz](ftp://ftp.talc.fr/pub/ruby/ruby.nedit-0.1.tar.gz)에서 사용 가능합니다.
260+
* Barry Shultz는 TextPad용 Ruby 정의 파일을 작성했습니다.
261+
[https://www.textpad.com/add-ons/synn2t.html](https://www.textpad.com/add-ons/synn2t.html)에서 사용 가능합니다.
262+
263+
### Ruby 코드의 실행 결과를 주석으로 추가하려면 어떻게 해야하나요?
264+
265+
{% include faq-out-of-date.html %}
266+
267+
사람들은 일반적으로 각 명령문 실행 결과를 해당 명령문에 첨부된 주석으로 표시하여
268+
Ruby 코드에 주석을 답니다. 예를 들어 다음 코드에서는 할당이 문자열 "Billy Bob"을
269+
생성한 다음 일부 부분 문자열을 추출한 결과를 보여줍니다.
270+
271+
~~~
272+
str = "Billy" + " Bob" # => "Billy Bob"
273+
str[0,1] + str[2,1] + str[-2,2] # => "Blob"
274+
~~~
275+
276+
Emacs 및 vim 사용자는 이를 편집 환경과 통합할 수 있습니다. 이는 주석이 달린 Ruby
277+
코드가 포함된 이메일을 사람들에게 보내려는 경우에 유용합니다. `xmp`를 설치한
278+
Emacs 사용자는 `.emacs` 파일에 다음을 추가할 수 있습니다.
279+
280+
~~~
281+
(defun ruby-xmp-region (reg-start reg-end)
282+
"Pipe the region through Ruby's xmp utility and replace the region with
283+
the result."
284+
(interactive "r")
285+
(shell-command-on-region reg-start reg-end
286+
"ruby -r xmp -n -e 'xmp($_, \"%l\t\t# %r\n\")'"
287+
t))
288+
(global-set-key [(meta f10)] 'ruby-xmp-region)
289+
~~~
290+
291+
Vim 사용자는 매핑을 사용할 수 있습니다(hipster님 감사합니다).
292+
293+
~~~
294+
map <M-F10> :!ruby -r xmp -n -e 'xmp($_, "\%l\t\t\# \%r\n")'<CR>
295+
~~~
296+
297+
두 경우 모두 코드 영역을 강조 표시하고 Meta-F10을 눌러 주석을 추가합니다.
298+
299+
### Ruby 매뉴얼을 읽어도 이해가 안 돼요!
300+
301+
{% include faq-out-of-date.html %}
302+
303+
Ruby의 구문은 Ruby 1.0 이후 상당히 안정적이지만 때때로 새로운 기능이 추가됩니다.
304+
따라서 책과 온라인 설명서가 뒤처질 수 있습니다.
305+
306+
문제가 있는 경우 메일링 리스트([메일링 리스트 페이지](/ko/community/mailing-lists/) 참조)에서
307+
언제든지 질문하십시오.
308+
일반적으로 언어의 작성자인 Matz, 다른 전문가, 자신과 유사한 문제를 해결한
309+
사람들로부터 적절한 답변을 얻을 수 있습니다.
310+
311+
문제가 있는 소스 코드와 함께 `ruby -v`의 출력을 첨부하세요.
312+
313+
[`irb`](/en/documentation/faq/10/#irb)를 사용하는 데 문제가 있는 경우 몇 가지
314+
제한 사항이 있다는 점에 유의하세요. `irb --single-irb`를 사용하거나 `ruby`
315+
명령을 직접 사용하여 스크립트를 사용해 보세요.
316+
317+
메일링 리스트에 비슷한 질문이 있을 수 있으며 질문하기 전에 최근
318+
메일(RFC1855:3.1.1, 3.1.2)을 읽어보는 것이 좋습니다.
319+
하지만 메일링 리스트에서 질문하시면 정답이 곧 나올 것입니다.

ko/documentation/faq/index.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
layout: page
3+
title: "공식 Ruby FAQ"
4+
lang: ko
5+
6+
header: |
7+
<div class="multi-page">
8+
<strong>콘텐츠</strong>
9+
<span class="separator"> | </span>
10+
<a href="1/" title="파트 1">1</a>
11+
<span class="separator"> | </span>
12+
<a href="/en/documentation/faq/2/" title="파트 2">2</a>
13+
<span class="separator"> | </span>
14+
<a href="/en/documentation/faq/3/" title="파트 3">3</a>
15+
<span class="separator"> | </span>
16+
<a href="/en/documentation/faq/4/" title="파트 4">4</a>
17+
<span class="separator"> | </span>
18+
<a href="/en/documentation/faq/5/" title="파트 5">5</a>
19+
<span class="separator"> | </span>
20+
<a href="/en/documentation/faq/6/" title="파트 6">6</a>
21+
<span class="separator"> | </span>
22+
<a href="/en/documentation/faq/7/" title="파트 7">7</a>
23+
<span class="separator"> | </span>
24+
<a href="/en/documentation/faq/8/" title="파트 8">8</a>
25+
<span class="separator"> | </span>
26+
<a href="/en/documentation/faq/9/" title="파트 9">9</a>
27+
<span class="separator"> | </span>
28+
<a href="/en/documentation/faq/10/" title="파트 10">10</a>
29+
<span class="separator"> | </span>
30+
<a href="/en/documentation/faq/11/" title="파트 11">11</a>
31+
</div>
32+
<h1>공식 Ruby FAQ</h1>
33+
34+
---
35+
36+
이 문서에는 Ruby에 대한 자주 묻는 질문과 답변이 포함되어 있습니다.
37+
{: .summary}
38+
39+
이 FAQ는 원래 Shugo Maeda가 편집하고 Kentaro Goto가 영어로 번역한
40+
"[The Ruby Language FAQ][original-faq]"를 기반으로 합니다.
41+
FAQ를 사이트에 통합하고 콘텐츠를 대대적으로 점검한 Zachary Scott과 Marcus
42+
Stollsteimer에게 감사드립니다.
43+
44+
이 문서의 코드 예제는 Ruby 2.3을 사용하여 실행되었습니다.
45+
46+
[original-faq]: http://ruby-doc.org/docs/ruby-doc-bundle/FAQ/FAQ.html
47+
48+
{% include faq-notice.md %}
49+
50+
## 콘텐츠
51+
52+
* [일반적인 질문](1/)
53+
* [Ruby의 경쟁 상대는...?](/en/documentation/faq/2/)
54+
* [Ruby 설치하기](/en/documentation/faq/3/)
55+
* [변수, 상수 및 인수](/en/documentation/faq/4/)
56+
* [이터레이터](/en/documentation/faq/5/)
57+
* [구문](/en/documentation/faq/6/)
58+
* [메서드](/en/documentation/faq/7/)
59+
* [클래스 및 모듈](/en/documentation/faq/8/)
60+
* [빌트인 라이브러리](/en/documentation/faq/9/)
61+
* [확장 라이브러리](/en/documentation/faq/10/)
62+
* [기타 기능](/en/documentation/faq/11/)

0 commit comments

Comments
 (0)