Ruby 언어를 사용하는 개발회사에서 인턴으로 개발을 하게 되면서 Ruby on Rails에 대해 많은 검색을 하게 되었다. Ruby on Rails는 스타트업에서 지난 시즌에 많이 사용했던 언어라고 하지만, 정리된 문서는 정말 없었다. 나중의 나를 위해서라도 정리를 해두기로 하였다.
Ruby on rails는 Ruby 언어로 작성된 오픈소스 웹 프레임워크
DRY (Don't Repeat Yourself)
같은 코드가 존재한다면 그것은 나쁜 것을 의미하며, 같은 코드의 반복을 줄인다
Convention Over Configuration (설명 보다 관습)
원하는 기능들에 대해서 일정한 가정을 바탕으로 해결책을 제공하여 작은 단위의 끝없는 설정 파일을 줄여줌
REST(REpresentational State Transfer)
웹 어플리케이션의 최고의 패턴
리소스와 표준 HTTP 요청(HTTP verb)에 적합한 웹 어플리케이션 개발은 가장 빠른 방법
Rails는 MVC 아키텍처 구조이다.
레일즈의 존재하는 REST의 두가지 원리
EX ) Rails 어플리케이션에서 요청
DELETE /photos/17
→ 원하는 액션은 삭제이고, photo 리소스 ID 17번을 참조하라는 것이다.
Action Pack (액션 팩)
액션 컨트롤러와 액션 뷰를 포함하는 Gem
MVC에서 VC 부분
Action Controller (액션 컨트롤러) : 레일즈 어플리케이션에서 컨트롤러를 담당
액션 컨트롤러 프레임워크는 레일즈 어플리케이션으로 들어오는 요청을 처리하고, 파라미터를 추출하고, 의도된 액션을 보낸다.
액션 컨트롤러는 session 관리, template 렌더링, redirect 관리 서비스를 포함
Action Dispatch (액션 디스패치)
웹의 요청을 받아들여서 원하는 곳으로 연결
Action View (액션 뷰): 레일즈 어플리케이션의 뷰를 관리
HTML, XML을 만들 수 있다.
template 렌더링, 중첩 폼(Nested), 조각(Partial) template, AJAX 지원 관리
Action Mailer (액션 메일러)
내장된 이메일 서비스 프레임워크
Active Model (액티브 모델)
Action Pack 서비스와 ORM GEM 과 interface를 정의
다른 ORM 프레임워크를 사용할 수 있도록 함
Active Record (액티브 레코드)
레일즈 어플리케이션에서 모델의 기초
데이터베이스 추상화와 기본 CRUD 기능, 검색 기능과 객체들 간의 관계 정의
Active Resource (액티브 리소스)
비즈니스 객체와 RESTful 웹 서비스간의 연결 관리를 위한 프레임워크
액티브 리소스는 웹 기반의 자원을 로컬 객체의 CRUD 처럼 매핑
Active Support (액티브 서포트)
레일즈가 사용하는 유틸리티 클래스와 표준 루비 확장 모음
Railties (레일티즈)
새로운 rails 어플리케이션을 만들고 다양한 프레임워크와 플러그인을 이어주는 rails의 핵심코드