Ruby on Rails
🚄 Ruby on Rails란?
정의
Ruby on Rails(RoR)는 Ruby 기반의 웹 애플리케이션 프레임워크로, 규칙과 자동화를 통해 빠른 개발을 돕는다.
Rails는 Convention over Configuration과 DRY를 중시한다.
즉, 설정을 많이 하기보다 정해진 규칙을 따르도록 설계되어 있어 생산성이 높다.
🧭 핵심 개념
MVC 패턴
Model 데이터와 비즈니스 로직
View 사용자 인터페이스
Controller 요청 처리와 흐름 제어
핵심
Rails는 MVC 구조를 중심으로 동작해서 역할 분리가 명확하다.
Convention over Configuration
- 파일 위치와 이름 규칙이 정해져 있다.
- 설정을 줄이고 기본 규칙을 따른다.
- 반복적인 구성을 줄여 개발 속도를 높인다.
Active Record
정의
Active Record는 데이터베이스 테이블과 Ruby 객체를 연결하는 ORM이다.
class User < ApplicationRecord
end
🏗️ 프로젝트 구조
app/
models/
controllers/
views/
config/
db/
public/
app/models에는 도메인 로직이 들어간다.app/controllers에는 요청 처리가 들어간다.app/views에는 화면 템플릿이 들어간다.config에는 환경과 라우팅 설정이 들어간다.db에는 마이그레이션과 스키마가 들어간다.
⚙️ 주요 기능
Routing
Rails.application.routes.draw do
resources :users
end
- 요청 URL과 컨트롤러 액션을 연결한다.
- REST 스타일로 라우팅을 구성하기 좋다.
Migration
class CreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
t.string :name
end
end
end
- 테이블 구조를 코드로 관리한다.
- 변경 이력을 남기기 좋다.
Scaffold
rails generate scaffold User name:string
핵심
Scaffold를 사용하면 CRUD 화면과 기본 코드를 빠르게 생성할 수 있다.
🔍 실무에서 자주 쓰는 방식
- 스타트업 MVP
- CRUD 중심 관리자 페이지
- API 서버
- 내부 도구
rails new myapp --api
⚖️ Rails와 Spring Boot 비교
| 항목 | Rails | Spring Boot |
|---|---|---|
| 언어 | Ruby | Java |
| 구조 | 규칙 중심 | 설정 중심 |
| 생산성 | 높음 | 높음 |
| 확장성 | 중간 | 높음 |
| 생태계 | 스타트업 친화적 | 엔터프라이즈 친화적 |
✅ 장점
- 빠른 개발 속도
- 일관된 구조
- CRUD 개발에 강함
- 반복 작업이 줄어듦
⚠️ 단점
- 대규모 시스템에서는 구조 조정이 필요할 수 있다.
- 성능 튜닝이 필요한 경우가 있다.
- Ruby 개발자 수급이 제한적일 수 있다.
📌 정리
- Ruby on Rails는 빠른 개발에 강한 생산성 중심 프레임워크다.
- MVC, Routing, Active Record가 핵심이다.
- 규칙을 잘 따르면 유지보수가 쉬운 구조를 만들 수 있다.
댓글남기기