Skip to content

Commit fedb65a

Browse files
authored
1 parent da95fa0 commit fedb65a

File tree

37 files changed

+131
-131
lines changed

37 files changed

+131
-131
lines changed

ko/about/index.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@ lang: ko
4040
스크립트 언어가 필요했다<sup>[2](#fn2)</sup>.”라고 했습니다.
4141

4242
루비에서는 모든 것이 객체입니다. 따라서 루비에서 모든 것은 자신만의 속성과 액션을 갖습니다. 객체지향 프로그래밍에서 이런 속성을
43-
*인스턴스 변수*라고 하고, 액션을 *메소드*라고 합니다. 루비의 순수 객체지향 접근법은 아래의 예제처럼 숫자에 액션을 취하는
43+
*인스턴스 변수*라고 하고, 액션을 *메서드*라고 합니다. 루비의 순수 객체지향 접근법은 아래의 예제처럼 숫자에 액션을 취하는
4444
코드로 대표되곤 합니다.
4545

4646
{% highlight ruby %}
4747
5.times { print "우리는 루비를 *사랑*해요! 너무 멋져요!" }
4848
{% endhighlight %}
4949

50-
많은 언어에서 숫자는 원시 타입이지 객체는 아닙니다. 하지만 루비는 스몰토크의 영향을 받아 모든 형태의 것에 메소드와 인스턴스
50+
많은 언어에서 숫자는 원시 타입이지 객체는 아닙니다. 하지만 루비는 스몰토크의 영향을 받아 모든 형태의 것에 메서드와 인스턴스
5151
변수를 부여합니다. 이는 모든 곳에서 일관되게 적용되므로 루비 사용법을 쉽게 해줍니다.
5252

5353
### 루비의 유연함
@@ -57,7 +57,7 @@ lang: ko
5757
않습니다.
5858

5959
예를 들어 아래는 `+` 연산자 대신 plus 라고 쓰는 것이 더 읽기 편하다고 결정했다면 루비의 빌트인 클래스인
60-
`Numeric`메소드를 추가하면 됩니다.
60+
`Numeric`메서드를 추가하면 됩니다.
6161

6262
{% highlight ruby %}
6363
class Numeric
@@ -70,11 +70,11 @@ y = 5.plus 6
7070
# 이제 y는 11이 되었다
7171
{% endhighlight %}
7272

73-
루비의 연산자는 메소드를 이용한 문법 단축에 불과합니다. 물론 이 부분도 재정의할 수 있습니다.
73+
루비의 연산자는 메서드를 이용한 문법 단축에 불과합니다. 물론 이 부분도 재정의할 수 있습니다.
7474

7575
### 루비의 표현력을 풍부하게 해주는 블록
7676

77-
루비의 블록 기능 또한 뛰어난 유연성의 원천입니다. 개발자는 어떤 메소드에든 클로저를 추가함으로써 메소드의 동작을 기술할 수
77+
루비의 블록 기능 또한 뛰어난 유연성의 원천입니다. 개발자는 어떤 메서드에든 클로저를 추가함으로써 메서드의 동작을 기술할 수
7878
있습니다. 루비에서 이 클로저를 *블록*이라고 부릅니다. 이는 PHP, 비주얼베이직 등 다른 명령형 언어에서 루비로 이주한
7979
개발자에게 가장 매력적인 기능으로 꼽힙니다.
8080

@@ -88,15 +88,15 @@ search_engines =
8888
end
8989
{% endhighlight %}
9090

91-
위 예제에서 블록은 `do ... end` 문법 구조에 기술되었습니다. `map` 메소드는 주어진 단어 목록에 블록을 적용합니다.
92-
이처럼 루비의 다른 메소드도 그 동작 중 일부를 자신의 블록으로 채워넣을 수 있도록 개발자에게 열린 구조를 제공하고 있습니다.
91+
위 예제에서 블록은 `do ... end` 문법 구조에 기술되었습니다. `map` 메서드는 주어진 단어 목록에 블록을 적용합니다.
92+
이처럼 루비의 다른 메서드도 그 동작 중 일부를 자신의 블록으로 채워넣을 수 있도록 개발자에게 열린 구조를 제공하고 있습니다.
9393

9494
### 루비와 믹스인
9595

9696
다른 객체지향 언어와 달리 루비는 **의도적으로** 단일 상속만을 제공합니다. 대신 루비에는 모듈 개념(Objective-C에서는
97-
카테고리라 불리는)이 있습니다. 모듈은 메소드의 컬렉션입니다.
97+
카테고리라 불리는)이 있습니다. 모듈은 메서드의 컬렉션입니다.
9898

