본문 바로가기
Back-end

Ruby on Rails

by 탄이. 2019. 1. 12.

Rails

개요

  • Ruby on Rails는 Ruby를 사용하는 웹 프레임워크로 덴마크의 David Heinemeier Hansson이 오픈 소스로 만들었다.

  • 줄여서 Rails나 RoR이라고도 부른다.

  • 풀 스택 웹 프레임워크이고, non full-stack 웹 프레임워크로는 Sinatra 등이 있다.

  • PythonDjangoPHPLaravel과 비슷한 존재인데, Rails 이후 등장한 거의 모든 풀스택 웹 프레임워크는 Rails의 디자인에 영향을 받았다고 해도 과언이 아닐 정도이다.

  • MVC 모델 패턴을 채택하고 있다.

  • 일단 사용하는 언어가 Ruby인지라 고급지고 간결한 코드를 작성 할 수 있다는 장점을 어필, 애자일 프로세스에 초점을 맞추는 많은 스타트업 기업들이 채택하고 주가도 오르려는 찰나 Node.js라는 신흥 강호가 갑툭튀해 점유율이 바짝 쫓기는 상황.

  • 규모 확장 및 축소에 적합하지 않다는, 즉 Scalable하지 않다는 치명적인 단점이 더해져 기존에 레일즈를 채택한 기업들도 다른 프레임워크로 옮긴 사례가 종종 있다.

  • 또한 "Python + Django"처럼 개발 속도는 빠르지만 실행 속도가 느리다는 단점이 있다.

장점

  • Ruby로 개발한다. 더 이상 설명이 필요한가?

  • 언어의 특성이 애자일에 초점이 맞춰져 있기 때문에 생산성이 높다.

  • 데이터베이스 작업 시 매우 편리하다.

  • 세부적인 설정을 줄일 수 있다.

단점

  • 개발자가 부족하다. 물론 언어의 단점은 아니지만 일본을 제외하면 다른 국가에서도 개발자가 많지 않다.

  • 성능 이슈가 있다. (후술)

기타

  • Ruby를 모르는 사람도 강좌 몇 개를 보면 쓸만한 블로그 하나를 만들 수 있을 정도로 쉽고 빠르게 제작할 수 있다.

  • 위에서 서술한 Scalable의 정의는 사용자의 수에 맞춰 애플리케이션의 크기가 동적으로 변하는 규모의 가변성이라고 정의할 수 있다. 서버에서 돌리는 애플리케이션이 사용자가 주는 부하에 맞춰 서버의 자원을 낭비하지 않고 동작하는 정도가 Scalable이다.

  • 빠르게 서비스를 개발해야 하는 스타트업 회사에서 많이 사용한다. 하지만 한국에서는 Ruby라는 언어 자체가 굉장히 마이너하기 때문에 상대적으로 PHP 개발자를 선호하는 경향이 있다. 그 PHP조차도 고급 프로그래머를 구하기 힘들어서 인력난에 허덕이는 중. 또한 정부에서 지정한 프레임워크는 JavaSpring이기 때문에 더욱 밀려나는 편이다.

  • 성능 문제가 있다고 하는데, 차이는 그렇게 크지 않다고 한다. 깃허브, 그루폰, 트위터[1], 카카오 같은 대형 회사들도 Ruby on Rails를 사용한다. 사실 하드웨어 자원을 빡세게 활용하는 애플리케이션(게임 등)이 아닌 이상, 성능은 언어의 속도보다는 데이터베이스를 얼마나 빠르게 가져오느냐 등 외부적 요소에 영향을 더 크게 받는다.

  • PythonFlask에 해당하는게 RubySinatra이다.


댓글