mir.pe (일반/어두운 화면)
최근 수정 시각 : 2024-11-04 02:21:51

Ruby on Rails

웹 프레임워크 기술
{{{#!wiki style="margin:0 -10px"
{{{#!folding [ 펼치기 / 접기 ]
{{{#!wiki style="margin:-5px 0px -10px; word-break:keep-all"
$ 유료 포함 • 취소선 단종 및 중단
<colbgcolor=#f6f6f9,#2f3241> 프론트엔드 <colbgcolor=#fcfcfd,#272935> CSS Bootstrap Tailwind CSS Bulma Foundation Skeleton Pico
JSX React SolidJS Astro Preact Gatsby Remix Inferno Qwik
JS Angular Svelte Backbone.js jQuery Astro htmx Ember.js Lit 11ty Marko VanJS Alpine.js
Vue Vue.js VuePress Gridsome Quasar Astro
Python Reflex
백엔드 Java Spring Struts GWT Grails Jooby Play! Framework Scala
Kotlin Ktor
JS Express NestJS koa Hono fastify
.NET ASP.NET$
PHP Laravel Codeigniter Reasonable phalcon Symfony zend CakePHP FuelPHP Yii Slim PHPixe
Python Django Flask FastAPI
Ruby Ruby on Rails Sinatra
Go Gin echo Fiber
풀스택 JSX Next.js Astro SolidStart Remix Qwik City
JS SvelteKit Fresh Astro Marko
Vue Nuxt.js Astro
Java Vaadin$
Python Streamlit Reflex
Rust Rocket Actix Leptos Axum
하이브리드 .NET Blazor
Dart Flutter
Kotlin Kotlin Multiplatform
}}}}}}}}} ||



파일:Ruby on Rails 로고.svg

공식 홈페이지

1. 개요2. 특징
2.1. 장점2.2. 단점
3. 여담4. Rails로 만들어진 한국 내 서비스 현황5. 관련 문서

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기반의 웹프레임워크(예, express, nest.js 등) 라는 신흥 강호가 갑툭튀해 점유율이 바짝 쫓기는 상황이다. 2020년 이후로는 전세계적으로 Node.js를 더 많이 쓴다.

2. 특징

루비로 작성된 MVC 패턴을 이용하는 오픈 소스 웹 프레임워크이다

2.1. 장점

2.2. 단점

3. 여담

4. Rails로 만들어진 한국 내 서비스 현황

구글에 inurl:users/sign_in 키워드로 검색해보면 레일즈를 사용중인 사이트들을 확인할 수 있다.

5. 관련 문서



[1] 프레임워크의 '확장성(Scalability)'이란 시스템의 스펙이 변경되어도 그에 맞추어 기능이 계속 동작하게끔 만들 수 있는지의 여부를 의미한다. 시스템에서 '확장성'은 두 가지로 나뉘는데, 특정한 (서버) 하드웨어의 CPU나 RAM을 업그레이드하는 것을 수직적 확장성이라고 하고, 아키텍처 자체를 늘리는 것(ex. 단일 서버 → 서버/로드 밸런서/DB 인스턴스로 분할)을 수평적 확장성이라고 한다. '이식성'은 다양한 운영 체제에서 사용될 수 있는지의 여부이다. [2] 프로젝트 초반에는 빠른 개발이 가능해 장점일 수 있지만 초반을 지나면 '사이드 이펙트'를 만들 가능성이 급격히 커진다 [3] Scala로 변경하였다.