99-
클래스에 모듈을 믹스인할 수 있는데, 그렇게 하면 유용한 메소드를 손쉽게 얻을 수 있습니다. 예를 들어 `each` 메소드를 구현하고
99+
클래스에 모듈을 믹스인할 수 있는데, 그렇게 하면 유용한 메서드를 손쉽게 얻을 수 있습니다. 예를 들어 `each` 메서드를 구현하고
100100
있는 클래스는 어떤 것이든 `Enumerable` 모듈을 믹스인하기만 하면, `each`를 루프에 이용해 많은 함수들이 추가됩니다.
101101

102102
{% highlight ruby %}
@@ -116,7 +116,7 @@ end
116116
* `@var` 인스턴스 변수.
117117
* `$var` 전역변수.
118118

119-
이런 몇 가지 장치는 변수의 역할을 명확히 드러냄으로써 개발자가 코드를 읽기 쉽게 해줍니다. 그리고 모든 인스턴스 메소드에
119+
이런 몇 가지 장치는 변수의 역할을 명확히 드러냄으로써 개발자가 코드를 읽기 쉽게 해줍니다. 그리고 모든 인스턴스 메서드에
120120
붙인다면 정말 피곤할 `self.`도 대부분 생략할 수 있습니다.
121121

122122
### 고급 기능

ko/documentation/quickstart/2/index.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ header: |
1717
1818
---
1919

20-
손가락에 무리를 주지 않으면서 “Hello”를 여러 번 말하고 싶다면 어떻게 해야 할까요? 메소드를 정의해야 한답니다.
20+
손가락에 무리를 주지 않으면서 “Hello”를 여러 번 말하고 싶다면 어떻게 해야 할까요? 메서드를 정의해야 한답니다.
2121

2222
{% highlight irb %}
2323
irb(main):010:0> def h
@@ -26,15 +26,15 @@ irb(main):012:1> end
2626
=> :h
2727
{% endhighlight %}
2828

29-
`def h`메소드의 정의의 시작입니다. 루비에게 `h`란 이름의 메소드의 정의를
30-
시작한다는 것을 알리는 것이죠. 그 다음 줄은 메소드 몸통(body)입니다. 전에 본 것과
29+
`def h`메서드의 정의의 시작입니다. 루비에게 `h`란 이름의 메서드의 정의를
30+
시작한다는 것을 알리는 것이죠. 그 다음 줄은 메서드 몸통(body)입니다. 전에 본 것과
3131
같은 `puts "Hello World"`입니다.
32-
마지막으로 `end`는 루비에게 메소드 정의가 끝났음을 알려줍니다.
33-
`=> :h`메소드의 정의가 끝났음을 루비가 알아들었다는 것을 의미하죠.
32+
마지막으로 `end`는 루비에게 메서드 정의가 끝났음을 알려줍니다.
33+
`=> :h`메서드의 정의가 끝났음을 루비가 알아들었다는 것을 의미하죠.
3434
루비 2.0이나 그 이전 버전이라면 이 반환 값은 `=> nil`이 될 수도 있습니다.
3535
하지만 여기에서는 별로 중요하지 않으니 다음으로 넘어갑시다.
3636

37-
이제 정의한 메소드를 몇 번 호출해 보겠습니다.
37+
이제 정의한 메서드를 몇 번 호출해 보겠습니다.
3838

3939
{% highlight irb %}
4040
irb(main):013:0> h
@@ -45,7 +45,7 @@ Hello World!
4545
=> nil
4646
{% endhighlight %}
4747

48-
생각보다 쉽지 않나요? 루비에서 메소드를 호출하는 것은 단지 메소드 이름을 입력하는 것에 지나지 않지요. 메소드가 인자를 받지
48+
생각보다 쉽지 않나요? 루비에서 메서드를 호출하는 것은 단지 메서드 이름을 입력하는 것에 지나지 않지요. 메서드가 인자를 받지
4949
않는다면, 그걸로 충분하답니다. 빈 괄호를 입력해도 되지만, 필요한 것은 아니랍니다.
5050

