본문 바로가기

개발도구

[루비] Ruby

루비는…

간결함과 생산성을 강조한 동적인 오픈 소스 프로그래밍 언어입니다.

루비의 우아한 문법으로 자연스럽게 읽고 쓰기 편한 프로그램을 만들수 있습니다.
 

루비 홈페이지에 접속하게 되면 이렇게 설명하고 있다. 
루비는 과연 모하는 프로그램인가??? 의문점에 일단 실행해 보기로 하였다. 
설치 배경 운영체제는 편리한 윈도우 체제를 선택하였다. 

http://www.ruby-lang.org/ko/

사이트에서 Ruby 와 간단한 소스와 튜터리얼을 찾아 볼수 있다. 

루비를 만든 마츠의 목표

루비는 균형잡힌 언어입니다. 루비를 만든 유키히로 마츠모토(일명 마츠)는 그가 좋아하는 언어인 펄, 스몰토크, 아이펠, 에이다, 리스프를 섞어서 명령형 프로그래밍언어이자 함수형 언어인 새로운 언어를 만들었습니다
그는 “루비를 단순하게 만드는 것이 아니라 자연스럽게 만들려고 노력한다”라고 말하곤 합니다. 우리의 삶을 반영하고자 한다는 것이지요.
이렇게 말한 적도 있습니다.
루비는 언뜻보기에는 간단해보입니다. 하지만 그 내부는 무척이나 복잡하지요. 마치 사람의 몸처럼요

모든 것은 객체이다.

처음에 마츠는 이상적인 문법을 가진 언어를 찾고 있었다. 그 때를 회고하며 그는 “나는 펄보다 강력하고 파이썬보다는 객체지향적인 스크립트 언어가 필요했다[3]”라고 말해다.
루비에서는 모든 것이 객체이다. 따라서 루비에서 모든 것은 자신만의 속성과 액션을 갖는다. 객체지향 프로그래밍에서 이런 속성을 인스턴스 변수라고 하고, 액션을 메서드라고 한다. 루비의 순수 객체지향 접근법은 아래의 예제처럼 숫자에 액션을 취하는 코드로 대표되곤 한다. 

루비의 유연함

개발자가 루비의 어떤 부분이든 자유롭게 바꿀 수 있기 때문에 매우 유연한 언어라고 할 수 있다. 원한다면 루비 코어 부분도 제거하고 재정의할 수 있다. 이미 존재하는 코드에 무엇인가를 덧붙일 수도 있다. 루비는 기본적으로 개발자의 사고를 제한하지 않는다.

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

class Numeric
  def plus(x)
    self.+(x)
  end
end

y = 5.plus 6
# 이제 y는 11이 되었다

루비 다운로드
http://www.ruby-lang.org/ko/downloads/  

루비 20분 가이드
http://www.ruby-lang.org/ko/documentation/quickstart/ 

인스톨과 루비 20분 가이드를 마치니 대략 40분 가량 걸렸다. 
사실 너무 클래스화 되어 잇어서 나처럼 인터프린트 언어에 강한 사람들은 조금 시간이 걸리겠지만..
모 대단한 언어라 하니.. 조금식 공부해보기로 한다. 

아래는 직접 실행한 화면이다.