2011년 6월 2일 목요일

Introduce Ruby

1. Introduce Ruby

Ruby의 역사
1995년 일본의 프로그래머인 마쓰모토 유키히로(마츠)에 의해 만들어져 대중에게 소개되었으며 현재 GNU 일반 공중 사용 허가서 아래 공개되어 있다. 2008년 1월 현재 최신 안정 버전은 1.8.6 버전이다. 1.9.0 버전이 2007년 12월 발표되었으나 아직 개발버전으로 간주되고 있다. 루비 2.0 은 현재 여러 팀이 서로 다른 형태로 개발중에 있다.
프로그래밍 언어로서의 루비는 한마디로 말한다면, "객체 지향 펄"이라 할 수 있다. 즉 인터프리터 형식으로 실행되는 고기능 스크립트 언어이자 뛰어난 객체 지향적 언어이다. 이러한 특성을 가지면서 루비와 같이 가독성이 뛰어난 대표적인 스크립트 언어는 파이썬이다. 이런 유사함은 각각의 언어 사용자 간에 '어떤 언어가 더 뛰어난가?' 라는 논쟁을 일으켰다. 그러나 그런 논쟁은 대체적으로 기술적으로 너무 세부적인 곳에 집착한 의미 없는 논쟁이었다. 파이썬이 정형화된 들여쓰기를 요구하는 반면 루비는 정형화된 서식을 요구하지는 않는다.
사용자 수와 구현 시스템의 수와 질 등을 비교해 보면, 세계적으로 파이썬이 인기가 더 많다. 한편, 루비의 개발자가 일본인이기 때문에 일본에서는 루비의 인기가 높고 서적 등도 많이 출판되고 있다. 2004년까지는 루비로 작성된 킬러 어플리케이션이 없었다. 하지만, 2004년 말에 발표되어 2005년에 폭발적인 인기를 모은 루비 온 레일즈에 의해 루비는 큰 주목을 받게 되었다.
루비 온 레일즈(Ruby on Rails)
루비로 작성된 모델-뷰-컨트롤러 (MVC) 구조 기반의 오픈 소스 웹 프레임워크이다. 스크립트 언어인 루비의 의해 구축된, 웹 애플리케이션 개발을 위한 프레임워크. 줄여서 레일스라 불리기도 한다. 덴마크의 David Heinemeier Hansson에 의해 개발되어, 오픈소스로 공개되고 있다. 특히 데이터베이스를 이용한 웹 애플리케이션 개발에 있어서, 새롭게 써야 할 필요가 있는 코드를 대폭 줄여서 개발 기간을 단축할 수 있다.

루비 온 레일즈는 MVC(Model-View-Controller) 아키텍처를 지원하며, 데이터베이스에 관한 처리를 담당하는 모델(Model), 데이터 표시를 수행하는 뷰(View), 그것들을 제어하는 컨트롤러(Controller)의 템플릿을 자동 생성하는 기능이 있다. 데이터 작성/읽기/갱신/삭제(CRUID)만을 수행하는 단순한 웹 애플리케이션은, 데이터 테이블 작성과 템플릿을 자동생성 하기만 하면 대부분이 개발 가능하다. 웹 애플리케이션의 대다수는 CRUID 처리를 중핵으로 하기 때문에, 루비 온 레일스를 사용하면 대부분의 코드 작성을 자동화할 수 있어, 개발 기간을 단축할 수 있다.

루비 온 레일즈는, 이 밖에도 웹 애플리케이션 동작 테스트를 수행하기 위한 웹 서버, 테스트를 위한 코드를 자동 생성하는 기능, 웹 애플리케이션 배치를 자동화 하는 툴 등의 툴킷도 같이 제공된다.



Ruby의 방향
루비의 개발자 마쓰모토 유키히로는 루비가 스트레스가 없는 쉬운 프로그래밍이고, 루비는 우리의 삶을 반영해야 하며, 프로그래밍 언어는 (컴퓨터가 아닌) 인간 중심으로 설계되어야 한다고 했다.

Ruby의 구현 버전
루비는 크게 두가지의 버전으로 나누어 볼수있다. 하나는 마쓰모토 유키히로(마츠)가 만든 루비 인터프리터이다. 또 다른 하나는 자바 VM을 사용하는 것으로 JRuby라고 한다. 이것은 Ruby 2.0 에 해당한다. 루비 인터프리터는 유닉스, 리눅스, 마이크로소프트 윈도우즈, 맥 오에스 텐, MS-DOS, OS/2, 아미가 등 많은 플랫폼에 이식되어 있다. JRuby는 순수한 자바에서 실행되기 때문에, 자바 환경을 실행시킬 수 있는 어떠한 곳에서도 실행 가능하다. 닷넷 기반의 IronRuby가 출시 되어 있다. 한편 순수 루비 인터프리터가 갖는 속도의 한계를 뛰어넘기 위해 만들어진 바이트코드 인터프리터 YARV가 있다. YARV는 2007년 12월에 발표된 루비 1.9.0 버전에 포함되어 있다. 루비는 이식성이 매우 높다. 대부분 GNU 리눅스에서 개발되었지만 대부분의 유닉스. 맥 OS X, 윈도우 95/98/Me/NT/2000/XP, 도스, BeOS, OS/2 등에서 동작한다.


Ruby의 특징
  • Ruby는 interpreter 언어이다.
  • Ruby의 변수에는 Type이 없다.
  • 모든 변수는 선언 없이 사용할 수가 있다.
  • 문법이 간단하다.
  • Gabage Collect기능이 있어 메모리 관리가 필요 없다.
  • Ruby는 진정한 객체지향 언어이다.


Ruby Download
http://www.ruby-lang.org/ko/downloads/ 에서 Ruby 1.8.6 Version(안정화 추천버전)을 받는다.

Interactive Ruby
% ruby
puts "Hello, world!"
^D
Hello, world!


루비를 대화형으로 실행하는 가장 간단한 방법은 Shell 프롬프트에서 "ruby"명령어를 실행하는 것이다. 종결 문자는 ^D(Ctrl+D)이다.
C:\>irb
irb(main):001:0> def sum(n1, n2)
irb(main):002:1> n1+n2
irb(main):003:1> end
=> nil
irb(main):004:0> sum(3,4)
=> 7
irb(main):005:0> sum("hurukku", " blog")
=> "hurukku blog"
irb(main):006:0>


irb는 명령행 히스토리를 지원하고, 줄 편집, 작업 제어 등의 기능을 지원한다.
"=> nil"는 함수 실행의 return 값을 표시하며 "nil"은 무(無)를 뜻한다.

Window OS에서 개발한다면 fxri 프로그램을 사용할수 있다. 왼쪽 검색창에서 Ruby 라이브러리를 찾아볼수 있다.

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...