[Ruby] BoR 2장 예제

이번에는 루비에서 게터 세터를 편하게 만들 수 있도록 해주는 키워드를 살펴봤고.

@@두개를 사용해서 변수를 선언하면 클래스 스코프 변수가 된다.

상수를 만들 땐 대문자로 시작하는 변수를 만들면 되고.

파셜 클래스 기능이 있어서 기존 클래스에 새로운 메서드를 추가하는 것도 가능하다.

1.9부터는 최상위 클래스가 BasicObject다. 1.8까지는 Object였다.

[Ruby] BoR 1장 예제

  • “” 안에서 사용할 수 있는 #{} 이거 정말 편한것 같다.
  • 지금까지 본 변수 스코프는 세개… $, @, 아무것도 없는 로컬 변수.
  • 클래스와 객체 만드는 방법.
  • 게터 세터 만들기 귀찮다. 아무래도 루비 전용 IDE를 써야겠다.
  • p(객체) == 객체.inspect
  • 괄호()를 없애는게 좋은가.. 매번 써주는게 좋은가.. 모르겠다. 루비 코더는 어떻게 쓰나?

일단 이정도. 2장에선 본격적으로 다형성을 다루려는듯.

아참 지금 내가 보고 있는책은 The Book of Ruby라는 책임. 설명이 쉽고 재밌어보여서.. 라기보다 그냥 여러 책 중에서 대충 골랐다. 읽어보니까 잘 읽히길래 계속 보기로…

Mac OSX에 Ruby 1.9.3 설치하기

왜이렇게 힘들지? 기본으로 1.8 버전이 설치되어 있는데 최신 버전으로 설치하려고 홈페이지를 찾았갔다.

http://www.ruby-lang.org/en/downloads/

여러가지 방법이 있는데 제일 위에 RVM을 이용해보래. 나도 그래볼까하고 rvm을 설치하는데까지는 성공.

https://rvm.beginrescueend.com/rvm/install/

그런데 이 뒤부터 도무지 진행이 안 되네. rvm을 설치하고 나면 OSX에 기본으로 깔려이는 루비말고 RVM으로 설치한 루비를 기본으로 사용할 수 있도록 하는 명령어 설명이 나온다.

rvm requirements

라고 입력하면 자세히 설명해 주는데… 거기서 첫번째 명령어가 rvm install 1.8.7 이었나. 아무튼 그걸 설치하다가 ./configure에서 에러가 났다고 에러 로그를 확인하란다.

확인해보니까 OSX에 gcc가 없어서 ./configure를 못했데.. 이건 보통 XCode를 설치하면 깔리는걸로 알고 있는데.. XCode가 깔려있는데도 이런 에러가 나니까 황당하네… 그래서 XCode를 실행해봤는데 설치가 뭔가 잘못됐는지 실행하다가 자꾸 죽어.. 그래서 다시 설치했는데 꽤 오래 걸리데… 1.3기가니깐;;

아무튼 다시 설치하고 나서도 설치를 진행하는데 안 돼~ 도무지 안 돼~… 그래서 작전을 바꿈. RVM 꺼져…

Homebrew를 쓰기로 결정.

https://github.com/mxcl/homebrew/wiki/installation

brew를 설치하는건 간단히 한줄로 끝.

/usr/bin/ruby -e “$(curl -fsSL https://raw.github.com/gist/323731)”

그런 다음 루비 설치도 한 줄로 끝

brew install ruby

버전을 명시하는 부분이 없어서 좀 불안했는데 다행히 최신 버전으로 설치해주네.. 오호. 귿.

설치된 루비를 Path에 추가해주고 설치 끝.

오늘은 설치까지만… 원래 30분만 할려고 그랬는데 고작 설치하는데만 이게 몇시간이야;; 아이고.. @_@;;

2. 레일스는 어떻게 동작하는가?

참조 : 레일스를 위한 루비

-애플리케이션 개발 과정
1. 모델 구현
2. 컨트롤러 구현
3. 뷰 구현

-레일즈의 MVC
모델: ActiveRecord – actionpack에 속함
뷰: ActionVIew – actionpack에 속함
컨트롤러: ActionController – activerecord에 속함

gems 폴더 아래에 위치 합니다.
사용자 삽입 이미지
– Rails 샘플 애플리케이션 개발하기
1. 모델 구현
    – 테이블의 이름은 복수형
    – id라는 필드가 있어야 함
    – y가 x에 속하면 y테이블에 x_id가 있어야 함
    – SQL로 테이블을 만들어도 되고
    – 레일즈의 마이그레이션을 사용해도 된다.
    – 모델사이의 연관 설정하기
       – 속한다. belong_to
       – 가지고 있다. has_many
2. 컨트롤러 구현
    – 액션 구현
    – 전체 컨트롤러를 나타내는 ApplicationController
3. 뷰 구현
    – layout “레이아웃 파일 이름” :: 레이아웃 설정
    – 레이아웃의 컨텐츠가 들어갈 위치에 <%= @content_for_layout %> 삽입
    – <% @composer.each do |composer| %> :: JSTL의 <c:forEach /> 와 비슷한 것
4. 접속하기
    – 첫 페이지 변경하기 :: conflg/routes.rb 파일에서 설정
    – 예) map.connect ”, :controller => “main”, :action => “welcome”

– 래일즈 애플리케이션 생명주기
1. 클라이언트가 서버로 요청을 보냄
2. 디스패처가 요청 받아서 담당할 컨트롤러 찾음
3. 요청을 처리하고 해당 액션과 연결되어 있는 뷰로 결과를 랜더링
4. ERb가 루비 코드를 변환해서 HTML 완성후 응답을 돌려줌
5. 클라이언트에서 HTML 확인