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. 아예 커피와 이름을 연관지으면서 그들의 개발언어의 연계성을 멋지게 만들어 가고 있다.

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

레일즈 3.1부터는 3.0에서는 볼 수 없었던 특이한 기능을 엿볼 수 있다.

3.1부터는 모든 javascript 파일과 모든 stylesheet 파일들을 각각 application.js와 application.css 두개의 파일로 합쳐서 렌더링하여 최종 유저들에게 보내는 html 파일에 삽입해 준다. 이렇게 다수의 파일을 하나로 합치는 기능은 Sprockets라는 루비라이브러리를 이용하여 가능하게 한다.