Files
ruby-examples/docs/10_웹 개발.md

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 중 프로젝트에 맞는 프레임워크를 선택하여 효율적으로 웹 애플리케이션을 개발할 수 있다.