프로젝트에 필요한 개발 Gem 7
http://www.rubyonrails365.com/7-must-have-gems-to-install-on-any-project/
Awesome Print
이것은 개체를보기 쉽게 해주는 gem입니다. 먼저이 gem을 넣지 않은 경우의 출력을보고하자.
조금 이해하기 어렵 네요. 그러면 gem을 넣어 봅시다. Gemfile에 다음을 추가합니다.
Gemfile
gem 'awesome_print' , require : 'ap'
bundle install 을하여 rails console 을 출시 넣습니다.
상당히 쉽게 볼 수있는 느낌이 듭니다. 단, Rails4.2에서는 PrettyPrint는 것이 표준으로 사기하도록되어 있고, 표준에서도 많이보고 쉽게되어 있네요.
Rails Panel
이 gem을 넣으면 Chrome의 Developer Tool에서 Rails 정보를 얻을 수 있습니다.
먼저 Rails 애플리케이션에 metarequest 을 넣을 필요가 있습니다. Gemfile 에 gem 'metarequest', group : development 를 추가하고 bundle install 합니다. 여기 에서 Chrome 확장을 설치하여 Rails 애플리케이션을 브라우저에서 열고 요소 검사에서 Developer Tool을 열면 Rails 탭이 나타납니다. 그 중에서도 다양한 정보를 검색 할 수 있습니다. 특히 ActiveRecord에서 원시 SQL이 쫙 볼 수있는 것은 편리하다라고 생각했습니다. 이것을 사용하기 전에 일일이 Rails를 시작한 콘솔에서 로그를 쫓아했습니다.
Peek
GitHub 사가 '만드는 (있었다?) 시스템 내부의 구멍적인 기능을 제공 해줍니다. 발행하고있는 SQL의 수 등 응용 프로그램의 주요 지표를 화면에 간단하게 표시 할 수 있습니다. 어댑터를 만들 수 있기 때문에 자신의 환경에 맞게 확장 할 수 있습니다. development 환경에서 항상 뷰에 표시하도록 해두면 무거운 페이지에서 어떤 처리가 시간이 걸려 있는지 등 한눈에 알 수 있으므로 いいい 생각합니다. production 환경에서도 개발자 등 제한된 사용자에게만 표시두면 production 환경에서의 문제 해결에도 도움이 될 것입니다.
Better Errors
오류가 발생했을 때 표준 오류에 비해보기 쉬웠하거나 텍스트 편집기를 시작할 수 있고, 콘솔을 브라우저에서 작업하여 인스턴스의 상태를 확인 할 수 있습니다.
Pry Rails
Rails 디버깅을 매우 편하게 해주는 gem입니다. 솔직히 이것 없이는 개발할 수 없을 정도입니다. Gemfile 에 gem 'pry-rails', group : development 를 추가하고 bundle install 합니다. 예를 들어, 컨트롤러의 어딘가에 binding.pry 이라는 것을 설명합니다.
class HomeController < ApplicationController
def index
@hoge = 'hoge'
binding.pry
end
end
해당 뷰를 브라우저에서 열면 rails server 를 시작하고 콘솔이 binding.pry 을 묻었다 곳에서 rails console 을 시작합니다.
Started GET "/"for : 1 at 2015-04-28 09:38:23 +0900
Processing by HomeController # index as HTML
From : /Users/hirotaka/Documents/workspace/hirotaka/development-gems/app/controllers/home_controller.rb @ line 4 HomeController # index :
2 : def index
3 : @hoge = 'hoge'
=> 4 : binding.pry
5 : end
[1] pry (# <HomeController>)>
rails console 과 마찬가지로 binding.pry 타이밍 인스턴스의 정보를 참조하거나 변수를 대입 할 수 있습니다.
[1] pry (# <HomeController>)> p @hoge
"hoge"
=> "hoge"
[2] pry (# <HomeController>)>
또한 별도 pry-nav 라는 gem을 넣어두면 next 를 입력하면 단계별로 할 수 있습니다.
컨트롤러 이외에도 뷰에서 <% = binding.pry %> 할 때 사용할 수 있습니다.
Quiet Assets
기본 Rails 로그이라면 이런 출력이 가득 할오고있다라고 생각합니다.
Started GET "/assets/home.self-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css?body=1"for : 1 at 2015-04-28 09:32:07 +0900
Started GET "/assets/application.self-e80e8f2318043e8af94dddc2adad5a4f09739a8ebb323b3ab31cd71d45fd9113.css?body=1"for : 1 at 2015-04-28 09:32:07 +0900
Started GET "/assets/jquery.self-d03a5518f45df77341bdbe6201ba3bfa547ebba8ed64f0ea56bfa5f96ea7c074.js?body=1"for : 1 at 2015-04-28 09:32:07 +0900
Started GET "/assets/jquery_ujs.self-8e98a7a072a6cee1372d19fff9ff3e6aa1e39a37d89d6f06861637d061113ee7.js?body=1"for : 1 at 2015-04-28 09:32:07 +0900
Started GET "/assets/application.self-3a3c8b61bda630ee689740ce7cbd0dd8ea6fdd45e2c42eef4661ab38cf268afe.js?body=1"for : 1 at 2015-04-28 09:32:07 +0900
Started GET "/assets/turbolinks.self-c37727e9bd6b2735da5c311aa83fead54ed0be6cc8bd9a65309e9c5abe2cbfff.js?body=1"for : 1 at 2015-04-28 09:32:07 +0900
Started GET "/assets/home.self-877aef30ae1b040ab8a3aba4e3e309a11d7f2612f44dde450b5c157aa5f95c05.js?body=1"for : 1 at 2015-04-28 09:32:07 +0900
이것이라고 요청 정보 등을 참조하고 싶을 때 스크롤하여 반환해야합니다. 개발하는 동안은 Rails 자산 파이프 라인의 로그 정보가별로 필요없는 것이 아닐까요.
Gemfile에 gem 'quiet_assets', group : development 를 추가하여 주면 위와 같은 로그가 출력되지 않습니다 깔끔한합니다.
Started GET "/"for : 1 at 2015-04-28 09:54:09 +0900
ActiveRecord :: SchemaMigration Load (0.1ms) SELECT "schema_migrations"* FROM "schema_migrations"
Processing by HomeController # index as HTML
Rendered home / index.html.erb within layouts / application (0.9ms)
User Load (0.2ms) SELECT "users"* FROM "users"WHERE "users" "id"=? ORDER BY "users" "id"ASC LIMIT 1 [ "id", 1]
Completed 200 OK in 154ms (Views : 144.9ms | ActiveRecord : 0.8ms)
Bullet
느린 페이지에서 일반적인 문제점은 N + 1 문제에 기인하는 경우가 많은 것이 아닐까요. 이 gem은 그런 페이지가 발견되면 경고를 표시 해줍니다. development에서 읽도록 해두면 특정 페이지에서 N + 1 문제가 있음을 쉽게 인식 할 수 있습니다.
NewRelic
이것은 유명한 시스템 모니터링 서비스 네요. 여기에서는 developement 환경에서 무료로 사용할 수있어 개발시 편리한 방법을 소개합니다. NewRelic.com 에 가입 (Sign Up)을합니다. 로그인 한 후 Add more]을하여 응용 프로그램을 추가합니다.
내부의 처리에서 SQL과 컨트롤러의 어느 부분에서 어느 정도의 시간이 걸려 있는지 등을 세밀하게 볼 수 있으므로 개발시에도 편리합니다.
댓글
댓글 쓰기