OS X 10.5에는 Ruby(1.8.6), Rails(1.2.6), SQLite3(3.4.0)가 기본으로 설치되어 있습니다. 그렇기 때문에 추가적인 설치나 설정 없이 편리하게 RoR 환경에서 손쉽게 웹사이트를 만들 수 있습니다.
오늘 오전에 Ruby에 관련된 포스팅을 해서 그런지 문득 Xcode에서도 RoR 환경을 지원하는지 궁금하여 자료를 찾아 보았습니다. ADC의 Developing Rails Applications on Mac OS X Leopard 에서 관련된 내용을 찾을 수 있었습니다. 이 문서를 참조하여 간단히 설명해 보겠습니다.
1. Rails 업그레이드
Xcode에서 사용하기 위해서는 Rails 2.*로 업그레이드를 해야 합니다. (주의: 조금 지난 서적들과 예제들은 Rails 1.*로 설명이 되어 있습니다. 업그레이드를 하시면 변경된 부분 때문에 따라하기 어려울 수 있습니다.)
터미널에서 아래와 같이 명령어를 실행하여 최신버젼으로 업그레이드를 합니다.
설치가 완료된 후에 'rails -v'로 버젼을 보면 현재 '2.1.0'으로 업그레이드 되어 있는 것을 확인할 수 있습니다.
2. 프로젝트 생성
터미널에서 아래의 명령어를 실행하여 프로젝트를 생성합니다. 결과가 출력되면서 해당 디렉토리 밑에 WishList란 디렉토리가 생성되어 있습니다.
WishList 디렉토리에서 아래와 같이 명령어를 입력하여 MyWish의 scaffold를 생성합니다.
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을 실행하여 테이블과 레코드를 확인할 수 있습니다.
오늘 오전에 Ruby에 관련된 포스팅을 해서 그런지 문득 Xcode에서도 RoR 환경을 지원하는지 궁금하여 자료를 찾아 보았습니다. ADC의 Developing 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
$ sudo gem install rails
$ sudo gem update rake
$ sudo gem update sqlite3-ruby
설치가 완료된 후에 'rails -v'로 버젼을 보면 현재 '2.1.0'으로 업그레이드 되어 있는 것을 확인할 수 있습니다.
2. 프로젝트 생성
터미널에서 아래의 명령어를 실행하여 프로젝트를 생성합니다. 결과가 출력되면서 해당 디렉토리 밑에 WishList란 디렉토리가 생성되어 있습니다.
$ rails WishList
$ cd 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)가 최상의 웹 개발환경인 것 같은데, 생각 처럼 그렇게 많은 곳에서 사용하지는 않는 것 같습니다. 제가 모르는 어떤 이유가 있는 것 같습니다.
'기타 > 자잘한 Tip' 카테고리의 다른 글
Python에서 sqlite3 사용하기 (1) | 2009.08.26 |
---|---|
텍스트파일 문자셋 변환 스크립트 (6) | 2008.08.25 |
Dashcode로 올블로그 RSS 위젯 만들기 (2) | 2008.05.22 |
자주 사용하는 MySQL 명령어 (4) | 2008.02.28 |
flex2 - xml을 이용한 동적 메뉴 예제 (0) | 2008.02.01 |