| | at : |


Archive

[RUBY] ROR(Ruby on Rails)를 이용한 Web Develope part1 - About/Install Rails 하훌 rwxr-xr-x 0 7/16/2016



[RUBY] ROR(Ruby on Rails)를 이용한 Web Develope part1 - About/Install Rails

Permission rw-r--r--
Author 하훌
Date and Time 7/16/2016
Label
License 크리에이티브 커먼즈 라이선스



제 주력 코딩 언어는 Ruby 입니다. (솔직히 언어개념 없어요.. 그냥 쓸 수 있으면 되는거죠 뭐.. 난 개발자 아니니깐)
그래서 예전에 관심있어하고 웹 개발 시 종종 사용하던 ROR(Ruby on Rails)에 대한 이야기를 풀어나갈까 합니다.

크게 몇가지의 파트를 나누어 포스팅을 분할하였고 튜토리얼 식으로 해볼까합니다.
그럼 시작합니다.


Ruby on Rails?

Rails는 Ruby 기반의 웹 프레임워크입니다. 덴마크의 David Heinemeier Hansson이 오픈소스로 만들었고 Ruby를 유명하게 만들어준 굉장한 프레임워크이기도 합니다.

MVC 모델 패턴을 사용하고 있고 DB 작업 시 편리한 장점이 있습니다.
개인적으로는 Ruby로 작성된게 가장 큰 매력이네요.

MVC 아키텍처에 대해 간단하게 설명하고 가면 Model(모델), View(뷰), Controller(컨트롤러)의 약자입니다. Rails 자체가 모델과 뷰, 컨트롤러에 의해 동작하기 때문입니다. 요 내용은 rubykr.github.io에 잘 나와있어 인용합니다.


모델(Models)

모델은 어플리케이션의 정보(data)와 데이터를 다루는 규칙들을 의미합니다. 레일즈의 경우에, 모델은 주로 데이터베이스 데이블과 상호 작용하는 규칙들을 관리합니다. 대부분의 경우에 데이터베이스의 하나의 테이블은 어플리케이션의 하나의 모델과 대응합니다. 대부분의 비지니스 로직은 모델에 집중됩니다.

뷰(Views)

뷰는 어플리케이션의 유저 인터페이스를 의미합니다. 레일즈에서 뷰는 주로 데이터 표현에 관련 된 루비 코드가 삽입되어 있는 HTML 파일입니다. 뷰는 데이터를 웹 브라우저나 다른 기기에게 데이터를 제공하는 일을 담당합니다.

컨트롤러(Controllers)

컨트롤러는 모델과 뷰를 "연결"하는 역할을 합니다. 레일즈에서 컨트롤러는 웹브라우저의 요청 받아서, 모델을 통해서 데이터를 조회하여, 출력을 위해 뷰에게 데이터를 넘겨줍니다.

보다보니 좋은 이미지가 있어 첨부합니다.

https://basicsofwebdevelopment.files.wordpress.com/2015/01/mvc_role_diagram.png


이런 MVC는 사용자로 하여금 코드 관리의 편의성을 제공할 수 있고 로직과 UI를 분리할 수 있어 편리합니다.

Install Rails

일단 Ruby는 당연히 깔려있어야 합니다. 먼저 ruby 부터 설치해줍니다.

debian(ubuntu/mint)
#> apt-get install ruby

redhat(centos/fedora)
#> yum install ruby

ruby는 gem 이라는 루비 패키지 매니저를 사용합니다. python pip와 비슷한거죠.
gem을 통해서 rails를 설치해줍니다. (예전엔 ruby 설치하면 gem이 같이 설치 안되었던거 같은데, 아닌가보네요.. )

#> gem install rails

자 이제 rails 설치는 끝났습니다.

#> rails -v
Rails 4.2.7

Making simple web application

그냥 끝내기는 약간 아쉬우니 맛보기로 간단한 rails 어플리케이션 만들기를 해보겠습니다.

#> rails new test
      create
      create  README.rdoc
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
...

rails 명령을 이용해 web application 을 만들면 여러 파일/디렉토리가 생성됩니다.

#> cd test/
#> ll
합계 72
drwxr-xr-x 12 root root 4096  7월 15 22:53 .
drwxr-xr-x  3 hahwul hahwul 4096  7월 15 22:53 ..
-rw-r--r--  1 root root  474  7월 15 22:53 .gitignore
-rw-r--r--  1 root root 1502  7월 15 22:53 Gemfile
-rw-r--r--  1 root root 4030  7월 15 22:53 Gemfile.lock
-rw-r--r--  1 root root  478  7월 15 22:53 README.rdoc
-rw-r--r--  1 root root  249  7월 15 22:53 Rakefile
drwxr-xr-x  8 root root 4096  7월 15 22:53 app
drwxr-xr-x  2 root root 4096  7월 15 22:53 bin
drwxr-xr-x  5 root root 4096  7월 15 22:53 config
-rw-r--r--  1 root root  153  7월 15 22:53 config.ru
drwxr-xr-x  2 root root 4096  7월 15 22:53 db
drwxr-xr-x  4 root root 4096  7월 15 22:53 lib
drwxr-xr-x  2 root root 4096  7월 15 22:53 log
drwxr-xr-x  2 root root 4096  7월 15 22:53 public
drwxr-xr-x  8 root root 4096  7월 15 22:53 test
drwxr-xr-x  3 root root 4096  7월 15 22:53 tmp
drwxr-xr-x  3 root root 4096  7월 15 22:53 vendor

이제 번들러를 통해 필요한 gem(library)를 설치합니다.

#> bundle install 

자 여기까지 구동을 위한 구성은 끝났습니다.
DB 설정도할 수 있고 여러가지 건드릴 수 있지만 소개와 설치에 관한 글이기 때문에 간단한 동작까지만 보도록 하겠습니다.

Rails 는 기본적으로 WEBrick이란 gem을 통해서 서버로 구동됩니다.

#> rails server
=> Booting WEBrick
=> Rails 4.1.8 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
[2016-07-15 23:01:02] INFO  WEBrick 1.3.1
[2016-07-15 23:01:02] INFO  ruby 2.1.5 (2014-11-13) [arm-linux-gnueabihf]
[2016-07-15 23:01:02] INFO  WEBrick::HTTPServer#start: pid=3878 port=3000


위 명령 시 WEBrick을 이요해서 rails 서버가 동작하게 되며 Default port(3000)으로 붙어보시면 서버가 동작하고 있는 것을 확인할 수 있습니다.

open browser > 127.0.0.1:3000


WEBrick에 대해서 궁금하시면 이전에 작성한 포스팅 넣어드릴테니 참고해주세용.

[RUBY] WEBrick을 이용한 간단 Ruby 웹 서버 만들기(Writing Web Server Code whit Ruby WEBrick)

[RUBY] WEBrick::mount_proc 메소드를 이용한 WEBrick 서버 내 Ruby 처리부분 만들기


아주 간단하게 rails에 대해 설치하고 만드는 것까지 다뤄봤습니다. (사실 튜토리얼..)
이후에는 rails 를 이용해서 웹을 개발하는 내용에 대해 더 자세히 해볼 예정입니다.

Reference

https://en.wikipedia.org/wiki/Ruby_on_Rails
http://rubykr.github.io/rails_guides/getting_started.html

Share







HAHWUL
HACKING | PENETRATION-TEST | CODING
HACKERONE : GIT : 0DAY-TODAY : EXPLOIT-DB : PACKETSTORM
GOOGLE+ | HAHWUL@GMAIL.COM | TWITTER
WWW.HAHWUL.COM






Recent Post

0 개의 댓글:

댓글 쓰기