사용자 삽입 이미지
OS X 10.5에는 Ruby(1.8.6), Rails(1.2.6), SQLite3(3.4.0)가 기본으로 설치되어 있습니다. 그렇기 때문에 추가적인 설치나 설정 없이 편리하게 RoR 환경에서 손쉽게 웹사이트를 만들 수 있습니다.

오늘 오전에 Ruby에 관련된 포스팅을 해서 그런지 문득 Xcode에서도 RoR 환경을 지원하는지 궁금하여 자료를 찾아 보았습니다. ADCDeveloping Rails Applications on Mac OS X Leopard 에서 관련된 내용을 찾을 수 있었습니다. 이 문서를 참조하여 간단히 설명해 보겠습니다.


1. Rails 업그레이드
Xcode에서 사용하기 위해서는 Rails 2.*로 업그레이드를 해야 합니다. (주의: 조금 지난 서적들과 예제들은 Rails 1.*로 설명이 되어 있습니다. 업그레이드를 하시면 변경된 부분 때문에 따라하기 어려울 수 있습니다.)

터미널에서 아래와 같이 명령어를 실행하여 최신버젼으로 업그레이드를 합니다.
$ sudo gem update --system
$ sudo gem install rails
$ sudo gem update rake
$ sudo gem update sqlite3-ruby

설치가 완료된 후에 'rails -v'로 버젼을 보면 현재 '2.1.0'으로 업그레이드 되어 있는 것을 확인할 수 있습니다.


2. 프로젝트 생성
터미널에서 아래의 명령어를 실행하여 프로젝트를 생성합니다. 결과가 출력되면서 해당 디렉토리 밑에 WishList란 디렉토리가 생성되어 있습니다.

$ rails WishList
$ cd WishList

WishList 디렉토리에서 아래와 같이 명령어를 입력하여 MyWish의 scaffold를 생성합니다.

$ script/generate scaffold MyWish name:string price:integer url:string memo:text


3. Xcode Organizer
1) WishList 등록
Xcode를 실행하고 메뉴에서 Window/Organizer를 클릭합니다.   
사용자 삽입 이미지

위와 같이 Organizer가 실행되되면 finder에서 위에서 만든 WishList 디렉토리를 좌측의 PROJECTS & SOURCES가 있는 영역으로 드래그하여 가져다 놓습니다. 아래와 같이 PROEJCTS & SOURCES 아래에 WishList가 등록된 것을 확인합니다.
사용자 삽입 이미지
목록에서 소스파일을 선택하면 좌측 편집창에서 수정할 수 있습니다.
사용자 삽입 이미지

2) migration
추가된 WishList를 클릭한 후에 툴바의 Action을 클릭한 채로 있으면 아래와 같이 실행 메뉴가 나옵니다. db:migrate를 선택합니다.

사용자 삽입 이미지

아래와 같이 성공적으로 실행되었다는 메시지창이 출력됩니다.
사용자 삽입 이미지

3) 웹서버 실행
사용자 삽입 이미지
툴바에서 Run을 실행하면 초기 설정창이 오픈됩니다. 좌측의 하단에 [+] 버튼을 클릭하고 좌측과 같이 'New Shell Script'를 선택합니다.





아래와 같이 제목을 'run server'로 변경하고 Directory를 'Top Level Organizer Item'으로 선택합니다. 그리고 Command에 'script/server'를 입력한 후 OK 버튼을 클릭하여 저장합니다.

사용자 삽입 이미지

실행되면 아래와 같이 서버가 3000 포트에서 실행되고 있다는 것을 확인할 수 있습니다.
WEBrick으로 실행될줄 알았는데 친절하게 Mongrel도 이미 설치되어 있는 것 같습니다.
사용자 삽입 이미지

4. 테스트

사파리나 파이어폭스의 주소창에서 'http://localhost:3000/'을 입력하면 아래와 같이 Ruby on Rails의 기본페이지를 확인할 수 있습니다.
사용자 삽입 이미지

이제 다시 주소창에서 http://localhost:3000/my_wishes 를 입력합니다. 목록 하단의 'New my wish'를 클릭하여 아래와 같은 입력폼이 나오면 각 필드를 입력 후에 하단의 'Create' 버튼을 클릭합니다.

사용자 삽입 이미지

목록으로 돌아 오면 아래와 같이 입력한 내용이 등록되어 있음을 확인할 수 있습니다.

