6.0 KiB
Ruby를 활용한 웹 개발
Ruby는 웹 개발에 최적화된 언어 중 하나로, 강력한 웹 프레임워크인 **Ruby on Rails(Rails)**를 중심으로 많은 웹 애플리케이션이 개발되고 있다. 또한, Sinatra 같은 경량 웹 프레임워크도 있어 다양한 방식으로 웹 애플리케이션을 개발할 수 있다.
이 글에서는 Ruby 웹 개발의 개요, 주요 프레임워크, 기본적인 웹 애플리케이션 개발 방법을 설명한다.
1. Ruby로 웹 개발을 하는 이유
Ruby는 간결하고 직관적인 문법을 가지고 있어 생산성이 높은 언어다. 특히 Ruby on Rails 프레임워크를 활용하면 빠르게 웹 애플리케이션을 개발할 수 있다.
1.1. Ruby 웹 개발의 장점
- 생산성이 높음: 코드가 간결하여 개발 속도가 빠름
- 웹 프레임워크가 강력함: Rails, Sinatra 등 다양한 프레임워크 제공
- 테스트 및 품질 관리가 쉬움: RSpec, Capybara 등을 활용한 자동화 테스트 지원
- 커뮤니티 지원이 풍부함: 많은 오픈소스 프로젝트와 패키지(gem) 제공
2. Ruby 웹 프레임워크 종류
Ruby에는 여러 웹 프레임워크가 있지만, 가장 대표적인 두 가지는 다음과 같다.
| 웹 프레임워크 | 특징 |
|---|---|
| Ruby on Rails | MVC 패턴 기반의 강력한 풀스택 프레임워크 |
| Sinatra | 가볍고 심플한 마이크로 프레임워크 |
3. Ruby on Rails 개요 및 기본 사용법
3.1. Ruby on Rails란?
Rails는 Ruby 언어로 만들어진 풀스택 웹 프레임워크로, MVC(Model-View-Controller) 아키텍처를 기반으로 한다.
Rails의 특징
- Convention over Configuration (설정보다 관례): 기본 설정을 제공하여 개발자가 설정할 사항을 최소화
- DRY (Don't Repeat Yourself, 중복 코드 최소화): 재사용성이 높은 코드를 지향
- Active Record ORM: 데이터베이스 연동이 쉬움
3.2. Rails 설치 및 프로젝트 생성
(1) Rails 설치
Ruby와 Bundler가 설치되어 있어야 한다.
gem install rails
설치가 완료되면 Rails 버전을 확인할 수 있다.
rails -v
(2) 새로운 Rails 프로젝트 생성
rails new myapp
cd myapp
(3) 서버 실행
rails server
이제 브라우저에서 http://localhost:3000에 접속하면 Rails 기본 화면을 볼 수 있다.
4. Rails의 MVC 구조
Rails는 MVC 패턴을 기반으로 동작한다.
| 컴포넌트 | 설명 |
|---|---|
| Model | 데이터 및 비즈니스 로직 담당 (Active Record) |
| View | 사용자에게 보여지는 화면 (HTML, ERB, JavaScript) |
| Controller | 사용자 요청을 처리하고 Model과 View를 연결 |
4.1. 컨트롤러 생성 및 라우팅 설정
(1) 컨트롤러 생성
rails generate controller Home index
(2) 라우팅 설정 (config/routes.rb)
Rails.application.routes.draw do
root "home#index"
end
(3) View 수정 (app/views/home/index.html.erb)
<h1>환영합니다! Ruby on Rails 웹사이트입니다.</h1>
서버를 실행하고 http://localhost:3000에 접속하면 해당 화면이 보인다.
5. Sinatra를 활용한 경량 웹 개발
Rails가 큰 프로젝트에 적합하다면, Sinatra는 간단한 웹 애플리케이션을 만들기에 적합하다.
5.1. Sinatra 설치
gem install sinatra
5.2. 기본 Sinatra 웹 애플리케이션
파일: app.rb
require "sinatra"
get "/" do
"Hello, world!"
end
5.3. 실행 방법
ruby app.rb
브라우저에서 http://localhost:4567에 접속하면 "Hello, world!"가 출력된다.
6. 데이터베이스 연동
웹 애플리케이션에서 데이터 저장이 필요할 경우, Active Record(Rails의 ORM)를 활용하면 쉽게 데이터베이스를 다룰 수 있다.
6.1. 데이터베이스 설정 (SQLite3 사용)
Rails 프로젝트에서 config/database.yml을 수정하여 사용할 데이터베이스를 지정할 수 있다. 기본적으로 SQLite3이 설정되어 있다.
default: &default
adapter: sqlite3
pool: 5
timeout: 5000
6.2. 모델 생성 및 마이그레이션
(1) User 모델 생성
rails generate model User name:string email:string
rails db:migrate
(2) 데이터 삽입 및 조회 (rails console)
User.create(name: "홍길동", email: "hong@example.com")
users = User.all
puts users.inspect
7. 웹 애플리케이션 배포
7.1. Heroku를 이용한 배포
Heroku는 Ruby on Rails 애플리케이션을 쉽게 배포할 수 있는 PaaS(Platform as a Service)이다.
(1) Heroku CLI 설치 및 로그인
heroku login
(2) Git 초기화 및 Heroku 앱 생성
git init
git add .
git commit -m "Initial commit"
heroku create
(3) 애플리케이션 배포
git push heroku main
heroku open
이제 배포된 웹사이트를 브라우저에서 확인할 수 있다.
8. 정리
| 주제 | 설명 |
|---|---|
| Rails | MVC 아키텍처 기반의 풀스택 웹 프레임워크 |
| Sinatra | 간단한 웹 애플리케이션을 위한 경량 프레임워크 |
| Active Record | ORM(Object-Relational Mapping) 방식으로 DB 연동 |
| Heroku 배포 | 간단한 명령어로 Rails 애플리케이션 배포 |
Ruby를 활용한 웹 개발은 빠른 개발 속도, 강력한 프레임워크, 간결한 문법 덕분에 생산성이 높다. Rails와 Sinatra 중 프로젝트에 맞는 프레임워크를 선택하여 효율적으로 웹 애플리케이션을 개발할 수 있다.