이 글은 로컬 시스템에 rbenv이 이미 설치되어 있는 것을 전제로 작성하였다.


루비 버전별로 실행환경을 관리하는 툴로는 rvm, rbenv, chruby 등을 손꼽을 수 있다.
rvm이 가장 오래된 관리자이지만, 레일스 분야에서는 rbenv을 더 선호하는 경향이 있다. 실제로 rvm보다 더 가볍다. 어떤 사람은 이 둘의 관계를 마치 sinatra와 rails에 비유하여 설명하기도 한다.

지금까지 공개된 루비 버전 목록을 살펴 보는 것도 의미 있는 일일 것이다.

이와 같이 루비는 지속적으로 버전업이 되고 있으며, 현재 공개된 가장 최신 버전은 2.2.3, 곧 이어 2.3 버전이 출시를 앞두고 있다.

http://www.troubleshooters.com/codecorn/ruby/symbols.htm

지금까지 루비, 특히 레일즈에서 사용되는 심볼을 어렴풋하게나마 이해하고 있었는데, 위의 링크의 내용을 읽어 보고 루비의 심볼에 대한 확실한 개념을 알게 되었다.

1. 심볼은 integer나 string으로 변환될 수 있다. 그러나 심볼이란 string으로 대신해서 사용할 수 있는 상수(constant)와 같은 것이지만 같은 String을 반복해서 사용할 때처럼 메모리를 소모하지 않아 메모리 절약에 도움이 될 수 있다. 동일한 심볼을 수천번 반복에서 코딩에 사용해도 심볼값은 하나의 주소값만을 가진다.

2. 심볼은 런타임때 값을 변경할 수 없다.(immutable)

3. 심볼은 .to_i 나 .to_s 메소드를 이용해서 의미없는 공유의 정수값이나 심볼이름과 같은 문자열을 간접적으로 얻을 수 있지만, 심볼 자체로는 String객체의 그 많은 메소드들을 사용할 수 없다. 왜냐하면 심볼은 Symbol 객체이기 때문이다.

레일즈 개발환경은 참으로 살아 숨쉬는 그야말로 개발자로 하여금 지속적으로 공부하게 만드는 것 같다.

레일즈는 개발자 환경을 향상시키기 위해서 모든 역량을 다함에 틀림없다.

아마도 레일즈 3.1 베타1 버젼에는 누락되었지만, 3.1 릴리스 버젼에서는 틀림없이 추가될 것으로 생각된다. Coffee-script와 Coffeebeans. 아예 커피와 이름을 연관지으면서 그들의 개발언어의 연계성을 멋지게 만들어 가고 있다.

어쨌던 레일즈는 점점 더 재밌어 진다.

RubyAMP is a TextMate bundle that makes you more productive in editing, navigating, and debugging Ruby code. Now you can easily:

  • auto-complete from all open tabs
  • jump to a method, class, or fixture named under the cursor
  • start the debugger on a series of RSpec examples and break at the current line
  • inspect by highlighting to evaluate to tooltip or clipboard
  • fire up a Merb/Rails server or console for your current app
  • tail development.log