사용자 삽입 이미지

터미널에서도 SQLite을 실행하여 테이블과 레코드를 확인할 수 있습니다.

사용자 삽입 이미지

혹시나 RoR을 Xcode를 이용할 수 있는지 알아 보았는데, 제가 아직 방법을 잘 몰라서 그런지 오히려 그냥 터미널에서 개발하는 것 보다 더 불편한 것 같습니다.

짧은 생각으로는 Ruby on Rails + (Prototype + script.aculo.us)가 최상의 웹 개발환경인 것 같은데, 생각 처럼 그렇게 많은 곳에서 사용하지는 않는 것 같습니다. 제가 모르는 어떤 이유가 있는 것 같습니다.
모든 댓글을 환영합니다. (욕설과 광고는 삭제합니다.)
  1. 함지 2008.08.20 23:59  댓글주소  수정/삭제  댓글쓰기

    저도 요새 RoR에 관심을 갖고 좀 뒤져보았는데, 이게 엔터프라이즈 환경으로 가기는 아마 힘들 모양입니다. 개발하고는 거리가 멀지만, 그래도 게시판/자료실 정도를 PHP/ASP코드 짜집기로 좀 흉내를 내 보다가 페이지네이션 구현에서 딱 막히고 손든 경험이 있는 저로서는 이 페이지네이션조차 플러그인으로 구현해 주는 프레임워크라 꼼꼼타~ 했는데, 이게 학생들 말고는 진짜 관심들이 없더구만요... 쥔장님 진도 나가시는대로 좀 자주 글올려주시면 크게 도움이 되겠슴니다.

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.08.21 09:30 신고  댓글주소  수정/삭제

      RoR은 흔히 Web 2.0이라 불리우는 신생 벤쳐기업을 중심으로 사용자가 늘고 있는 것 같습니다. 장점이 알려지면 사용자가 조금씩 늘 것 같습니다. 진도 나가는데로 자주 올리겠습니다. :)

  2. Favicon of http://ikspres.com BlogIcon ikspres 2008.08.21 16:18  댓글주소  수정/삭제  댓글쓰기

    Cocoa 개발에 관심이 많은 Rails 개발자입니다.^^ 앞으로 자주 들리겠습니다.
    RoR 국내 개발 사례는 http://ror.ikspres.com 에서 참고하실 수 있고, 해외 사례 중 유명한 사례로는 linkedin, twitter 등이 있습니다. 국내보다는 해외에서 많이 사용하고 있는 것은 사실입니다.

  3. 함지 2008.09.05 16:05  댓글주소  수정/삭제  댓글쓰기

    혹시 NetBeans나 Aptana나 같은 IDE는 안쓰시는지요 ? RoR데모에 주로 나오는 TextMate가 제일 멋지기는한데, 이거야 메쏘드, 프레임웍이 머리 속에 다 들어가 있는 냥반들 얘기인거 같고 개발자들이 IDE를 선호하는 이유가 따로 있는거 같다는 생각이 듭니다만. Emacs나 TextMate같은 에디터 딸랑 하나 갖고서 척척 돌아가게 만드는게 옆에서 보기는 젤 폼이 나기는 해요 !!

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.09.05 18:25 신고  댓글주소  수정/삭제

      넵 말씀하신 것은 사용하지 않.. 아니 못합니다. ^^;; Emacs는 예전에 x-window에선 사용했었는데, 어설픈 사용자라 텍스트 모드에선 도저히 사용을 못하겠더군요. 없어 보이지만 그냥 vi 씁니다. :)

  4. naiyumie 2008.09.14 15:46  댓글주소  수정/삭제  댓글쓰기

    ...2)mirate 에서 이렇게뜹니다..OTL
    rake aborted!
    could not open database: unable to open database file

    (See full trace by running task with --trace)
    (in /bin/WhishList)

    • Favicon of https://www.cocoadev.co.kr BlogIcon cocoadev 2008.09.16 18:28 신고  댓글주소  수정/삭제

      오류 메시지를 보니 DB 설정이 잘 못 된 것 같습니다. 해당 폴더의 config/database.yml에서 디비가 sqlite인지와 다른 설정들도 확인해 보셔야 할 것 같습니다. 프로젝트가 위치( /bin/)도 좀 이상하네요.

      별 도움이 못되어 죄송합니다. ㅠㅠ