Difference between r1.8 and the current
@@ -1,7 +1,10 @@
[[TableOfContents]]
=== 진정한 객체지향 언어 ===
* Ruby는 진정한 객체 지향 언어이다.
= Ruby =
마츠모토 유키히로(Matz)가 1995년 ["Smalltalk"], Perl, ["Python"] 의 장점을 취하여 만든 객체지향 스크립트 언어이다. 펄보다 강력하고 파이썬보다 객체지향적이다.
흔히 Ruby를 칭하는 명칭으로 ''진정한 객체지향 언어'', ''보다 나은 Perl'', ''동작하는 의사코드'', ''ALGOL의 탈을 쓴 Lisp''이라 한다.
= 관련 페이지 =
[[pagelist(^RubyLanguage)]]
= Ruby =
마츠모토 유키히로(Matz)가 1995년 SmallTalk, Perl, [Python] 의 장점을 취하여 만든 객체지향 스크립트 언어이다. 펄보다 강력하고 파이썬보다 객체지향적이다.
흔히 Ruby를 칭하는 명칭으로 ''진정한 객체지향 언어'', ''보다 나은 Perl'', ''동작하는 의사코드'', ''ALGOL의 탈을 쓴 Lisp''등이 있다.
== 특징 ===== 진정한 객체지향 언어 ===
* Ruby는 진정한 객체 지향 언어이다.
@@ -18,8 +21,46 @@
* 모든 클래스는 Object 클래스의 자손 클래스이다.
* 단, Ruby 1.9에 도입된 BasicObject 클래스는 예외.
=== 보다 나은 Perl ===
== 웹 ==
* http://www.ruby-lang.org/en/ - 루비 메인 페이지
* 단, Ruby 1.9에 도입된 BasicObject 클래스는 예외.
=== 보다 나은 Perl ===
* Perl과의 유사성
* 텍스트 처리에 적합한 HighlevelLanguage 이다.
* Ruby는 문자열을 간단히 다룰 수 있는 많은 기능을 갖추고 있다.
* Ruby는 확장 정규표현 기능이 인터프리터와 잘 통합되어 있다.
* C언어 라이브러리를 랩핑한 라이브러리를 지니고 있다.
* Perl보다 나은 점
* 스파게티 코드를 작성할 가능성이 덜하다.
=== 동작하는 의사코드 === * Ruby 코드는 간결해서
* 이해하기 쉽다.
* 보다 본질적인 면에 집중할 수 있다.
* C++, Java, C# 등의 언어로 작성한 코드 예문은
* 본질적인 면과 상관없이 컴파일을 위한 코드가 많이 포함된다.
* 언어 자체의 표현 능력 부족으로 의사코드를 사용해야했다.
* Ruby를 사용하면
* 생각하는대로 코드를 작성하면 된다.
* 프로그래밍 상의 개념을 설명할 때 실제로 동작하지 않는 의사코드를 작성할 필요가 없다.
* "Hello!" 를 세 번 출력하는 Ruby 예제 코드. 코드를 영어 문장을 읽듯이 읽어내려갈 수 있다.
{{{
3.times do
puts "Hello!"
end
}}}
=== ALGOL의 탈을 쓴 Lisp === * Ruby는 ALGOL 프로그래머에게 친숙하게 설계되었다.
* 절차를 나열해서 차례로 실행하는 방식으로 구성된다.
* 변수에 대입하고 변수값을 조작하고 식이 가지는 부가작용에 의해 기능을 실현한다.
* 블록을 이용하여 프로그램을 구조화한다.
* Ruby는 Lisp으로부터 많은 사고방식을 계승한다.
* 고수준함수(블록 구문 메소드)
* Domain Specific Language
* 메타 프로그래밍
== 실행환경 ==
=== 인터프리터 ===
* [http://www.ruby-lang.org MRI] - Ruby의 창시자 Matz가 개발한 인터프리터.
* [http://rubyforge.org/projects/ironruby/ IronRuby] - .NET Dynamic Language Runtime 상에서 동작. Ruby를 .NET 언어로서 이용할 수 있다.
* [http://rubydotnet.googlegroups.com/web/Home.htm Ruby.NET] - Ruby 프로그램을 .NET MSIL(중간언어)로 컴파일.
* [http://code.google.com/p/xruby/ XRuby] - Ruby 프로그램을 자바 가상머신 바이트 코드로 컴파일.
* [http://rubini.us Rubinius] - Ruby로 작성된 Ruby 인터프리터.
* [http://trac.macosforge.org/projects/ruby/wiki/MacRuby MacRuby] - Objective-C로 작성된 인터프리터. Mac OS X 상에서 작동.
= 참고 = == 웹 ==
* http://www.ruby-lang.org/en/ - 루비 메인 페이지
@@ -30,8 +71,9 @@
* http://www-903.ibm.com/developerworks/kr/linux/library/l-ruby1.html?dwzone=linux#5 - 한글 튜토리얼
* http://www.os.rim.or.jp/~eban/ - ruby win. GUI 작업 환경
* http://tryruby.org - Ruby를 간단히 배워볼 수 있는 대화형 웹 콘솔
["언어분류"]
* http://www.os.rim.or.jp/~eban/ - ruby win. GUI 작업 환경
* http://tryruby.org - Ruby를 간단히 배워볼 수 있는 대화형 웹 콘솔
* http://groups.google.com/group/rubykr - 한국 루비 사용자 모임
== 책 == * [http://www.yes24.com/24/Goods/2314079?Acode=101 프로그래밍 루비]
* [http://www.yes24.com/24/Goods/3279711?Acode=101 입문자를 위한 루비]
* [http://www.yes24.com/24/Goods/2314079?Acode=101 프로그래밍 루비] - '곡괭이 책'으로 잘 알려진 책. 본책과 별책으로 나뉘어있다. 루비를 익히는 것에 그치지 않고 파워풀하게 사용할 수 있도록 많은 내용을 담고 있다. 매우 두꺼움.
* [http://www.yes24.com/24/Goods/3279711?Acode=101 입문자를 위한 루비] - 타 언어 프로그래머를 위한 Ruby 입문서. 책이 매우 얇고 핵심적인 내용만을 다루고 있어 이미 프로그래밍을 할 줄 아는 사람이라면 빠르게 루비를 익힐 수 있다.
----["언어분류"]
2.1.1. 진정한 객체지향 언어 ¶
- Ruby는 진정한 객체 지향 언어이다.
- Ruby에서는 숫자, 문자열, 정규표현, 입출력, 클래스 자체마저 객체이다. '객체가 아닌 자료형'은 존재하지 않는다.
- 모든 작업은 객체를 이용한 작업이며, 작업의 결과물 또한 객체이다. 메소드나 코드 블록을 객체로 다룰 수 있다.
- Ruby에서는 숫자, 문자열, 정규표현, 입출력, 클래스 자체마저 객체이다. '객체가 아닌 자료형'은 존재하지 않는다.
number = Math.abs(number); // 자바 절대값 구하기
number = nember.abs # 루비 절대값 구하기
- 클래스 기반의 객체지향을 채용했고, 모든 객체는 특정 클래스의 인스턴스이다.
- 모든 클래스는 Object 클래스의 자손 클래스이다.
- 단, Ruby 1.9에 도입된 BasicObject 클래스는 예외.
- 단, Ruby 1.9에 도입된 BasicObject 클래스는 예외.
2.1.2. 보다 나은 Perl ¶
- Perl과의 유사성
- 텍스트 처리에 적합한 HighlevelLanguage 이다.
- Ruby는 문자열을 간단히 다룰 수 있는 많은 기능을 갖추고 있다.
- Ruby는 확장 정규표현 기능이 인터프리터와 잘 통합되어 있다.
- Ruby는 문자열을 간단히 다룰 수 있는 많은 기능을 갖추고 있다.
- C언어 라이브러리를 랩핑한 라이브러리를 지니고 있다.
- 텍스트 처리에 적합한 HighlevelLanguage 이다.
- Perl보다 나은 점
- 스파게티 코드를 작성할 가능성이 덜하다.
- 스파게티 코드를 작성할 가능성이 덜하다.
2.1.3. 동작하는 의사코드 ¶
- Ruby 코드는 간결해서
- 이해하기 쉽다.
- 보다 본질적인 면에 집중할 수 있다.
- C++, Java, C# 등의 언어로 작성한 코드 예문은
- 본질적인 면과 상관없이 컴파일을 위한 코드가 많이 포함된다.
- 언어 자체의 표현 능력 부족으로 의사코드를 사용해야했다.
- 본질적인 면과 상관없이 컴파일을 위한 코드가 많이 포함된다.
- C++, Java, C# 등의 언어로 작성한 코드 예문은
- 이해하기 쉽다.
- Ruby를 사용하면
- 생각하는대로 코드를 작성하면 된다.
- 프로그래밍 상의 개념을 설명할 때 실제로 동작하지 않는 의사코드를 작성할 필요가 없다.
- 생각하는대로 코드를 작성하면 된다.
- "Hello!" 를 세 번 출력하는 Ruby 예제 코드. 코드를 영어 문장을 읽듯이 읽어내려갈 수 있다.
3.times do puts "Hello!" end
2.1.4. ALGOL의 탈을 쓴 Lisp ¶
- Ruby는 ALGOL 프로그래머에게 친숙하게 설계되었다.
- 절차를 나열해서 차례로 실행하는 방식으로 구성된다.
- 변수에 대입하고 변수값을 조작하고 식이 가지는 부가작용에 의해 기능을 실현한다.
- 블록을 이용하여 프로그램을 구조화한다.
- 절차를 나열해서 차례로 실행하는 방식으로 구성된다.
- Ruby는 Lisp으로부터 많은 사고방식을 계승한다.
- 고수준함수(블록 구문 메소드)
- Domain Specific Language
- 메타 프로그래밍
- 고수준함수(블록 구문 메소드)
3.1. 웹 ¶
- http://www.ruby-lang.org/en/ - 루비 메인 페이지
- http://www.rubycentral.com/ - 튜토리얼 및 레퍼런스
- http://testunit.talbott.ws/doc/index.html - 루비용 테스트 유닛
- http://c2.com/cgi/wiki?RubyLanguage - 루비에 대한 사람들의 이야기
- http://www-106.ibm.com/developerworks/linux/library/l-ruby1.html?t=gr,p=Ruby - 루비 튜토리얼
- http://www-903.ibm.com/developerworks/kr/linux/library/l-ruby1.html?dwzone=linux#5 - 한글 튜토리얼
- http://www.os.rim.or.jp/~eban/ - ruby win. GUI 작업 환경
- http://tryruby.org - Ruby를 간단히 배워볼 수 있는 대화형 웹 콘솔
- http://groups.google.com/group/rubykr - 한국 루비 사용자 모임
3.2. 책 ¶
- 프로그래밍 루비 - '곡괭이 책'으로 잘 알려진 책. 본책과 별책으로 나뉘어있다. 루비를 익히는 것에 그치지 않고 파워풀하게 사용할 수 있도록 많은 내용을 담고 있다. 매우 두꺼움.
- 입문자를 위한 루비 - 타 언어 프로그래머를 위한 Ruby 입문서. 책이 매우 얇고 핵심적인 내용만을 다루고 있어 이미 프로그래밍을 할 줄 아는 사람이라면 빠르게 루비를 익힐 수 있다.