사용자 삽입 이미지
Ruby on rails에 대한 책만 사놓고 서론만 읽고는 고이 모셔두고 있었는데 하숙에도 가져갔겠다 오늘 아침부터 펴놓고 읽으면서 무작정 따라하기 시작했습니다.

루비는 스크립트 기반의 언어이며 강력한 객체지향을 지원한다고 합니다. 사실 예전에 단 한번 사용해 본 적이 있을 뿐이고, 지금 보아도 거의 모르는 상태죠 ㅠ
레일즈는 루비 기반의 웹 어플리케이션 프레임워크입니다.

관심이 있으신 분들은 대부분 알고 계시겠지만, 레일즈는 '설정보다 관례가 더 편리하다(Convention over Configuration)'이라는 원칙을 고수하고 있다고 하네요. 조금밖에 보진 못했지만 대단히 직관적입니다. 디폴트 값을 적절히 설정해 놓았기 때문에 가능한 결과라고 합니다.
웹 개발 2.0 루비 온 레일스 상세보기
황대산 지음 | 에이콘출판 펴냄
즐겁고 빠른 웹 개발! 차세대 웹 개발 프레임워크 레일스와 함께! 루비 온 레일스 입문서. 이 책은 레일스 1.2를 중심으로 기초부터 활용까지 다양한 예제를 중심으로 설명한다. 레일스 개발에 필요한 각각의 메뉴와 블로그 애플리케이션 만들기 실전 예제 등을 담았다. 또한 책 뒤편에는 루비 주요 클래스 API와 레일스 명령어, 메소드 요약표를 함께 설명한다.
바로 이 책이다.

아직 초반이라서 그런지 몰라도 상세한 설명이 되어 있었는데, 따라하다가 문제를 발견했습니다.
책에서 쓰고 있는 Rails의 버전이 현재 버전이랑 맞지 않는 것이었죠. 2.0버전 이후부터는 SQLite3[자세한 설명]이라는 데이터베이스를 기본으로 사용하게 되어 있어서 MySQL을 사용하려면 다음과 같은 부가적인 작업이 더 필요합니다.

    rails -d mysql myapp
    // 여기서 myapp는 rails 명령어로 생성할 프로젝트명이다.

그리고 scaffold를 사용할 수 없도록 변경되었습니다. 처음엔 그것도 모르고 scaffold가 정의되어 있지 않다고 해서 어찌나 당황했던지 ㅠ 별 이상한 삽질을...;


설치 과정
을 간단하게 설명하자면 다음과 같습니다

1. 루비를 설치한다. (책에 나온대로 1.8.4 버전을 설치했다)
   다운로드 위치
http://rubyinstaller.rubyforge.org/wiki/wiki.pl
   반드시 GEM을 체크해서 설치하자

2.
Rails 설치 (2.0을 설치해도 사용하는 데는 문제가 없지만 책을 따라가보기 위해서 1.2.2 버전을 설치했다)
   명령 프롬프트(cmd)에서 다음과 같이 입력한다

gem install --version=1.2.2 rails --include-dependencies

3. mysql 설치 (5.0 버전)
   http://dev.mysql.com/downloads/mysql/5.0.html

4. 루비용 mysql 설치
    명령 프롬프트에서 다음과 같이 입력한다

gem install mysql
(그리고 1번 선택)


몇가지 단순한 명령어들

1. rails
예) c:\> ralis myapp  //myapp란 폴더를 만든 후 그 안에 레일스 개발에 필요한 여러 서브 디렉토리와 파일을 생성

2. ruby script/server : 웹 서버 프로그램 실행(포트는 일반적으로 3000)
예) ruby script/server -p 80   //포트 80번으로 서버 실행

3. ruby script/generate : 레일스 개발에서 필요한 각종 파일을 자동으로 생성해주는 스크립트
예1) ruby script/generate model Person   //데이터베이스에 접근 가능한 모델 클래스 Person 생성
예2) ruby script/generate controller Phonebook   //사용자가 Phonebook 애플리케이션에 접근했을때 이를 처리하는 파일 생성


루비 온 레일즈가 편한 이유는 아무래도 귀찮은 SQL문을 일일히 쓸 필요가 없다는 것. scaffold를 사용해서 CRUD(create, read, update, delete : 데이터베이스를 생성, 조회, 수정, 삭제하는 일련의 기능)를 바로 구현해 주는 것도 멋졌지만, SQL문을 마치 '자연어'같은 짧은 명령어로 대신할 수 있다는 게 큰 매력입니다.

하지만 익숙해지려면 꽤 오래 걸릴 듯 ㅠ

신고
posted by purecolor


티스토리 툴바