기본 콘텐츠로 건너뛰기

프로젝트에 필요한 개발 Gem 7

프로젝트에 필요한 개발 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과 컨트롤러의 어느 부분에서 어느 정도의 시간이 걸려 있는지 등을 세밀하게 볼 수 있으므로 개발시에도 편리합니다.

댓글

이 블로그의 인기 게시물

사원으로 가면 암걸리는 회사.

(1) 어떠한 일이 벌어지던 지휘 명령 체계를 반드시 지키도록 강요한다. 의사 결정을 앞당기기 위한 샛길을 허락하지 않는다. (2) 간단하게 해결할 수 있는 안건도 위원회에서 검토하게 하며, 위원회는 가능한 크게 만든다. 최소 5명 이상. (3) 될 수 있는 한 자주 회의를 열도록 유도한다. (4) 이전 회의에서 정해진 것을 되풀이해서 검토하도록 유도한다. (5) 중요한 업무가 있어도 회의를 열게 한다. (6) 문서의 형식, 제출 일자, 오탈자를 집요하게 추궁한다. (7) 될 수 있는 한 문서의 양을 늘린다. (8) 업무 승인 수속을 될 수 있는 한 복잡하게 한다. 제 아무리 간단한 일에도 3명 이상의 승인을 필수가 되도록 유도한다. (9) 조직내 권한 문제를 집요하게 추궁한다. 상층부의 허락을 받지 않고 독단으로 해결해도 되는 지 끊임없이 지적한다. (10) 업무할당을 할 경우, 항상 중요도가 낮은 업무에 집중하도록 유도한다. (11) 새로운 직원에게 경험을 쌓을 시간과 자원을 주지 않는다.

buddy

https://buddy.works/ 깃 서비스가 엄청나게 많아 지고 있는것 같다. 최근에 gogs 도 그렇고 예전에 쓰던 github clone 들... 찾아보면 많을 것 같다. 이번에 페이스북에 광고로 올라온 buddy도 그렇다. 1프로젝트당 1$ 라는데... 기회가 되면 써 봐야지 -.-

Centos 6.7 + Perl Catalyst

하다하다 열받고 빡쳐서 대충 정리... 1. psql + oidentd 는 좋다. 2. 기본 psql 8.0 이었나... 9.4로 올렸더니 문제가 수두룩... export PATH=/usr/pgsql-9.4/bin:$PATH 3. perl 버전은 perlblew 로 설정. 4. apt-get이 지원하는건 yum 도 거의 받을 수 있음. 대충 접미어가 dev => devel 식으로 변경되었으니 검색 해야함. 5. 잠시 머리좀 식히고 다음에 다시 개발할 때 정리를... 기억이 안나... 6. 필수 설치 패키지. (나중에 업뎃.) sudo yum install postgresql-devel gd-deve