1. 일반 질문


1.1 루비는 어떤 프로그래밍 언어인가요?

루비는 간결하면서도 강력한 순수 객체지향 언어입니다. Yukihiro Matsumoto(Matz)에 의해 1993년에 처음 만들어 졌지요.

루비는 다른 프로그래밍 언어의 영향을 많이 받았습니다. SmallTalk로부터 순수 객체지향성, 다이내믹 타이핑, 자동 메모리 관리(Garbage Collection), 블록 등의 기능을 물려 받았고, Perl의 텍스트 처리 기능을 물려 받았으며, Lisp으로 부터는 메타 프로그래밍, 컨티뉴에이션 등의 기능을 물려 받았지요.

루비의 최대 장점은 프로그래머가 루비가 지원하는 기능을 최대한 사용하기 편리하게 디자인되었다는 것입니다. Matz의 말을 빌리면 루비는 프로그래머의 행복에 촛점을 두고 만들어진 언어라고 합니다.

1.2 루비 코드를 좀 보았으면 합니다.

우선 루비를 사용해서 Book 클래스를 정의해 보도록 하겠습니다.

class Book
  attr_accessor :title, :author, :price
  def initialize(title, author, price)
    @title = title
    @author = author
    @price = price
  end
end
 

이제 Book 클래스를 이용해서 세개의 객체를 생성해 보겠습니다.

books = Array.new
books << Book.new("Programming Ruby", "데이브 토마스", 54900)
books << Book.new("The Ruby Way", "할 풀턴", 60000)
books << Book.new("Learn to Program", "크리스 파인", 27400)
 

이제 books라는 배열에 새로 생성된 세개의 Book 객체가 들어가 있습니다. 이제 books의 메소드를 호출해서 도서 정보 목록을 출력해 보겠습니다.

books.each {|b| puts b.title + " (" + b.author + "): " + b.price.to_s + "원"}

== 출력 내용 ==
Programming Ruby (데이브 토마스): 54900원
The Ruby Way (할 풀턴): 60000원
Learn to Program (크리스 파인): 27400원
 

책 가격의 총합을 한 번 출력해 볼까요?

puts "책의 가격은 총 " + books.inject(0) {|sum, b| sum += b.price}.to_s + "원 입니다!"

== 출력 내용 ==
책의 가격은 총 142300원 입니다!
 

루비를 처음 접한다면 위의 코드가 금방 이해가 가지는 않을 겁니다. 하지만 출력물에 비해 소스코드가 상당히 간결하다는 느낌이 들지는 않나요?

1.3 왜 이름이 '루비'가 되었나요?

루비를 처음 만든 Yukihiro Matsumoto는 Perl의 영향을 받아 보석 이름을 사용하고 싶어했다고 합니다. 7월의 탄생석인 루비는 6월의 탄생석인 진주(Pearl)의 다음을 의미하기도 하지요. 루비는 초기에 더 나은 Perl을 지향했었답니다.

원래 Perl은 Pearl(Practical Extraction And Reporting Language)로 이름지어질뻔 하다가 이미 Pearl이란 이름을 사용하는 언어가 있어서 Perl(Practical Extraction and Reporting Language)이 되었다고 합니다.

1.4 루비의 홈페이지는 어디에 있나요?

www.ruby-lang.org/ko/에 루비 한글 홈페이지가 있습니다.

1.5 루비 메일링 리스트가 있나요?

현재 루비와 관련한 두개의 영문 메일링 리스트가 있습니다. ruby-talk는 루비 사용자를 위한 메일링 리스트이고, ruby-core는 루비 언어의 개발자들을 위한 메일링 리스트입니다.

ruby-talk에 가입하기 위해서는 ruby-talk 관리 주소인 ruby-talk-ctl@ruby-lang.org로 이메일을 보내셔야 합니다. 메일 본문에 (제목이 아님) 다음 내용을 넣어 보내시면 됩니다.

subscribe 이름

예를 들면,

subscribe Gil Dong Hong

이렇게 보내시면 됩니다. 가입한 후에는ruby-talk 메일링 리스트 주소인 ruby-talk@ruby-lang.org로 이메일을 보내시면 메일링 리스트에 글이 게시되게 됩니다.

ruby-core에 가입하기 위해서는 ruby-core 관리 주소인 ruby-core-ctl@ruby-lang.org에 가입 메일을 보내시고 ruby-core 메일링 리스트 주소인 ruby-core@ruby-lang.org로 이메일을 보내시면 됩니다.

1.6 루비 포럼을 알려 주세요.

www.ruby-forum.com에는 루비 및 루비와 관련한 주요 프로젝트의 포럼이 있습니다. 이곳의 루비 포럼은 위의 루비 메일링 리스트와 연동되어 돌아갑니다.

한국어로 된 포럼에는 한국 루비 사용자 포럼이 있습니다.

1.7 루비에 관한 책을 추천해 주세요.

흔히 PickAxe(곡갱이)란 애칭으로 더 잘 알려진 Programming Ruby는 루비의 바이블입니다. 이책의 첫 에디션은 무료로 인터넷에서 읽을 수 있습니다.

프로그래밍을 처음 접한다면, Learn To Program을 통해 루비로 프로그래밍을 배워보는 것도 좋을 듯 합니다.

1.8 루비를 지원하는 텍스트 편집기를 알려 주세요.

루비를 지원하는 에디터는 많이 있습니다. 윈도에서는 이클립스 기반의 RadRails(무료)가 많이 사용되고, 맥에서는 TextMate(39유로, 30일 시험용 버전)가 많이 사용됩니다.

이외에도 emacs, vi, jEdit, Komodo, Arachno Ruby, BBEdit 등이 루비를 지원합니다.