본문 바로가기

RUBY ON RAILS

Ruby 언어의 정의 및 특징

안녕하세요 멋사3기 Kyunni입니다.

네 번째 강의는 '루비의 첫 걸음'으로 루비의 문법을 처음으로 배워보는 시간이었습니다. 저는 Ruby 프로그래밍 언어에 대한 이해도를 높이기 위하여 Ruby라는 언어의 정의와 특징, 그리고 Ruby on Rails에 대하여 먼저 포스팅 하려고 합니다. :)


Ruby의 정의

루비(Ruby)는 1995년 마츠모토 유키히로가 개발한 '동적 객체 지향 스크립트 프로그래밍 언어' 입니다. 일본인 개발자의 언어라는 이유인지, 일본에서는 파이썬보다 루비가 더 많이 활용된다고 합니다. 아래는 루비 언어의 철학입니다.

"스트레스가 없는 쉬운 프로그래밍을 지향하고 우리의 삶을 반영해야 하며, 프로그래밍 언어는 컴퓨터가 아닌, 인간 중심으로 설계 되어야한다."

- 마츠모토 유키히로

루비는 순수 객체 지향 언어입니다. 즉, 루비에서의 정수나 문자열 등을 포함한 데이터 형식 등 모든 것이 객체입니다. (객체지향언어에 대한 설명은 생략하겠습니다.)


Ruby의 장점

  1. 배우기 쉽다.
    코드가 간단하고, 배우기 쉽기 때문에 누구나 금방 배울 수 있습니다.

  2. MVC 모델이 거의 완벽히 구현되어 있다.
    추가적인 작업 없이 폴더 내에 파일명만 맞추면거의 완벽하게 MVC 모델이 구현됩니다. 이것은 레일즈 자체가 완전히 MVC 모델에 맞추어 만든 프레임워크이기 때문입니다.

  3. 확장성과 이식성이 높다.
    확장성이란 시스템(HW/SW)의 용량을 변경해도 그 기능이 계속 잘 동작할 수 있는 능력을 의미하며, 이식성이란 하나 이상의 운영체계에서 사용될 수 있는 여부를 의미합니다. 그래서 루비를 지원하는 OS라면 추가 작업 없이 프로그램이 실행될 수 있습니다. 이는 유지보수에 쓰이는 비용과 시간을 절약해주며, 파이썬이나 JavaScript 등 다른 언어로 개발된 라이브러리를 Ruby 위에 쉽게 구현 가능함을 의미하기도 합니다. 


Ruby의 단점

  1. 속도가 느리다.
    서버에서 고객들에게 전체 메일을 보낸다고 하면(C, Python, Ruby 기준), C로 보낸 메일이 가장 빨리 도착하고, 그 다음이 Python, 그리고 가장 느린 것이 Ruby 입니다.

  2. 어중간하다.
    대규모 서비스에서 이용하기에 실행 속도 측면이 걸리기 때문에 이용이 어려우며, 협업이 필요한 대형 프로젝트에서는 Ruby가 쓰이기에 부적합하다고 합니다.

  3. 국내 사용률이 저조하다.
    우리나라에서는 Ruby를 많이 이용하고 있지 않아서 다른 언어에 비해 관련 서적이나 자료를 찾기 어렵습니다.


Ruby on Rails의 정의

Ruby on Rails는 Ruby의 웹 프로그래밍 프레임워크입니다. Ruby 자체도 쉽고 간편한 언어 이지만, 2004년 말에 개발된 Ruby on Rails 덕분에 더욱 사용하기 편리해지면서, 폭발적인 인기를 얻게 됩니다.

TIOBE에서 조사한 프로그래밍 언어들 중 Ruby 점유율 변화 추이 입니다. 2006년 이후 점유율이 폭발적으로 증가하다가, 2008년 12월, 약 4%의 점유율을 차지하며, 8위까지 순위가 상승하게 되었습니다. 현재는 약 1%의 점유율로 18위까지 떨어지게 되었습니다.


Ruby의 활용

웹사이트를 쉽고 빠르게 만들 수 있기 때문에 간단한 사이트를 구축할 때 이용하는 것이 좋습니다. 또한 프로토타입을 만들 때 이용하는 것이 좋습니다. 그 이유는 앞서 장점에서 설명드렸듯이, 빠르게 무언가를 만드는 데에 굉장히 효율적인 언어이기 때문입니다. 고객 중심의 서비스를 보다 빨리 개발하는 데에 목적이 있다면, 적합한 환경의 언어입니다. 

현재 Ruby로 만들어진 대표적인 사이트로는 소셜커머스인 그루폰(Groupon)과 오픈소스 소프트웨어 호스팅 사이트은 Github이 있습니다(이두희 대장님께서 멋사 시작 전, 가입하라고 하셨던 사이트). 트위터도 Ruby on Rails를 이용하다가 규모가 커지자, Java 기반의 Scalar 언어로 변경했다고 합니다.