Menu

문서정보

목차

sinatra

RESTful을 지원하는 웹 애플리케이션 서버 개발을 위해서 웹 프레임워크를 선택해야 했다. Ruby, Python, Perl, Java 모두 훌륭한 웹 프레임워크를 가지고 있으며 아마도 거의 비슷한 모습에 비슷한 쓰임새를 가지고 있을 것이다. 해서 웹 프레임워크를 선택하기 전에 언어를 선택하고 해당 언어에서 제공하는 프레임워크를 찾기로 했다. 언어는 루비로.

페이스북에 REST를 지원하는 루비기반의 가벼운 프레임워크를 추천해 달라고 했더니, sinatra를 추천. 그래서 이것 저것 생각하지 않고 sinatra를 사용하기로 했다. 몇개 더 비교해보는 것도 괜찮겠지만 귀찮기도 하고, 대게 이런 종류의 툴들은 최고가 아닌 최악이 아닌 것을 선택하면 된다는 그간의 경험에 따라서 그냥 선택했다.

선택하고 봤더니, 루비 경량프레임워크 중에서는 가장 널리 사용하는 것이라고 해서, 기분 좋아하는 중이다.

Sinatra는 MVC 모델을따르는 프레임워크는 아니다. 최소한의 노력으로 빠르게 웹 애플리케이션을 개발하는데 촛점을 맞춘 경량 프레임워크다. 애플 , 영국정부, 링크드인, Heroku, Engine Yard, Songbird, 징가(Zynga)등에서 사용하고 있다.

루비의 웹 서버 인터페이스인 Rack을 기반으로 Rack의 여러 기능들도 활용할 수 있다.

Hello World

Hello World
require 'sinatra'
get '/hi' do
    "Hello World!"
end

생각난김에 Python 진영의 경량웹 프레임워크인 Flask의 Hello World버전을 보자.
from flask import Flask
app = Flask(__name__)
app.debug = True

@app.route("/")
def hello():
        return "Hello, World!"
Sinatra와 아주 유사한 구조를 가지고 있다. DSL(Domain Specific Language)을 이용해서 정의한 sinatra쪽이 더 직관적이다.

적당한 사용 용도

복잡한 뷰와 모델을 포함하는 서비스에는 적당하지 않다. 백앤드에서 기능을 제공하는 서비스에 적당하다. 예컨데, REST API를 제공하는 서버 제작에 활용할만 하다. 거추장스러운 기능들에 신경쓰지 않고 빠르게 API를 찍어낼 수 있다. 정말 찍어내는 기분으로 개발할 수 있다.

문서들

하위 문서

정리하지 않은 문서들 포함.
제목 저자 변경일