Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

음.. 문서 번역하면서 공부

Sinatra에 대하여

Sinatra 루비를 이용해서 빠르게 웹 애플리케이션을 만들기 위해서 개발한 DSL(Domain Specific Language)이다.

Sinatra는 경량 웹 프레임워크로 구분되는데, 이는 웹 애플리케이션을 개발하기 위한 가장 필요한 그리고 필수적인 도구들만을 제공하기 때문이다. Sinatra는 아래의 두 요소로 구성된다.
  • Ruby 프로그래밍 언어
  • URL
이 구성요소외에는 그다지 신경쓸게 없다. 왜냐하면 이것들만으로 개발을 할 수 있기 때문이다. 다른 말로, 좀 복잡한 애플리케이션을 개발하기 원한다면, 여러가지 툴들을 구해서 붙여야 한다. - 아니면 직접 개발하던지 -

Sinatra는 일반적인 모델-뷰-컨트롤러 프레임워크가 아니다. 하지만 URL 요청에 대해서 직접 출력을 반환할 수 있으며, view를 분리할 수도 있다.

설치

Ruby gem을 이용해서 간단히 설치할 수 있다.
# gem install sinatra

Sinatra는 다양한 템플릿 엔진을 지원한다. 간단하게 사용하려면 ruby에 내장된 ERB를 사용해도 되겠는데, 좀 더 효율적인 템플릿 엔진을 찾는다면 HAML을 사용해 보자.
# gem install haml

안정적이고 일관된 ruby 애플리케이션 환경을 만들고 싶다면, bundler를 설치하자. bundler를 설치하려면 git이 설치돼 있어야 한다. Bundler는 애플리케이션을 실행하기 위해서 필요한 gem을 추적해서, 항상 같은 버전의 gem을 운용할 수 있도록 관리해준다.
# gem install bundler 

Bundler를 설치하고 나서 Gemfile에 sinatra와 함께, 관련된 애플리케이션의 목록을 작성하면 된다.
# cat Gemfile 
source :rubygems
gem 'sinatra', :git => 'git://github.com/sinatra/sinatra.git'
gem 'sequel'
이제 gem을 install 하자.
# bundle install
<!> bundle에 대해서 좀 자세히 살펴봐야 겠다.

Hello World

첫 번째 애플리케이션을 만들어 보자.
# cat hello_server.rb
require 'rubygems'
require 'sinatra'

set  :bind, '0.0.0.0'
get '/' do
    "hello world. It's #{Time.now} at the server"
end

hello_server.rb를 실행해보자.
$ ruby hello_server.rb 
== Sinatra/1.4.2 has taken the stage on 4567 for development with backup from Thin
>> Thin web server (v1.5.1 codename Straight Razor)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:4567, CTRL+C to stop
이제 웹브라우저로 http://127.0.0.1:4567 로 접근하는 걸로 hello_server를 테스트 할 수 있다.

원문

  • http://sinatra-book.gittr.com