이미지 파일 및 설정 파일 삭제, 새로운 CLI 및 문서 추가
This commit is contained in:
207
docs/10_웹 개발.md
Normal file
207
docs/10_웹 개발.md
Normal file
@@ -0,0 +1,207 @@
|
||||
# **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
|
||||
<h1>환영합니다! Ruby on Rails 웹사이트입니다.</h1>
|
||||
```
|
||||
|
||||
서버를 실행하고 `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** 중 프로젝트에 맞는 프레임워크를 선택하여 효율적으로 웹 애플리케이션을 개발할 수 있다.
|
||||
Reference in New Issue
Block a user