생각을 개발하자, 박진형

[rails] 레일즈란? 본문

Likelion/rails

[rails] 레일즈란?

imjinbro imjinbro 2017.01.25 01:10

[레일즈 특징]

- 레일즈는 루비 기반으로 만들어진, 루비 기반 환경에서 동작하는 웹어플리케이션 프레임워크다.
- 웹어플리케이션 프레임워크라는 말이 어려울 것이다. 웹어플리케이션을 구조화 하는 것을 쉽게 만들어주는 것이다.
- 레일즈를 배우기위해서 루비 공부는 필수적이다.
- 프레임워크란 어플리케이션의 뼈대를 설계해주는 것이다. 뼈대 설계에 필요한 도구들을 가지고 있으며 개발자가 이를 이용하면 된다.(기본적인 건설장비, 인부를 데리고 있고 쉽게 하루만에 뚝딱 건물 뼈대를 만들어줌)
- 프레임워크란 나보다 이미 경험한 사람들이 어려움에 직면 했을 때 어려움을 극복한 방법을 모아둔 것. 그냥 모아둔 것이 아니라 구조적으로….(경영을 위한 프레임워크 라고 하면 경영에 도움이 되는 정보들 : 현황, 방향성, 수익구조 분석 등)
- 즉 프레임워크란 밑바탕이 되는 것
- 프레임워크는 우아한형제들의 배민프레시 : 맛있는 음식을 만들어 먹기위한 재료, 레시피 모두 제공한다. 만드는 과정에서 본인이 원하는 바대로 조금씩 고쳐나가 맛있는 음식을 만들어 제공한다.
- 레일즈는 트위터나 페이스북 등 대규모 서비스가 아닌 이상 매우 효율적, 신속하게 웹어플리케이션을 만들 수 있는 장점이 있다. 앞으로 어떻게 레일즈를 통해서 웹어플리케이션을 작성하는지 보여주려고 한다.

[레일즈 장점(웹프레임워크 사용 장점)]
- 생산성 향상 : 쉽고 빠르게 만들 수 있음, 뼈대를 제공하기 때문에 뼈대를 세우는 방법만 따라한다면….
- 코드 일관성 
- 코드 재사용성 향상 : 코드가 일관적으로 작성되기 때문에 


[레일즈로 어떻게 쉽고 빠르게 웹어플리케이션을 만드는가?]
- MVC 패턴(트랜드 패턴) 
    (클라이언트 - 서버 - 데이터베이스 각각의 개념 및 어떻게 유기적으로 동작 하는지에 대해 예를 들어 설명 : 도서관)
    MVC 패턴이란?  각각의 역할을 확실하게 부여하고 각 역할에 맞는 폴더를 만든 후 딱 그 역할의 코드만 분류 해서 사용하는 것이다.
    이전의 프로그래밍은 각각의 역할을 구분하지 않고 이런 저런 코드를 개발자의 마음에 따라 편한대로 쓰기 일 쑤 였다.
    각각의 코드들은 서로 동떨어져 있는 것이 아니라 역할만 확실하게 나눠서 부여받아 보관되는 장소만 따로 있는 것이다.
    서로 연결되어 동작을 하게 설계가 되어있다. 이 역시 프레임워크의 몫(개발자가 조금씩 손을 봐야하지만 연결의 밑바탕에는 프레임워크가 역할을 함)이다.


    1) M : 데이터베이스 테이블 접근을 쉽게 할 수 있도록 도와주는 클래스 코드
    2) V : 클라이언트 즉, 고객이 되는 당신이 홈페이지에 들어갔을 때 맞딱들이는 홈페이지 딱 그게 뷰다 뷰가 만들어지는 코드 
    3) C : 뷰와 모델 중간에서 서로의 동작을 연결해주는 역할(서버 역할) 코드


- rails 명령어를 이용한 제작 
1) 내가 직접 구조를 만들거나 필요없는 구조를 삭제하지않아도 된다. rails 명령어를 활용한다면 이와 같은 동작을 알아서 다 해준다. 
2) 오직 코드만 MVC에 맞게 파일에 들어가서 작성하면된다.


[레일즈 어플리케이션 동작에 필요한 것] 
1) 클라이언트 요청받고 응답하기 위해서 HTTP 서버(Apache 혹은 Nginx, 기본적으로는 WEBrick이라는 간단한 서버로 돌아감)가 필요함 
2) 데이터베이스(SQLite, 기본 지원 표준데이터베이스)