Rails 2.0.2에서 기본 데이터베이스로 선택된 SQLite3에 대해서 살펴보고, 간단한 블로그 어플리케이션을 만들어보자. 이 문서는 Windows 머신을 기본으로 작성되었다.
SQLite 환경 구축하기
Windows에서 SQLite를 사용하기 위해서는 다음의 단계에 따라서 설치한다.
- SQLite 다운로드
SQLite 다운로드 페이지에서 sqlite-3_5_4.zip 파일과 sqlitedll-3_5_4.zip 파일을 다운로드 받는다.
- 압축풀기 및 설치
각각의 파일의 압축을 풀면 다음 파일들이 확인할 수 있다.
- sqlite-3_x.zip : sqlite3.exe
- sqlitedll-3_x.zip : sqlite3.def, sqlite3.dll
SQLite3를 위한 폴더를 만들고 (ex. C:\Program Files\SQLite3) 위 파일들을 복사한다. SQLite3 폴더는 환경변수 PATH에 등록되어 있어야 한다. (이도저도 귀찮으면 그냥 C:\Windows\System32에 복사해도된다.)
- Gem 설치
sqlite3-ruby gem을 설치한다.

sqlite3-ruby gem 설치
블로그 어플리케이션 만들기
SQLite3를 사용해서 간단한 블로그 어플리케이션을 만들어보자.
- 프로젝트 생성
Rails 2.0.2 이전에는 "rails myapp" 라는 명령어를 실행시키면, config/database.yml이 MySQL로 설정되었다. 그러나 SQLite3가 기본 데이터베이스로 변경되면서 새로운 프로젝트를 생성하면 config/database.yml이 다음과 같이 설정된다.

config/database.yml
MySQL을 기본 데이터베이스로 했을 경우에는 Rails 프로젝트의 생성과는 별도로 데이터베이스 생성(CREATE DATABASE) 및 권한 설정(GRANT)을 해주어야만 했다. 하지만 SQLite3의 DB 파일은 자동으로 생성되기 때문에, 데이터베이스 생성이나 권한 설정 작업이 필요없이 바로 개발을 시작할수 있다.
cf. 만약 예전처럼 MySQL을 기본 데이터베이스로 사용하고 싶다면, "rails -d mysql myapp"와 같이 프로젝트 생성시, 데이터베이스를 명시해주어야 한다.
- Scaffold 생성
위에서 언급하였듯이, SQLite3의 데이터베이스 파일은 자동으로 생성되기 때문에, 바로 migration을 생성해서 적용할 수 있다. 위의 config/database.yml과 같이 설정되어있다면 db/development.sqlite3라는 파일이 생성되게된다. 여기서는 Post에 대한 scaffold resource를 생성한 후, migration을 적용해보자.

scaffold 생성
- 생성된 테이블 확인
sqlite3라는 커맨드라인 유틸리티를 이용해서 생성된 테이블을 확인하고, SQL문을 실행할 수 있다. (현재는 테이블에 레코드가 들어있지 않는 상태이다.)

sqlite3 커맨트라인 유틸리티
- 어플리케이션 확인
서버를 시작하고, 방금 작성한 어플리케이션을 확인하다.
- 글쓰기 페이지 (http://localhost:3000/posts/new)

- 글보기 페이지 (http://localhost:3000/posts/1)

- 글목록 페이지 (http://localhost:3000/posts)

결론
Rails 소개에서 지겹도록(?) 나오는 블로그 어플리케이션 만들기를 통해서 SQLite3의 사용법을 살펴보았다. 15분 만에 블로그 만들기는 Rails를 처음 접하는 사람에게 Rails의 매력을 보여주기 충분한 예제이다. 이것이 Scaffold, Resource의 개념이 추가되면서 점점 시간이 단축되더니, 이번에 Rails 2.0.2에서 SQLite3가 기본 데이터베이스 엔진으로 선택되면서 1분만에 블로그 만들기가 가능하게 되었다.
Ruby on Rails를 공부하거나 내부적으로 사용되는 간단한 어플리케이션을 개발하는 용도라면 SQLite3는 좋은 대안이 될 수 있을 것이다.
참조
- http://blog.rubyonrails.org/2007/12/17/rails-2-0-2-some-new-defaults-and-a-few-fixes
- http://jroller.com/obie/entry/installing_sqlite_3_on_windows



::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::