Ruby on Rails란

kangseonghee·2021년 4월 16일
0

Ruby on Rails

목록 보기
1/6
post-thumbnail

Ruby on Rails를 시작하면서

Ruby 언어를 사용하는 개발회사에서 인턴으로 개발을 하게 되면서 Ruby on Rails에 대해 많은 검색을 하게 되었다. Ruby on Rails는 스타트업에서 지난 시즌에 많이 사용했던 언어라고 하지만, 정리된 문서는 정말 없었다. 나중의 나를 위해서라도 정리를 해두기로 하였다.

Rails란?

 

Ruby on rails는 Ruby 언어로 작성된 오픈소스 웹 프레임워크

  • DRY (Don't Repeat Yourself)

    같은 코드가 존재한다면 그것은 나쁜 것을 의미하며, 같은 코드의 반복을 줄인다

  • Convention Over Configuration (설명 보다 관습)

    원하는 기능들에 대해서 일정한 가정을 바탕으로 해결책을 제공하여 작은 단위의 끝없는 설정 파일을 줄여줌

  • REST(REpresentational State Transfer)

    웹 어플리케이션의 최고의 패턴

    리소스와 표준 HTTP 요청(HTTP verb)에 적합한 웹 어플리케이션 개발은 가장 빠른 방법

 

MVC 아키텍처 구조

 
Rails는 MVC 아키텍처 구조이다.

  • Model - 모델은 비지니스 로직을 다루고 데이터 및 데이터베이스에 대한 작업(데이터베이스 테이블과 상호작용하는 규칙을 관리)
  • View - 뷰는 사용자의 요청에 따른 결과물이 표현되는 부분으로서 화면에 표출되는 방식에 대한 로직과 데이터를 다룸(주로 데이터 표현에 관련된 루비 코드가 삽입되어 있는 HTML 파일), 다른 기기에게 데이터를 제공하는 일 담당
  • Controller - 모델과 뷰를 연결시키고 사용자의 입력을 받아 모델을 조작하는 등 데이터 흐름을 제어하는 역할 (웹브라우저의 요청을 받아서, 모델을 통해서 데이터를 조회하여, 출력을 위해 뷰에게 데이터를 넘겨줌)

 

REST(Representational State Transfer)

 

레일즈의 존재하는 REST의 두가지 원리

  1. 자원 표현을 위해 자원 식별자 사용 (가령 URL)
  2. 시스템 컴포넌트 간에 자원 상태 교환

EX ) Rails 어플리케이션에서 요청

DELETE /photos/17

→ 원하는 액션은 삭제이고, photo 리소스 ID 17번을 참조하라는 것이다.

 

Rails의 개발 component

 

  1. Action Pack (액션 팩)

    액션 컨트롤러와 액션 뷰를 포함하는 Gem

    MVC에서 VC 부분

    • Action Controller (액션 컨트롤러) : 레일즈 어플리케이션에서 컨트롤러를 담당

      액션 컨트롤러 프레임워크는 레일즈 어플리케이션으로 들어오는 요청을 처리하고, 파라미터를 추출하고, 의도된 액션을 보낸다.

      액션 컨트롤러는 session 관리, template 렌더링, redirect 관리 서비스를 포함

    • Action Dispatch (액션 디스패치)

      웹의 요청을 받아들여서 원하는 곳으로 연결

    • Action View (액션 뷰): 레일즈 어플리케이션의 뷰를 관리

      HTML, XML을 만들 수 있다.

      template 렌더링, 중첩 폼(Nested), 조각(Partial) template, AJAX 지원 관리

  2. Action Mailer (액션 메일러)

    내장된 이메일 서비스 프레임워크

  3. Active Model (액티브 모델)

    Action Pack 서비스와 ORM GEM 과 interface를 정의

    다른 ORM 프레임워크를 사용할 수 있도록 함

  4. Active Record (액티브 레코드)

    레일즈 어플리케이션에서 모델의 기초

    데이터베이스 추상화와 기본 CRUD 기능, 검색 기능과 객체들 간의 관계 정의

  5. Active Resource (액티브 리소스)

    비즈니스 객체와 RESTful 웹 서비스간의 연결 관리를 위한 프레임워크

    액티브 리소스는 웹 기반의 자원을 로컬 객체의 CRUD 처럼 매핑

  6. Active Support (액티브 서포트)

    레일즈가 사용하는 유틸리티 클래스와 표준 루비 확장 모음

  7. Railties (레일티즈)

    새로운 rails 어플리케이션을 만들고 다양한 프레임워크와 플러그인을 이어주는 rails의 핵심코드

0개의 댓글