어느날 부터 루비를 배우고, 루비온레일즈를 공부하기 시작했습니다. 사실 그 계기는 예전부터 루비라는 언어를 그냥 한번 배워보고 싶은 호기심이 강했습니다. 다만, 실제 그것을 써먹을 일이 있을까 고민이 많았습니다. 하지만 호기심이 저를 이겨버렸네요. 오늘부터 본격적으로 루비온레일즈를 공부할 겸, 글을 남겨보도록 하겠습니다.
What is Ruby on Rails?
Ruby on Rails, 줄여서 RoR이라고 하는 이 프레임워크는 프로그래밍 언어 Ruby를 기반으로 한 웹 프레임워크입니다. 덴마크의 David Heinemeier Hansson이 만들었으며 현재는 7점대 버전까지 출시했습니다.
그렇다면 이 RoR의 특징, 그리고 철학은 무엇일까요?
Agility
애자일한 개발을 추구하는 프레임워크입니다. 레일즈는 다음과 같은 개발 철학을 지원합니다.
- 프로세스 및 도구에 대한 개인 및 상호작용
- 포괄적인 문서에 대한 소프트웨어 작업
- 계획에 따른 변경 대응
즉, 즉각적인 변경과 빠른 대응이 가능하게 해준 다는 것이지요.
Less Software, Convention over Configuration
적은 소프트웨어, 설정보다는 규칙을.
더 적은 코드로 더 높은 생산성을 추구하며, 설정보다는 규칙을 따르는 프레임워크입니다. 레일즈에서 제공하는 규칙을 따르기만 하면, 그 규칙에 따라 개발만 하면 개발자는 정말 필요한 것만 개발할 수 있다는 것을 의미합니다.
Don't Repeat Yourself
레일즈는 개발자가 반복되는 코드 작성을 하지 않도록 자동화된 옵션을 제공합니다. 예를들어 보겠습니다.
만약 DB 설정 파라메터가 있으면 그 DB에 연결할 떄, username, password하고 연결하고 싶은 DB의 이름이 필요합니다. 그리고 이러한 DB를 설정하고 테이블을 만들면 스키마를 따로 설정해줘야 하지만, 레일즈는 알아서 DB Schema를 작성해줍니다. 즉, 불필요한 부분을 반복하지 않게 해주는 것이지요.
MVC Pattern
MVC는 Model, View, 그리고 Controller로 이루어진 패턴을 일컫습니다. 여러 디자인 패턴이 있지만, MVC는 레일즈가 채택한 패턴입니다. MVC의 각 부분이 어떤 역할을 하는지는 다음과 같습니다.
Model
간단히 말해 Database를 대표합니다. 레일즈에서 Model은 각각의 DB Table에 대응하는 모델로 이루어져 있습니다.
View
Application이 눈에 보이는 파트입니다. 일반적으로 View는 모델 오브젝트의 표현을 스크린에 보여주며, 또한 모델 데이터를 받아들일 Form과 Input Box를 제공합니다.
Controller
사용자의 입력에 따라 Model에 데이터를 반영, View에 그 데이터를 반영합니다. 레일즈에서 Controller는 밖에서 오는 리퀘스트를 받아들이고 필요한 과정을 처리하며, 그러한 결과를 View에 넘겨줍니다. Controller는 주로 CRUD를 모델에 적용하기도 합니다.
Controller는 일반적으로 Application의 단위 범위를 관리합니다.
그러면 이러한 MVC 패턴은 어떻게 작동할까요? 다음과 같은 흐름을 갖습니다.
- 유저가 인터페이스를 통해 서버에 리퀘스트를 날립니다.
- 서버가 컨트롤러로 리퀘스트를 라우팅합니다. 이때 유저가 보낸 데이터가 보내집니다.
- 이때 컨트롤러는 하나 이상의 모델에 접근합니다. 이때 데이터를 수정하거나 저장하는 등의 활동을 합니다.
- 컨트롤러는 그 후 뷰 Template에다 결과를 리턴하고 View는 그 결과를 보여줍니다.
Summary
이렇듯 간단하게 루비온레일즈(RoR)을 알아봤습니다. 다음 글에서는 레일즈를 세팅하는 법 및 설정하는 법을 알아보겠습니다. 감사합니다!
'Ruby' 카테고리의 다른 글
Ruby on Rails 6 : Ruby 문법 톺아보기 4 - 반복문 (0) | 2022.12.22 |
---|---|
Ruby on Rails 6 : Ruby 문법 톺아보기 3 - 배열 (Array) (0) | 2022.12.22 |
Ruby on Rails 6 : Ruby 문법 톺아보기 2 - if, unless, case, nil, 조건연산자 (0) | 2022.12.22 |
Ruby on Rails 6 : Ruby 문법 톺아보기 1 - irb, Data Type (0) | 2022.12.22 |