# **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가 설치되어 있어야 한다. ```sh gem install rails ``` 설치가 완료되면 Rails 버전을 확인할 수 있다. ```sh rails -v ``` #### **(2) 새로운 Rails 프로젝트 생성** ```sh rails new myapp cd myapp ``` #### **(3) 서버 실행** ```sh rails server ``` 이제 브라우저에서 `http://localhost:3000`에 접속하면 Rails 기본 화면을 볼 수 있다. --- ## **4. Rails의 MVC 구조** Rails는 **MVC 패턴**을 기반으로 동작한다. | 컴포넌트 | 설명 | |----------|-------------------------------| | **Model** | 데이터 및 비즈니스 로직 담당 (Active Record) | | **View** | 사용자에게 보여지는 화면 (HTML, ERB, JavaScript) | | **Controller** | 사용자 요청을 처리하고 Model과 View를 연결 | ### **4.1. 컨트롤러 생성 및 라우팅 설정** #### **(1) 컨트롤러 생성** ```sh rails generate controller Home index ``` #### **(2) 라우팅 설정** (`config/routes.rb`) ```ruby Rails.application.routes.draw do root "home#index" end ``` #### **(3) View 수정** (`app/views/home/index.html.erb`) ```html

환영합니다! Ruby on Rails 웹사이트입니다.

``` 서버를 실행하고 `http://localhost:3000`에 접속하면 해당 화면이 보인다. --- ## **5. Sinatra를 활용한 경량 웹 개발** Rails가 큰 프로젝트에 적합하다면, **Sinatra**는 간단한 웹 애플리케이션을 만들기에 적합하다. ### **5.1. Sinatra 설치** ```sh gem install sinatra ``` ### **5.2. 기본 Sinatra 웹 애플리케이션** 파일: `app.rb` ```ruby require "sinatra" get "/" do "Hello, world!" end ``` ### **5.3. 실행 방법** ```sh ruby app.rb ``` 브라우저에서 `http://localhost:4567`에 접속하면 `"Hello, world!"`가 출력된다. --- ## **6. 데이터베이스 연동** 웹 애플리케이션에서 데이터 저장이 필요할 경우, **Active Record**(Rails의 ORM)를 활용하면 쉽게 데이터베이스를 다룰 수 있다. ### **6.1. 데이터베이스 설정 (SQLite3 사용)** Rails 프로젝트에서 `config/database.yml`을 수정하여 사용할 데이터베이스를 지정할 수 있다. 기본적으로 SQLite3이 설정되어 있다. ```yaml default: &default adapter: sqlite3 pool: 5 timeout: 5000 ``` ### **6.2. 모델 생성 및 마이그레이션** #### **(1) User 모델 생성** ```sh rails generate model User name:string email:string rails db:migrate ``` #### **(2) 데이터 삽입 및 조회** (`rails console`) ```ruby 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 설치 및 로그인** ```sh heroku login ``` #### **(2) Git 초기화 및 Heroku 앱 생성** ```sh git init git add . git commit -m "Initial commit" heroku create ``` #### **(3) 애플리케이션 배포** ```sh git push heroku main heroku open ``` 이제 배포된 웹사이트를 브라우저에서 확인할 수 있다. --- ## **8. 정리** | 주제 | 설명 | |------|------------------------------| | **Rails** | MVC 아키텍처 기반의 풀스택 웹 프레임워크 | | **Sinatra** | 간단한 웹 애플리케이션을 위한 경량 프레임워크 | | **Active Record** | ORM(Object-Relational Mapping) 방식으로 DB 연동 | | **Heroku 배포** | 간단한 명령어로 Rails 애플리케이션 배포 | Ruby를 활용한 웹 개발은 **빠른 개발 속도, 강력한 프레임워크, 간결한 문법** 덕분에 생산성이 높다. **Rails와 Sinatra** 중 프로젝트에 맞는 프레임워크를 선택하여 효율적으로 웹 애플리케이션을 개발할 수 있다.