레일스 2.1 추가된 기능들
레일스 2.1 공식 버전이 발표된 것이 지난 6월 1일 새벽 2시(UTC겠죠?)였으니, 벌써 열흘이 다 되어 가는군요. 2.0버전이 나오고서 6개월만에 출시된 이번 업그레이드에서도 역시 레일스 개발의 재미를 더해주는 좋은 기능들이 많이 추가되었습니다. 변경된 내용에 대한 자세한 소개 자료들이 인터넷 상에 이미 많이 나와 있긴 하지만, 아직 우리말로 소개된 자료는 없는 듯 하여, 정보 공유 차원에서 간단히 다시 정리해 봅니다.
  • 쿼리 범위 지정(Named Scope) - 레일스에서 모델 객체를 액세스할 때, "가장 최근 포스트 몇 개" 또는 "공개된 모든 노트" 등과 같은 식으로 데이터 추출의 범위를 일정 범위로 한정지어야 하는 경우가 많이 있습니다. 이 때 가장 흔히 사용하는 방법은 모델 객체 속에 self.recent나 self.published 등과 같은 이름으로 메서드를 만들어 두고 그 속에서 다시 액티브레코드 find 메서드를 호출하는 것입니다. 조금 더 편리한 방법은 Nick Kallen이 만든 has_finder 플러그인을 사용하는 방법이 있는데, 이 플러그인을 사용하면 예컨대 Post.published.recent 등과 같은 식으로 모델 객체에 대한 쿼리의 범위를 조금 더 쉽고 자유롭게 조정할 수가 있습니다. 이제 레일스 2.1에서는 이 플러그인의 유용한 기능들이 named_scope이란 이름으로 레일스 코어에 통합되었습니다. 상세
  • 액티브레코드 부분 업데이트(Partial Update) - 지금까지 액티브레코드 모델 객체의 어떤 속성을 변경한 다음 save메서드를 호출하면, 변경되지 않은 속성까지 포함한 모든 속성들이 SQL 쿼리문으로 전달되었습니다. 약간은 비효율적이었죠. 그렇지만 이제는 변경된 속성들만으로 SQL 쿼리 호출을 할 수 있게 되었습니다. 이를 위해 액티브레코드 객체에 이른바 'Dirty Object ' 기능이 추가되었습니다. 따라서 예컨대 article.title_changed?와 같은 메서드가 추가되어, 모델 객체의 특정 속성이 변경되었는지를 직접 확인할 수가 있게 되었습니다. 상세
  • 시간대(Timezone) 설정 - 예전에 플러그인(tzinfo_timezone) 또는 젬(TZInfo) 형태로 사용하던 시간대 설정 기능이 레일스 코어에 통합되었습니다. (물론 아주 오래 전부터 레일스 액티브 서포트 라이브러리 속에는 TimeZone 클래스가 존재했지만 써머타임 지원 등이 없는 관계로 TZInfo 젬을 더 많이 사용했었습니다) 이제 추가적인 설치 없이도 편리하게 국제적인 애플리케이션을 만들 수 있게 되었네요. 더 자세한 내용은 여기여기에 잘 나와 있습니다.
  • 향상된 캐싱 - 자신만의 고유한 캐싱 클래스를 만들어 애플리케이션에 플러그인(plug-in) 시킬 수 있게 되었습니다. 상세
  • Gem 의존관계 관리 - 레일스 애플리케이션을 작성하다보면 추가적인 젬(gems) 라이브러리들을 사용해야 하는 경우가 많습니다. 이 때 개발환경과 테스트환경, 배포환경 등에 맞춰 일일이 젬을 설치하고 또 버전을 맞추고 하는 작업은 제법 성가신 작업이었습니다. 이제 레일스 애플리케이션에서 사용하는 젬의 설정/추가/동결 작업이 한결 쉬워졌습니다. 이를 위해 rake gems 태스크(task)를 비롯한 각종 rake 명령들도 추가되었네요. 상세
  • UTC 기반 마이그레이션 - 레일스 2.1을 설치하고 나서 새 마이그레이션을 하나 만들면 마이그레이션 파일의 이름 규칙이 바뀐 것을 확인할 수 있습니다. 예전에 001_xxx, 002_xxx, ... 와 같이 나가던 마이그레이션 번호가 이제는 20080402122512_xxx 와 같은 UTC형식의 값으로 나갑니다. 얼핏 복잡해 보일 수도 있지만, 이렇게 함으로써 마이그레이션을 체크인하거나 새로 만들 때 종종 생기곤 하던 마이그레이션 충돌 문제를 해결할 수 있게 되었습니다. 상세
* UPDATE: Carlos Brando라는 분이 "Ruby on Rails 2.1 - What's New"라는 약 130페이지 짜리 PDF 책을 공개하였다.
* UPDATE2: 위 PDF 문서에 대한 한국어 번역 프로젝트.
by thinkr | 2008/06/09 23:19 | 트랙백(1) | 덧글(1)
트랙백 주소 : http://thinkr.egloos.com/tb/1927251
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from 쎄미 at 2008/06/12 19:28

제목 : [Rails] 레일스 2.1 추가된 기능들
레일스 2.1 공식 버전이 발표된 것이 지난 6월 1일 새벽 2시(UTC겠죠?)였으니, 벌써 열흘이 다 되어 가는군요. 2.0버전이 나오고서 6개월만에 출시된 이번 업그레이드에서도 역시 레일스 개발의 재미를 더해주는 좋은 기능들이 많이 추가되었습니다. 변경된 내용에 대한 자세한 소개 자료들이 인터넷 상에 이미 많이 나와 있긴 하지만, 아직 우리...more

Commented by kkoon at 2008/06/13 13:48
Partial Update 기능은 참 반갑네요. 좀 불만이었는데.. ^^

:         :

:

비공개 덧글

< 이전페이지 다음페이지 >