5151
온세상에 “Hello”라고 외치는 대신에 특정 사람에게 인사를 건네고 싶다면 어떻게 해야
@@ -107,8 +107,8 @@ irb(main):034:1> end
107107
=> nil
108108
{% endhighlight %}
109109

110-
새로운 키워드 `class`가 나왔군요. 위에서는 새로운 “Greeter” 클래스와 메소드가
111-
정의되고 있습니다. 또 `@name`도 보이네요. 이는 인스턴스 변수로 모든 메소드에서
110+
새로운 키워드 `class`가 나왔군요. 위에서는 새로운 “Greeter” 클래스와 메서드가
111+
정의되고 있습니다. 또 `@name`도 보이네요. 이는 인스턴스 변수로 모든 메서드에서
112112
접근이 가능합니다. 보다시피 `say_hi``say_bye`에서 사용되고 있습니다.
113113

114114
어떻게 이 “Greeter” 클래스를 사용하냐구요? [객체를 만들면](../3/) 됩니다.

ko/documentation/quickstart/3/index.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ SyntaxError: compile error
4444
## 객체 들여다보기
4545

4646
객체 변수는 객체 안에 숨겨져 있습니다. 사실 객체 변수가 그렇게 꽁꽁 숨겨져 있는 것은 아니지만, 루비는 기본적으로 데이터를
47-
숨겨두는 객체지향 방식을 따르고 있습니다. “Greeter”의 객체들에는 어떤 메소드가 들어있을까요?
47+
숨겨두는 객체지향 방식을 따르고 있습니다. “Greeter”의 객체들에는 어떤 메서드가 들어있을까요?
4848

4949
{% highlight irb %}
5050
irb(main):039:0> Greeter.instance_methods
@@ -60,17 +60,17 @@ irb(main):039:0> Greeter.instance_methods
6060
"instance_variables", "instance_of?"]
6161
{% endhighlight %}
6262

63-
메소드가 상당히 많은 것을 알 수 있습니다. 우리가 정의한 메소드는 2개에 불과한데
64-
어떻게 된 것일까요? 위의 목록은 “Greeter” 객체들의 메소드뿐만 아니라 **모든**
65-
상속된 메소드도 포함하고 있기 때문입니다. `false`를 인자로 넘기면 부모 클래스에
66-
정의된 메소드를 제외한 목록을 볼 수 있습니다.
63+
메서드가 상당히 많은 것을 알 수 있습니다. 우리가 정의한 메서드는 2개에 불과한데
64+
어떻게 된 것일까요? 위의 목록은 “Greeter” 객체들의 메서드뿐만 아니라 **모든**
65+
상속된 메서드도 포함하고 있기 때문입니다. `false`를 인자로 넘기면 부모 클래스에
66+
정의된 메서드를 제외한 목록을 볼 수 있습니다.
6767

6868
{% highlight irb %}
6969
irb(main):040:0> Greeter.instance_methods(false)
7070
=> ["say_bye", "say_hi"]
7171
{% endhighlight %}
7272

73-
우리의 “greeter” 객체가 어떤 메소드에 응답하는지를 개별적으로 확인하는 것도 가능합니다.
73+
우리의 “greeter” 객체가 어떤 메서드에 응답하는지를 개별적으로 확인하는 것도 가능합니다.
7474

7575
{% highlight irb %}
7676
irb(main):041:0> g.respond_to?("name")
@@ -81,9 +81,9 @@ irb(main):043:0> g.respond_to?("to_s")
8181
=> true
8282
{% endhighlight %}
8383

84-
즉, `say_hi`라는 이름의 메소드를 가지고 있고 `to_s`(어떤 객체를 문자열로 변환하는
85-
메소드로 모든 객체가 가지고 있습니다.)라는 이름의 메소드도 가지고 있지만,
86-
`name`이란 이름의 메소드에 응답하지는 않습니다.
84+
즉, `say_hi`라는 이름의 메서드를 가지고 있고 `to_s`(어떤 객체를 문자열로 변환하는
85+
메서드로 모든 객체가 가지고 있습니다.)라는 이름의 메서드도 가지고 있지만,
86+
`name`이란 이름의 메서드에 응답하지는 않습니다.
8787

8888
## 클래스 정의 변경하기-늦었다고 생각할 때가 가장 빠른 때죠
8989

@@ -122,7 +122,7 @@ Hi Betty!
122122
=> nil
123123
{% endhighlight %}
124124

