'웹프레임워크'에 해당되는 글 1건

  1. [2007/11/20] Ruby기반의 경량 웹프레임워크, Wuby

Ruby기반의 경량 웹프레임워크, Wuby

[Development]


Ruby InsideWuby라는 Ruby기반의 경량 웹프레임워크를 소개하는 글이 올라왔다. 글을 읽고난 뒤, 바로 다운 받아서 소스코드를 읽어보았다. Wuby는 Ruby 기반의 다른 프레임워크 (Camping, Sinatra 등)처럼 경량의 웹프레임워크로서 다음과 같은 특징을 갖고 있다.


특징

  • 주석포함 570 정도되는 경량의 프레임워크.
  • Wuby 파일 (wuby.rb) 자체가 프레임워크인 동시에 httpd 역할을 한다. 따라서 third party Application이나 gem 설치할 필요가 없다.
  • Camping처럼 MVC 구조가 아니라, PHP, ASP 같은 페이지 단위로 구현된다. 내부에서 사용되는 메소드로 PHP스럽다. ^^;;
  • 데이터베이스로는 SDBM 사용하며, wrequest라는 함수로 CRUD 처리한다.

코드는 변수 선언부와 4개의 클래스로 구성되어져 있다.

  • 프레임워크 구동과 관련된 변수 선언부
  • class MimeMap : 확장자별 mimetype 선언한 class
  • class Log : Rotation되는 Log 파일을 처리하는 class
  • class Request : socket으로부터 들어오는 request parsing한다.
  • class Wuby : TCP server 기능을 하는 class. html 파일에 대한 template 처리도 한다.

아래의 코드는 Wuby의 실제 예제 코드이다.
<%= wrender('header.inc') %>

<% @id = @params["id"] %>


<h2><%= wrequest("r", "blog", "title", @id) %></h2>

<h3><%= wrequest("r", "blog", "time", @id) %></h3>

<p><%= wrequest("r", "blog", "body", @id) %> </p>

<p>

      <a href="edit.rhtml?id=<%=@id%>">edit post</a> |

      <a href="delete.rhtml?id=<%=@id%>">delete post</a>

</p>


<a href="index.rhtml">home</a>


<%= wrender('footer.inc') %>


위의 특징에서 언급했듯이, Wuby는 PHP나 ASP처럼 페이지단위로 Request가 처리된다. 위의 예제 코드는 blog.dbm 이라는 sdbm 파일에서 parameter로 넘어온 id에 해당되는 title, time, body 값을 가져와서 보여주는 간단한 블로그의 view 페이지이다. 예제코드만 보면 ruby와 관련된 소스코드인지 알 수 없을 정도로 ruby 스럽지 않다.

2007/11/20 03:36 2007/11/20 03:36