2019년 7월 26일 금요일

RubyOnRails 배우기. #1

RubyOnRails 배우기.

Python을 배웠던 내가 Ruby을 배워야 겠다고 생각한 이유는, 반 프리랜서로 지내면서 
외국에서 일을 하고 싶다는 생각에 외주를 찾아보거나 외국의 회사를 찾아보고 있었는데,생각보다 Ruby개발자를 찾는 needs가 너무 많이 있었고, Python에 대한 Needs는 생각보다 적어서 Rails를 할수 있을 경우에 얻을수 있는 JOB이나 TASK들이 생각보다 많았습니다. 그래서 이참에 Ruby를 공부 하면서 Django와 비교해서 어떤게 좋은지 아니면 어떤게 불편한지 (지극히 개인적인 생각입니다)에 대한 이야기를 할까 합니다. RubyOnRails의 스터디의 경우는 기존에 제가 했던 Python Django와 비교해보면서 공부할 예정이고, 짧게는 1주~2주정도로 Tutorial을 익힌 다음에 Django로 되어 있는 Side project를 Ruby + React기반의 프로젝트로 옮기는 작업을 진행하면서, RubyOnRails에 대한 심화공부를 진행 할것 같습니다. 모든 코드는 Github에 올라와있습니다.


1. RubyOnRails Tutorial 따라 하기.
https://guides.rubyonrails.org/getting_started.html

처음에는 RubyOnRails 에 있는 Tutorial 그대로 따라 하는 방법으로 진행하겠습니다. 아마 web site에 있는걸 따라 하는 수준이라서 따로 공유 드릴것이 없을것 같은데, 하다가 문제가 발생하거나 이슈가 발생하면 그때 맞춰서 따로 적도록 하겠습니다.

여기서 부터 gem install rails를 실행하고 rails new blog 라는 명령어를 입력시 `sudo`로 해달라는 이슈가 나오는데 그 이유는 GEM_HOME 이 system 내에 설정 되어있어서 그렇습니다.  
```
export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$PATH
```
일단 이렇게 해도 sudo가 지워지지 않아서, 일단은 `sudo gem install rails`로 해서 테스트 진행하고 추후에 찾아보도록 하겠습니다.
저 방식으로 했을 경우에도 적용 되지 않아서 찾아보니 TOKAIDO 라는 프로그램을 통해 rails를 설치하고 프로젝트 생성후에 bundle 까지 하게 되면 그담부턴 터미널에서 되네요. 
당연히 bin/rails 를 통해 명령어를 실행하니 맞는데, 왜 안되는지 잘 모르겠네요. 이것은 일단 tutorial 이 마무리 된 다음에 확인 하는걸로 체크!!

rails 페이지에 있는 tutorial을 마무리한 느낌은 내가 루비를 잘 몰라서 그런가 python이나 node를 많이 사용해서 그런지 몰라도, 다른 언어에서는 외부 리소스 사용시 명시적으로 path를 적어서 사용했는데, 레일즈의 경우에는 내가 사용하는 리소스는 명시적 주입 필요 없이 사용할수 있다는 점에서 편하면서도 이해하기 어려웠습니다.

그리고 tutorial만 가지고서는 API server를 만들기에 부족한 느낌이 있어서, Tutorial 밑에 있는 다른 챕터들도 공부해보기로 하겠습니다.

챕터에 대한 자세한 내용은 https://guides.rubyonrails.org/index.html 여기에서 확인할수 있습니다.


Tutorial을 끝나고 느낀점을 Django와 비교해서 적어도보도록 하겠습니다.

장점:

  • 빠른 개발
  • 루비를 모르는 사람도 쉽게 사이트를 개발할수 있다.
  • 많은 기능
  • Framework
  • generate 명령어를 통해 잘 정돈된 구조.
  • 자동으로 env 분활 e.g) test, production, development
  • exec 파일로 만들수 있음.
단점

  • 장고와 비교해서 암시적으로 연결되어 있는 부분이 많다. e.g) article_path, edit_article_path, show 함수는 view/articles/show.html.rtb 파일과 연결 됨. 
  • import 하는 방식이 아니라서, 흐름을 찾아가기 어렵습니다. 저의 기준입니다. 아마 이건 IDE를 사용하면 힌트로 나오지 않을까 싶습니다.
  • 이건 sequeilize에서도 공통적으로 불편하다고 느낀 것 이지만, 장고의 기준은 auto-migration file을 만들어주는데, rails의 경우는 migration file만 생성하고, 안에 내용은 넣어줘야함.
이렇게 느낀점을 장점/단점으로 적어봤는데, 아직 TUTORIAL 만 가지고는 rails에 대해서 판단하는건 아직 너무 이른것 같습니다. 그래도 단점으로 나온 부분은 단점이 아니라 제가 익숙하지 않아 발생하는 이질감 같은것이라고 생각하고 좀 더 rails에 대한 공부를 해보도록 하겠습니다. 사실 아직 Ruby도 잘 모르는 상태이기 때문에 말하기가 좀 쑥스럽네요;;
다음 주제는 Rails에 들어있는 주요 기능들의 대한 기본 적인 개념 정리와 API 서버를 위해 준비해야하는 내용들을 공부하도록 하겠습니다.

Rails로 외주 하는 그날까지!!




댓글 없음:

댓글 쓰기