125-
`attr_accessor`은 두 개의 메소드를 새로 정의해줍니다. `name`은 인스턴스 변수의
125+
`attr_accessor`은 두 개의 메서드를 새로 정의해줍니다. `name`은 인스턴스 변수의
126126
값에 접근하기 위한 것이고 `name=`은 객체변수의 값을 변경하기 위한 것입니다.
127127

128128
## Mega Greeter

ko/documentation/quickstart/4/index.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ header: |
2121
주석으로 프로그램 실행시에 무시됩니다. 파일의 첫 번째 줄은 다소 예외적인 경우인데, 유닉스 계열의 운영체제에서 어떻게 이 파일을
2222
실행할 수 있는지를 알려주는 역할을 합니다. 다른 주석은 단지 코드를 이해하기 쉽게 하기 위해서 위해 있을 뿐입니다.
2323

24-
`say_hi` 메소드가 조금 더 복잡해졌습니다.
24+
`say_hi` 메서드가 조금 더 복잡해졌습니다.
2525

2626
{% highlight ruby %}
2727
# Say hi to everybody
@@ -39,7 +39,7 @@ def say_hi
3939
end
4040
{% endhighlight %}
4141

42-
`say_hi` 메소드는 이제 결정을 내리기 위해 `@names` 인스턴스 변수의 내용을 확인합니다.
42+
`say_hi` 메서드는 이제 결정을 내리기 위해 `@names` 인스턴스 변수의 내용을 확인합니다.
4343
만약 `@names`가 nil이라면, 세 개의 점을 출력하게 되죠. 존재하지 않는 사람에게 인사를
4444
할 필요는 없을 테니 말입니다.
4545

@@ -59,7 +59,7 @@ end
5959
{% endhighlight %}
6060

6161
`each`는 코드 블록을 넘겨 받아서 리스트의 각 원소에 순차적으로 이를 적용시키는
62-
메소드입니다. `do``end` 사이의 코드가 바로 블록이지요. 블록은 익명 함수 또는
62+
메서드입니다. `do``end` 사이의 코드가 바로 블록이지요. 블록은 익명 함수 또는
6363
`lambda`와 유사하다고 볼 수 있습니다. 두개의 `|` 사이의 변수는 이 블록에 넘겨지는
6464
매개 변수입니다.
6565

@@ -79,8 +79,8 @@ for (i=0; i<number_of_elements; i++)
7979
물론 위의 코드는 잘 작동합니다. 하지만 그다지 우아하지는 않지요. 임시 변수인 `i`
8080
필요한 데다가, 리스트의 길이가 얼마인지도 계산해야 하지요. 그리고 리스트의 내용물을
8181
접근하는 코드도 작성해야 합니다. 루비의 방식이 훨씬 더 우아합니다. 핵심적이지 않은
82-
코드는 `each` 메소드 안에 숨겨져 버렸지요. 단지 각 내용물을 가지고 무엇을 할 것인지만
83-
코딩하면 됩니다. 내부적으로 `each` 메소드는 `yield "Albert"`를 하고 `yield "Brenda"`
82+
코드는 `each` 메서드 안에 숨겨져 버렸지요. 단지 각 내용물을 가지고 무엇을 할 것인지만
83+
코딩하면 됩니다. 내부적으로 `each` 메서드는 `yield "Albert"`를 하고 `yield "Brenda"`
8484
하고 `yield "Charles"` 등등을 계속 호출함으로써 리스트의 내용물을 블록에 넘겨줍니다.
8585

8686
## 루비에서의 전가의 보도, 블록
@@ -102,16 +102,16 @@ def say_bye
102102
end
103103
{% endhighlight %}
104104

