(1) 게시판을 만들기 위한 준비...
CGI프로그래밍을 해본 사람은 누구나 알겠지만 그 어떤 언어로도 웹 서버가 구동되는 플렛폼에 적절한 실행파일의 형태를 만들수만 있다면 그것이 곧 CGI프로그램이 될 수 있다는 것을 알 것이다. 심지어는 BASH 쉘 스크립트도 가능하다. 간단히 다음과 같은 예제를 만들 수 있다
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<html><body>Hello World!</body></html>"
아무튼 이러한 방법으로 펄로도, 파이썬으로도, 그리고 루비로도.. 또 그 외의 어떤 언어로도 CGI프로그램을 만드는 것이 가능하다. 간단히 위 예제를 루비로 고치면 다음과 같다.
#!/usr/bin/ruby
print "Content-type: text/html
"
print "<html><body>Hello World!</body></html>"
전에 Perl로 게시판을 만들면서 Perl에 많이 익숙해졌다. 이후에 C로 게시판을 만들면서 C를 더 잘 알게 되었다. 또 PHP로도 게시판을 만들면서 그 언어에 익숙해졌다. 이제 Ruby로도 간단한 게시판을 만들면서 익숙해질까 하는 생각이 든다.
게시판이라는 예제는 꽤 괜찮은 예제이다. CGI프로그래밍을 하면서 해볼만한 것들을 대부분 해보게 하고, 언어적으로도 다양한 구문을 사용할 기회를 갖게 한다. 데이터를 저장할 때에도 데이터베이스를 연동할수도 있고 직접 파일에 할 수도 있다. 또한 인터페이스를 콘솔에서 깔끔하고 편한한, 혹은 GUI로 하기 위해 그 자체에 힘을 쏟는 것을 줄여준다. 단순한 HTML을 사용하여 깔끔하고 편리한 인터페이스를 만들어 낼 수 있기 때문이다.(이것은 HTML에 익숙한 경우에만 해당하지만 그래도 HTML은 쉽게 익숙해질 수 있는 단순한 마크업이다) 이러한 이유로 Ruby로 첫번째 프로젝트는 게시판 만들기를 선택했다.
그럼 이제 준비를 해야 한다. 웹서버가 CGI를 가능하게 설정이 되어 있다면 바로 가능하다. 하지만 루비의 puts나 print와 같은 함수들로 그 많은 html코드들을 모조리 출력하는것은 그다지 유쾌한 일은 아니다. 따라서 eruby를 설치하는 것이 좋다. eruby는 Enbeded Ruby라는 것으로 PHP, JSP등이 HTML페이지 내에 랭귀지 코드를 삽입하는 것처럼 페이지를 만들듯이 HTML페이지 내에 루비코드를 삽입하여 페이지를 만들게 해준다. 그리고 eruby를 사용할 페이지는 루비를 사용할 때 첫줄에 루비 경로를 써주듯 eruby의 경로를 써주면 된다.
아울러 루비는 보통 rb라는 확장자를 사용하고 eruby는 rhtml이라는 확장자를 사용하므로 서버의 설정에 cgi로 처리할 확장자에 rb와 rhtml을 추가해주었다.
이제 남은것은 루비에서 CGI를 위해 지원되는 CGI 클래스에 대해 알아보는 것이다. 이 클래스는 폼,쿠키, 그리고 환경변수나 세션 등 CGI프로그래밍에 필요한 것들을 다룬다. 이것에 대해, 그리고 루비로 CGI를 하는 것에 대한 기본적인 정보는 Programming Ruby의
Ruby and the Web에 있다.