티스토리 뷰
[Ruby On Rails]
- 루비 프로그램 언어에서 동작하는 웹 어플리케이션 프레임워크, 간략히 레일즈라고 부름
- 데이터베이스를 이용한 웹 애플리케이션을 개발할 때 반복되는 코드를 대폭 줄여 개발 기간을 단축하는 것으로 인기 (문법 간결)
- 모든 개발자가 개발을 시작 할때 필요한 초기 준비나 가정들을 쉽게 만들수 있는 도구 제공,
웹 어플리케이션 프로그래밍을 더 쉽게 만들수 있도록 설계
철학
1) DRY (Don't Repeat Yourself)
같은 코드를 반복하지 말자
2) CoC (Convention over Configuration)
: 설정보다 규칙이 중요하다
- 웹 서비스 만드는 방법을 최선의 방법 하나로 제안 -> 이러한 정해준 방법을 Rails Way라고 함
- Rails는 Rails Way에 맞게 모든 설정을 다 본인이 만들어 놓음(기찻길 깔아놓은 것처럼)
MVC 패턴 (Model – View – Controller)
- 소프트웨어 디자인 패턴
- Rails가 선택한 방법, Rails Way에서 선택한 동적인 웹을 만드는 규칙
Model: 어플리케이션의 정보(data)와 데이터를 다루는 규칙들
(데이터의 형식을 지정, 저장하고 불러오는 작업들이 이루어지는 데이터 관리 영역, DB테이블 class화)
app/models
View: UI, 사용자에게 보여지는 부분, 데이터 표현에 관련된 루비 코드가 삽입되어있는 HTML 파일
app/views
Controller: 모델과 뷰를 연결하는 역할, 사용자의 입력이나 조작에 따라 모델 데이터를 조회&수정하고 변경사항을 뷰에 반영
app/controllers
각 파일 목적
Gemfile 레일즈 어플리케이션에 필요한 gem의 의존성 정보를 기술하는데 사용
README 어플리케이션을 위한 짧막한 설명 (설치, 사용 방법 기술등)
Rakefile 터미널에서 실행할 수 있는 배치잡
app/ 어플리케이션을 위한 컨트롤러, 모델, 뷰 포함
config/ 어플리케이션의 실행 시간 규칙, 라우팅, 데이터베이스 등 설정 저장
config.ru 랙(Rack) 기반의 서버들이 시작할때 필요한 설정
db/ 현재 데이터베이스의 스키마를 볼 수 있음 (데이터베이스 마이그레이션)
doc/ 어플리케이션에 대한 자세한 설명 문서
lib/ 어플리케이션을 위한 확장 모듈
log/ 어플리케이션 로그 파일
public/ 외부에서 볼수 있는 유일한 폴더(이미지, 자바스크립트, 스타일시트나 그외 정적인 파일들)
script/ 레일즈 스크립트 포함(어플리케이션 실행, 배포 관련한 스크립트)
test/ 유닛 테스트, 픽스쳐, 그와 다른 테스트 도구들
tmp/ 임시 파일(Temporary files)
vendor/ 서드 파티 코드들을 위한 공간(일반적으로 루비 젬, 레일즈 소스, 패키징된 추가 플러그인 위치)
공식 문서 참조
rubykr.github.io/rails_guides/getting_started.html
Ruby on Rails Guides: 레일즈 시작하기
이 가이드는 레일즈 3.0에 기초합니다. 기존 버전의 레일즈에서는 이 문서의 코드가 동작하지 않을 수 있습니다. 이 가이드의 원본은 영문 버전인 Getting Started with Rails 입니다. 번역 과정에서 원
rubykr.github.io
config/database.yml
데이터베이스 기본 설정 파일
현재 내 development 개발 환경 접속 정보
sqlite3 데이터베이스가 내장되어 있으며 MySQL과 PostgreSQL 별도로 지원
production(제품) 환경에서 데이터베이스를 사용하기 위해, 레일즈는 대부분 어탭터(adapter)를 가지고 있음
db / schema.rb
: 현재 데이터베이스의 모델링 구조가 어떻게 구성되어있는지 나타내는 지도 역할
※ 스키마 파일 직접 수정하면 안됨 (직접 바꾼다고 속성 등이 바뀌지 않음)
마이그레이션 파일 생성하고 db:migrate 과정을 통해서 변경해야 함
타임스탬프: 마지막으로 변경된 시간
t.timestamps (루비온레일즈에서 자동 제공)
- created_at: 특정 레코드가 생성된 시간
- update_at: 특정 레코드가 업데이트될 때마다 현재 시간 기록
rails db:migrate
=> 마이그레이션 파일이 데이터베이스에 실제로 적용돼서 테이블 생성됨
어떤 rdbms를 쓰고 있는지에 대한 정보
각각의 테이블 이름 지정 (테이블 이름들은 단수가 아닌 복수로 생성됨)
각각의 속성, 속성 타입 확인 가능
- t.index: 검색을 빠르게 해 주기 위한 어떤 정보
루비 자료형
숫자 / 문자열 / 배열(Array) / 해시(Hash)
nil = 아무것도 없다
해시(Hash) = {키=>요소}
'루비온레일즈' 카테고리의 다른 글
[Ruby On Rails] ORM (0) | 2021.04.14 |
---|---|
[Ruby On Rails] Migration 마이그레이션 (0) | 2021.04.14 |
[Ruby On Rails] 쇼핑몰 데이터베이스 모델링 (0) | 2021.04.14 |
[DataBase] 데이터베이스 개념 (2) | 2021.04.13 |
사전준비 | 레일즈 프로젝트 작업 위한 세팅 (2) | 2021.04.11 |