공식 홈페이지
1. 개요
Ruby on Rails는 Ruby를 사용하는 웹 프레임워크로 덴마크의 데이비드 하이네마이어 핸슨(David Heinemeier Hansson)이 오픈 소스로 만들었다. 줄여서 Rails나 RoR이라고도 부른다. 풀 스택 웹 프레임워크이고, non full-stack 웹 프레임워크로는 Sinatra 등이 있다.Ruby on Rails 이후 등장한 거의 모든 풀스택 웹 프레임워크는 Rails의 디자인에 영향을 받았다고 해도 과언이 아닐 정도이다. Python의 Django나 PHP의 Laravel이 그 영향을 받아 설계되었다. MVC 모델 패턴을 채택하고 있으며, 사용하는 언어가 Ruby인지라 고급지고 간결한 코드를 작성할 수 있다. 특히 애자일 프로세스에 초점을 맞추는 스타트업 기업들이 많이 채택하였다. 그리고 Github가 채택하면서 레전드를 찍었다.
그러나 2016년부터 Node.js의 인기가 상승함에 따라 마이크로서비스 아키텍처가 부상하였고, 2020년 이후로는 전세계적으로 마이크로서비스가 더욱 많이 사용되고 있다. 이러한 트렌드의 변화로 인해 Ruby on Rails와 같은 모놀리식 웹 프레임워크의 점유율은 다소 감소하고 있으나, RoR은 여전히 강력한 기능과 높은 생산성을 제공하여 가치 있는 선택지로 남아있다.
2. 특징
루비로 작성된 MVC 패턴을 이용하는 오픈 소스 웹 프레임워크이다2.1. 장점
- 언어의 특성이 애자일에 초점이 맞춰져 있기 때문에 생산성이 높다.
- 확장성과 이식성이 높다.[1]
- 데이터베이스 작업할 때 액티브레코드 패턴을 적용한 ORM을 도입하여 편리하다.
- 세부적인 설정이 적은 편이다.
2.2. 단점
- 개발자가 부족하다. 물론 이것은 국내의 얘기.
- 파이썬의 장고만큼 속도가 느리다.
- 암시적 규약이 많다. [2]
3. 여담
- Ruby를 모르는 사람도 강좌 몇 개를 보면 쓸만한 블로그 하나를 만들 수 있을 정도로 쉽고 빠르게 웹 애플리케이션을 제작할 수 있다.
- 빠르게 서비스를 개발해야 하는 스타트업 회사에서 많이 사용한다. 하지만 한국에서는 Ruby라는 언어 자체가 굉장히 마이너하기 때문에 요즘에는 PHP의 라라벨을 쓰거나, Python Django, JavaScript 를 선호하는 경향이 있다.
-
성능 문제가 있다고 하는데, 파이썬보다는 느리지만 깃허브, 그루폰,
트위터[3]에서도 사용하고, 루비가 일본인이 개발한 언어라 일본에서는 개발자도 많고 대형회사들도 사용한다. 사실 하드웨어 자원을 빡세게 활용하는 애플리케이션(게임 등)이 아닌 이상, 성능은 언어의 속도보다는 데이터베이스를 얼마나 빠르게 가져오느냐 등 외부적 요소에 영향을 더 크게 받는다. - Python의 Flask에 해당하는 Ruby의 마이크로 웹 프레임워크는 Sinatra이다.
4. Rails로 만들어진 한국 내 서비스 현황
구글에 inurl:users/sign_in
키워드로 검색해보면 레일즈를 사용중인 사이트들을 확인할 수 있다.5. 관련 문서
[1]
프레임워크의 '확장성(Scalability)'이란 시스템의 스펙이 변경되어도 그에 맞추어 기능이 계속 동작하게끔 만들 수 있는지의 여부를 의미한다. 시스템에서 '확장성'은 두 가지로 나뉘는데, 특정한 (서버) 하드웨어의 CPU나 RAM을 업그레이드하는 것을 수직적 확장성이라고 하고, 아키텍처 자체를 늘리는 것(ex. 단일 서버 → 서버/로드 밸런서/DB 인스턴스로 분할)을 수평적 확장성이라고 한다. '이식성'은 다양한 운영 체제에서 사용될 수 있는지의 여부이다.
[2]
프로젝트 초반에는 빠른 개발이 가능해 장점일 수 있지만 초반을 지나면 '사이드 이펙트'를 만들 가능성이 급격히 커진다
[3]
Scala로 변경하였다.