Ruby On Rails

송나은·2021년 4월 14일
0

[INSOMENIA]

목록 보기
3/18
post-custom-banner

Ruby On Rails

Rails

루비 언어로 작성된 웹 어플리케이션 프레임워크.
개발을 시작할 때 필요한 초기 준비나 가정들을 쉽게 만들수 있는 도구를 제공하여 프로그래밍을 더 쉽게 만들수 있도록 설계 되어있다.
> Rails_Guides

Rails의 철학

DRY Don't Repeat Yourself 같은 코드가 존재한다면 그것은 나쁜 것이다.
COC Convention over Configuration 설정보다 규약이 중요하다.

MVC 아키텍쳐

  • 모델: 어플리케이션의 정보와 데이터를 다루는 규칙들
    ex) DB의 하나의 테이블은 APP 하나의 모델과 대응한다.
  • 뷰: App의 UI. 데이터 표현에 관련된 루비 코드가 삽입되어 있는 HTML파일. 데이터 제공하는 일을 담당.
  • 컨트롤러: 모델과 뷰를 연결하는 역할. 웹브라우저의 요청을 받아서 모델을 통해 데이터를 조회하고, 출력을 위해 뷰에게 데이터를 넘겨준다.

UI와 비즈니스 로직의 분리. DRY 유지의 편이성. 유지보수를 위한 코드 관리의 편이성이 장점이다.

Rails 프로젝트 만들기

필요한 젬 설치하기

레일즈 어플리케이션을 젬의 의존성을 기본적으로 번들러를 통해서 관리한다. 생성된 Gemfile 에 기술된 젬 외에 다른 젬은 필요없다.
bundle install

DB 설정

config/database.yml 설정 파일의 development에서 수정한다.

development:
  adapter: postgresql
  encoding: unicode
  database: blog_development
  pool: 5
  username: blog
  password:

DB 생성하기

Rails 웹서버 시작하기

rails server

리소스 만들기

$ rails generate scaffold Post name:string title:string content:text

Migration 실행하기

데이터베이스 테이블을 간단하게 생성하고 수정할 수 있도록 설계된 루비 클래스.

  • 마이그레이션 수행하기 up
    두 개의 string 칼럼과 하나의 text 칼럼을 가지는 posts 테이블 생성.
    생성과 업데이트 시점을 기록하는 두 개의 타임스탬프 칼럼을 갖는다.
class CreatePosts < ActiveRecord::Migration
  def self.up
    create_table :posts do |t|
      t.string :name
      t.string :title
      t.text :content
 
      t.timestamps
    end
  end
 
  def self.down
    drop_table :posts
  end
end
  • 마이그레이션 되돌리기 down
profile
그때그때 공부한 내용과 생각을 기록하는 블로그입니다.
post-custom-banner

0개의 댓글