105-
`say_bye` 메소드는 `each` 메소드를 사용하지 않는군요. `say_bye` 메소드는 단지 `@names`
106-
`join` 메소드를 가졌는지 확인하고, 가지고 있다면 `join` 하고 있습니다. 그렇지 않다면, 변수를 문자열로 출력만 합니다. 이
107-
메소드는 변수의 실제 *타입*은 신경을 쓰지 않는군요. 이처럼 단지 어떤 메소드만을 가지고 있는지에 의존하는 것을 덕 타이핑(Duck
105+
`say_bye` 메서드는 `each` 메서드를 사용하지 않는군요. `say_bye` 메서드는 단지 `@names`
106+
`join` 메서드를 가졌는지 확인하고, 가지고 있다면 `join` 하고 있습니다. 그렇지 않다면, 변수를 문자열로 출력만 합니다. 이
107+
메서드는 변수의 실제 *타입*은 신경을 쓰지 않는군요. 이처럼 단지 어떤 메서드만을 가지고 있는지에 의존하는 것을 덕 타이핑(Duck
108108
Typing)이라고 부릅니다. “만약 오리처럼 걷고 오리처럼 꽥꽥거리면...”에서처럼 말입니다. 이런 방식의 장점은 어떤 타입의
109109
변수를 지원할 것인지를 제한할 필요가 없다는 것입니다. 만약 누군가가 새로운 종류의 list 클래스를 정의했다고 해도, 거기에
110-
`join` 메소드만 정의되어 있으면 잘 동작 할 것입니다.
110+
`join` 메서드만 정의되어 있으면 잘 동작 할 것입니다.
111111

112112
## 스크립트 실행하기
113113

114-
“MegaGreeter” 클래스는 그게 전부입니다. 나머지 코드는 단지 클래스의 메소드를 호출할 뿐이지요. 아, 설명하지 않은 것이
114+
“MegaGreeter” 클래스는 그게 전부입니다. 나머지 코드는 단지 클래스의 메서드를 호출할 뿐이지요. 아, 설명하지 않은 것이
115115
한 가지 더 있군요. 다음의 코드입니다.
116116

117117
{% highlight ruby %}
@@ -125,7 +125,7 @@ if __FILE__ == $0
125125
## 이제 기초는 다 익혔습니다
126126

127127
루비를 잠깐 둘러 보았습니다. 물론 훨씬 더 많은 것들이 기다리고 있습니다. 루비가 제공하는 여러 제어문들, 블록의 사용과
128-
“yield” 메소드, 모듈과 믹스인, 그리고 훨씬 더 많은 것들이요. 이 짧은 튜토리얼이 여러분이 루비를 더 배워보고 싶게
128+
“yield” 메서드, 모듈과 믹스인, 그리고 훨씬 더 많은 것들이요. 이 짧은 튜토리얼이 여러분이 루비를 더 배워보고 싶게
129129
했으면 하는 바람입니다.
130130

131131
만약 그랬다면, 매뉴얼과 튜토리얼 등이 소개되어 있는 [문서 섹션](/ko/documentation)으로 가 보세요. 모두

ko/documentation/quickstart/index.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,17 +107,17 @@ irb(main):006:0> Math.sqrt(9)
107107

108108
`Math`는 수학계산을 위한 내부 모듈입니다. 루비에서 모듈은 두 가지
109109
역할을 합니다. 위의 예는 이중 한 가지를 보여주고 있습니다. 즉, 관련이
110-
있는 여러 메소드를 하나의 이름으로 묶어두는 것이지요. `Math`에는
111-
`sin()``tan()` 같은 메소드도 들어있답니다.
110+
있는 여러 메서드를 하나의 이름으로 묶어두는 것이지요. `Math`에는
111+
`sin()``tan()` 같은 메서드도 들어있답니다.
112112

113113
다음은 점을 설명할 차례군요. 점은 무슨 역할을 할까요? 점은 메시지와
114114
메시지를 받는 대상을 구분하여 줍니다. 메시지가 무엇이냐구요? 위의
115115
예제의 경우 메시지는 `sqrt(9)`입니다. 이는 "제곱근"을 의미하는
116-
`sqrt` 메소드를 호출하며 `9`를 매개 변수로 넘기라는 의미입니다.
116+
`sqrt` 메서드를 호출하며 `9`를 매개 변수로 넘기라는 의미입니다.
117117

118-
메소드 호출의 결과 값은 `3.0`입니다. 그냥 `3`이 아니라는 걸
118+
메서드 호출의 결과 값은 `3.0`입니다. 그냥 `3`이 아니라는 걸
119119
눈치채셨는지요? 사실 대부분의 경우에 제곱근의 값은 정수가 아니므로
120-
`sqrt` 메소드는 언제나 실수를 반환합니다.
120+
`sqrt` 메서드는 언제나 실수를 반환합니다.
121121

122122
계산의 결과 값을 저장해두고 싶다면 어떻게 해야 할까요? 변수에 할당해두면
123123
됩니다.

0 commit comments

Comments
 (0)