Rails2.2 New Features


 레일스 2.2 가 릴리즈 되었다. 전에 2.1을 쓰고 있었기 때문에 큰 변화가 있겠나 싶어서 크게 관심을 둔 것은 아니었지만 새로 추가된 기능들을 보자니 생각보다 큰 녀석들이 많아서 살펴봐야 겠다는 생각이 들었다.

일단 아주 잘 정리된 원문원문2 을 바탕으로 살펴보면  …

등등 기본적으로 간략하게 살펴보는 글들이 많이 있다.

 

새로 추가되는 면면 중에서 눈에 띄는 것들만 보면

 

  • Thread Safety !! 드디어 레일스 2.2 부터 적용되었다. Josh Peek (구글 SoC 프로젝트에서 일했던 사람인가보다)가 지난 8월에 레일스 코어팀으로 합류한 이후로 작업을 해온 모양인데, 이제 릴리즈가 되었다. 참으로 오랜동안 이부분에 대해서 레일스에 대한 성능의 한 부분에 대한 안타까움 내지는 아쉬움을 가지고 있던 사람들이 많았으리라.. 얼마나 많은 삽질을 통해서 좀 더 나은 대안을 찾으려고 고민했던가. 정말 Finally 라는 말을 붙일만 하다.
  • Internationalization 이 부분은 점점 좋아 지고 있었는데 왼쪽 링크처럼 별도의 홈이 생길 정도로 적극적인 것 같다. 언제 이런 곳이 생겼다지..? (참고)
  • Connection Pooling  아.. 이것도 이제 드디어 왠지 connection pooling 과 socket pooling 같은 것들은 고 성능을 내야하는 웹애플리케이션에서는 필수 적인 것들이라고도 볼 수 있는데 참으로 반가운 소식이다. 이것과 Thread Safty 적용만 하더라도 상당히 성능 향상에 도움이 될 것 같아 보인다. (참고 디폴트로는 5개를 풀로 사용하는 것 같다. 간단한 설정으로 풀 사이즈를 조정할 수 있게 되어있다. 왕 간편.)
  • Memoize 라는 매크로 메소드가 추가되었다.  요것도 7월 쯤에 Josh Peek 이 코어에 추가한 모듈을 바탕으로 하고 있다. 사용법도 간단하다. 기존에 ||= 오퍼레이터를 사용해서 조건부 assign 처리하던 것을 extend ActiveSupport::Memoizable 이라고 해주고 메소드명을 심볼로 지정해주면 적용된다. 링크 따라 가서 가이드를 보자. 미리 할당하는 것 보다는 역시나 lazy load, eager load 와 잘 맞는 유용한 녀석인 것 같다.
    간단하게 ActiveRecord::Base.extend(ActiveSupport::Memoizable) 이라고 하면 엑티브레코드 전체에 적용할 수 있게된다.

 

기타 추가사항

 

 좋아졌다. 좋아졌어… 업그레이드 해봐야겠다.

 

업그레이드는 http://guides.rubyonrails.org/2_2_release_notes.html 릴리즈 노트를 따라가면 되겠다.

 

이 글은 스프링노트에서 작성되었습니다.

  • 우와~ 저도 찾아 읽어봐야 겠어요. 정리해 주셔 감사합니다. 그런데, 그러게, 뭐가 진짜 로고죠??

    • 그러게요. 하나 골라라 이런건가요^^
      그나저나 최근에 발표하신 자료도 잘 봤습니다.