'변경 사항'에 해당되는 글 1건

  1. 2014.10.23 [Ruby on Rails] 4.1 Release Notes
2014. 10. 23. 14:24

루비 온 레일즈 4.1 릴리즈 노트





주목할 만한 것들

  1. Spring의 Application Preloader

  2. 새로 생긴 config/secrets.yml 파일

  3. 액션팩(ActionView와 ActionController 모듈을 합쳐 부르는 것) 의 변수들

  4. Action Mailer 미리보기

2. 주요 특징
2.1 Spring 
- Spring은 rails의 preloader 이다. 프로그램을 백그라운드에 돌아가게 해줘서 테스트 실행을 할 때나 rake 작업이나 migration 할때마다 시작 할 필요가 없게 해줌으로 개발 속도를 높여준다.

- Rails 4.1 버전은 "springified" binstubs를 포함한다.  즉, bin/rails 와 bin/rake는 preloaded spring 환경으로 부터 긍정적 효과를 본다는 것이다.
(binstubs 는 실행가능한 파일 감싸는 코드<wrapper script> 인데 실행 가능한 파일을 호출하기 전에 환경을 준비하는 역할을 한다. 루비에서는 보통 RubyGem이 executable을 포함하는 gem을 설치하고 나서 binstub을 생성한다.)

Spring README


2.2 config/secrets.yml

- Rails 4.1 버전은 이전에 없던 secrets.yml 파일을 생성하게 된다.

 이 파일은 기본적으로 application의 secret_key_base를 포함하는데 이것은 외부 API를 위한 액세스 키 같은 비밀 data를 저장하는데 쓰일 수 있다.


- secrets.yml에 추가된 비밀 데이터들은 Rails.application.secrets를 통해 접근이 가능하다. 


- 예를 들면 

 "키 : 키값" 이 secrets.yml 파일에 있을때

 development 환경에서 "Rails.application.secrets.키" 는 키값을 리턴한다. 


2.3 Action Pack 변수

- 주로 스마트폰, 타블렛, pc 브라우저에 따라 다른 HTML/JSON/XML 템플릿들을 렌더링 할때 쉽게 할 수 있게 해준다.


2.4 Action Mailer Previews

- 특별한 URL을 통해 email을 시각적으로 볼 수 있게 해주는 방법을 제공한다.


- ActionMailer 패키지 

http://api.rubyonrails.org/v4.1.0/classes/ActionMailer/Base.html#class-ActionMailer::Base-label-Previewing+emails


2.5 Active Record enums

- http://api.rubyonrails.org/v4.1.0/classes/ActiveRecord/Enum.html


2.6 Message Verifiers

- Message Verifiers로 서명된 메세지를 생성하고 확인할 수 있다. 민감한 데이터를 안전하게 전송할 때 유용하다.


- Rails.application.message_verifier 메소드는 secret_key_base 와 message verifier 이름으로 부터 키를 얻어 메세지에 서명을 하는  message verifier를 생성한다.


2.7 Module@concerning

- mix-in으로 생기는 단점을 제거함으로써 자연스럽고 low-ceremony[각주:1]적인 방법으로 하나의 클래스의 역할을 분리해서 관리 할 수 있다.


- 링크 : http://api.rubyonrails.org/v4.1.0/classes/Module/Concerning.html


2.8 CSRF protection from remote <script> tags

- Cross site request forgery(CSRF) protection 은 GET 요청을 통한 자바스크립트 응답도 처리할 수 있다. 즉, 제 3자의 사이트에서 당신의 자바스크립트 URL을 참조하는 것과 중요한 데이터를 추출해내기 위해 자바스크립트를 구동하는것을 예방해 준다.


- 자바 스크립트 url이 xhr을 이용하지 않는 이상 CSRF protection에 막혀 실패할 것이다. 그러므로 XmlHttpRequests 를 명시적으로 사용하도록 post:create, format: : js 대신 xhr : post, :create, format: :js 를 사용하라.


3 Railties (rails 네임스페이스 안의 class이다. Object 클래스를 상속받음)

3.1 제거된 것들

      • Removed update:application_controller rake task
      • Removed deprecated Rails.application.railties.engines
      • Removed deprecated threadsafe! from Rails Config
      • Removed deprecated ActiveRecord::Generators::ActiveModel#update_attributes 
      • - ActiveRecord::Generators::ActiveModel#update 가 대체한다.
      • Removed deprecated config.whiny_nils  option
      • Removed deprecated rake tasks for running tests : rake test:uncommitted and rake test:recent

3.2 주목할 만한 변경사항

      • Spring application preloader 가 기본적으로 새 어플리케이션에 설치된다.

- 그러나 이것은 develop group의 Gemfile을 사용하므로 production 모드에서는 설치가 안될 것이다.

      • BACKTRACE 환경 변수가 사라지는 현상
      • 환경 설정에 노출된 MiddlewareStack#unshift

--------------------미 완 성-----------------------------------


하아.. 너무 많다... 글 쓰기 싫다.. 아직 절반도 못한거 같은데
 이 내용을 다 옮겨야 되나..

릴리즈 노트 링크 

http://edgeguides.rubyonrails.org/4_1_release_notes.html





  1. [term]low-ceremony 참고 참고 [본문으로]
Posted by Superkill