1. 기본적으로 사용되는 gem들
- devise (https://github.com/plataformatec/devise) : 로그인, 회원가입 기능 개발을 도와줍니다.
- omniauth (https://github.com/intridea/omniauth) : twitter, facebook, google, openid, oauth등의 널리 사용되는 서비스의 ID로 로그인을 가능하게 합니다.
- cancan ( https://github.com/ryanb/cancan ) : railscast를 하는 ryanb라는 분이 만드신 gem인데, 사용자 계정에 따른 페이지 접근권한 관리를 해 줍니다. 사용자 테이블이 user, admin으로 갈라져 있는 경우에도 응용해서 사용할 수 있도록 유연합니다.
- mongoid( https://github.com/mongoid/mongoid ) : MongoDB를 사용하신다면 mysql2 gem대신에 이 gem을 써야 합니다. 하나의 프로젝트에 mysql과 mongoid 둘 다 동시에 혼용해서 사용하실 수도 있습니다. 저희 회사에서는 일부 데이터의 저장에 mongodb를 사용하고 있습니다.
- kaminari( https://github.com/amatsuda/kaminari ) : 목록 데이터의 페이지네이션을 해줍니다. 예전에는 will_paginate를 사용했었는데, 최근 kaminari가 더 좋아보입니다.
- resque ( https://github.com/defunkt/resque ) : web page의 request에 의존하지 않는 배치작업 처리를 관리해 줍니다. 전에는 delayed_job이라는 것을 썼었는데, resque가 성능면에서도 더 좋은 것 같고, GUI webpage interface도 있어서 좋아보입니다.
- paperclip ( https://github.com/thoughtbot/paperclip ) : 이미지 파일 관리를 도와줍니다. 자동으로 원하는 사이즈로 resize해서 저장합니다.
- meta_search ( https://github.com/ernie/meta_search ) : 데이터 검색, 정렬등을 쉽게 만들수 있게 도와줍니다. 주로 관리툴의 데이터 핸들링을 개발할 때 사용합니다.
- web-app-theme ( https://github.com/pilu/web-app-theme/ ) : 관리도구의 GUI를 쉽게 만들 수 있게 도와줍니다. CSS, javascript, HTML template를 생성해 주며, 다양한 theme을 지원합니다. 그리고, scaffold로 생성한 view도 여기 theme에 맞는 형식으로 overwrite해줘서 생산성을 높여 줍니다.
- activo ( https://github.com/dmfrancisco/activo ) : 위에서 소개한 web-app-theme과 쌍으로 같이 쓰이는데, 장점은 동일한 CSS요소를 쓰면서 formtastic이라는 form GUI helper형식의 CSS도 함께 제공합니다. 그리고 주관적인 생각이지만 조금 더 이쁩니다.
- formtastic ( https://github.com/justinfrench/formtastic ) : web form ui를 작은 코드로 생성할 수 있게 도와줍니다. 저는 아직 학습이 미숙해서 admin ui에만 활용하고 있습니다. 잘 쓴다면 사용자페이지의 form에도 적용하면 좋을 것 같습니다.
2. 선택적으로 사용할 수 있는 gem들
- awesome_nested_set ( https://github.com/collectiveidea/awesome_nested_set ) : 트리구조의 데이터 생성을 도와줍니다. 예를 들어 카테고리와 같은 Tree 자료주조 형태가 필요하면 이 gem을 사용합니다.
- acts-as-taggable-on ( https://github.com/mbleigh/acts-as-taggable-on ) : 모든 model을 대상으로 tagging을 할 수 있게 해줍니다. tag cloud 도 생성해 주고요.
- vestal_versions ( https://github.com/laserlemon/vestal_versions ) : 위키와 같이 데이터 변화의 revision을 관리해 줍니다. 특정 model에 적용해 두면 그 모델의 모든 변화는 추적가능합니다. 즉, 모든 변화를 log형태로 기록을 남길 수 있습니다.
- nested_form ( https://github.com/ryanb/nested_form ) : has_many, has_one 형태의 model간의 relation이 있는 경우, 하나의 form에서 입력을 받아야 할 경우 사용합니다.
- acts_as_commentable ( https://github.com/jackdempsey/acts_as_commentable ) : 모든 model을 대상으로 comment를 달 수 있게 합니다. 확장팩인 댓글의 댓글이 가능하게 하는 acts_as_commentable_with_threading이라는 gem도 있는데, 저도 많이 써보지 않아서 추천할 수 있는지는 아직 의문입니다.
- geocoder ( https://github.com/alexreisner/geocoder ) : 위도, 경도, 주소에 따라 근처 object등을 query해 준다던지 등의 위도, 경도, 주소 관련 관리를 해 줍니다. 지역정보 서비스를 하는데 사용하고 있습니다.
- twitter ( http://twitter.rubyforge.org/ ) : 트위터 연동을 쉽게 해 줍니다.
- mini_fb ( https://github.com/appoxy/mini_fb ) : 페이스북 연동을 쉽게 해 줍니다.
- memcache-client ( http://rubygems.org/gems/memcache-client ) : Rails가 아니여도 널리 사용되고 있는 memory cache시스템입니다. 성능을 위해서 memcached 사용은 필수죠.
- apn_on_rails ( https://github.com/PRX/apn_on_rails ) : apple push notification을 쉽게 할 수 있게 도와줍니다.
3. 그 밖의 gem들
- rqrcode ( http://whomwah.github.com/rqrcode/ ) : QR코드의 생성을 도와줍니다.
- encryptor ( http://github.com/shuber/encryptor ) : 암호화가 필요한 경우.
- stringex ( https://github.com/rsl/stringex ) : 루비 스트링 클래스의 확장기능을 제공합니다. 저는 이 중에서 “경기도”.to_url => “gyounggido” 과 같이 한글 음성 발음 대로 영문 URL패턴으로 변경되는 기능을 사용합니다.
그 외로 Rails 3.1에 기본으로 포함된 sass, coffee-script, uglifier, jquery-rails 등이 있음.
댓글 없음:
댓글 쓰기