'개발/루비온레일스'에 해당되는 글 2건

  1. 2010/05/19 루비온레일즈 서버 운영 환경 ( Ruby on Rails Server Environment )
  2. 2010/03/11 루비온레일즈 웹 개발 (2)

루비온레일즈는 XML, JSON API를 제공하기 쉽고, 아이폰을 비롯하여 멀티 디바이스에 대응하는 최적의 데이터 서버 운영환경입니다.

 

저희 씽크리얼스에서 지금까지 루비온레일스 서버를 운영하면서 얻은 노하우를 소개해드리려고 합니다.

 

1. 우선 서버는 Ubuntu Linux Server Edition 최신의 안정버전을 선택하실 것을 권장합니다. http://www.ubuntu.com/

그 이유는, ruby gem들이 systemc 라이브버리를 활용하는데, 서버 버전마다 한글 문제 등의 처리가 조금 다를 수 있습니다. 저의 경험상으로는 Ubuntu LinuxUTF-8 기준으로 한글처리가 잘 되는 듯 합니다. 예를들어, nokogiri 등의 gem에서 한글처리시 서버마다 다른 동작을 할 수 있습니다. 경험상 Ubuntu Linux를 권장합니다.

 

2. Ruby 인터프리터: http://www.rubyenterpriseedition.com/

루비의 성능면에서 서버최적화된 Ruby 인터프리터 입니다. 지금까지 사용하면서 큰 문제는 없었고, 성능은 20~30%정도 향상된다고 홈페이지에 설명하고 있습니다.

 

3. Ruby on Rails 서버는 Apache + Phusion Passenger http://www.modrails.com/

Passenger Apache 웹서버 혹은 Nginx서버와 연동하여 서버 운영환경을 구성할 수 있습니다. production모드에서 성능이 괜찮습니다.

 

4. config/environments/production.rb config.threadsafe! 설정

production 모드에서 동시에 여러 request multi-thread로 처리할 수 있습니다. 멀티코어에서 효율성이 더 증대된다고 합니다. 이것도 성능향상을 위한 중요한 설정중에 하나입니다.

http://guides.rubyonrails.org/2_2_release_notes.html#thread-safety 에서 조금 더 자세한 설명을 보실 수 있습니다.

 

5. Rails 에서 지원하는 다양한 Cache

Ruby on Rails는 다양한 Cache 기법을 기본 제공합니다. 이것을 서비스에 적절히 활용한다면 큰 성능향상 효과를 얻을 수 있습니다. 페이지 전체를 통으로 HTML로 만들어 버려서 server response time 0ms로 만들어주는 page cache 기법부터, action cache, fragment cache 등 기본제공됩니다. 이렇게 제공되는 다양한 cache 기법들은 서버 운영 리소스를 줄이고 성능향상을 향상할 수 있는 좋은 방법입니다. Cache 동영상강의가 railalab에 가면 잘 준비되어 있습니다. 필요하신 분은 아래 링크에서 동영상 강의로 쉽게 배울 수 있습니다.

http://railslab.newrelic.com/2009/01/22/page-caching

 

이 글이 국내에서 Ruby on Rails로 서버 운영 환경을 고려하시는 분들께 미약하게나마 도움을 드릴 수 있었으면 좋겠습니다.


좋은 팁을 알게 된다거나 더 생각나는 것이 있으면 차후에 다시 블로깅 할 수 있도록 하겠습니다

궁금하신 점이나, 혹시 잘못된 정보가 있으면, 트위터 아이디 @jaehyun 로 피드백주세요. 언제나 환영입니다.

 

Posted by thinkreals
제가 웹 개발을 처음 접해본 지가 벌써 10년이 다 되어가는 것 같습니다.

처음 접한 웹개발 언어는 ASP 였는데,
그 당시에는 태그매니아 사이트에서 HTML을 배우고,
Taeyo's ASP사이트에서 정보를 찾아가며 게시판 만들어 본 것 같습니다.
 그 다음에 JSP, Servlet을 알게 되고, MVC를 분리하여 개발하면 훨씬 코드가 깔끔해 진다는 것을 알게 되었죠.

이제 시간이 많이 흐르고, 기술도 많이 발전해서..
지금은 Ruby on Rails로 웹개발을 하고 있습니다.

Rails


물론, 포켓스타일 서비스도 웹 부분은 모두 Ruby on Rails로 되어 있습니다.
앞으로 이 블로그를 통해서,
Ruby on Rails에 대한 기술적인 부분도 조금씩 소개를 드리려고 합니다.

우선 Ruby on Rails를 공부하는데 유용할 만한 자료들을 알려드리도록 하겠습니다.

1. 루비 언어에 대해서 조금 배워야 합니다. 그렇다고 해서 루비 언어 모두를 알아야 시작할 수 있는 것은 아니니, http://www.ruby-lang.org/ko/ 사이트에서 루비 20분 가이드를 학습하시고, Ruby on Rails를 시작하면 좋을 것 같습니다.

2. 책을 추천해 드립니다. http://www.pragprog.com/titles/rails2/agile-web-development-with-rails
Agile Web Developement with Rails 인데, 한글책 http://www.yes24.com/24/goods/2381549?scode=032&srank=1 도 있습니다만, Ruby on Rails가 빠르게 버전업이 되어서, 한글책을 사시면 버전문제로 조금 고생하실 수 있습니다. 그래도 영어가 꺼려지시는 분은 한글책으로 공부하시는 것도 좋을것 같아요. 버전이 변해도 큰 맥락은 유지되고 있습니다.

3. 레일즈캐스트 http://railscasts.com/

Railscasts

그야말로 문서로 배울 수 없는 여러가지 테크닉들을 배울수 있는 Ruby on Rails 학습에 최고로 도움이 되는 사이트입니다. 시간이 되신다면 3년전부터 업로드된 1편부터 지금까지의 모든 스크린캐스트를 보실 것을 추천드립니다.

4. 레일즈랩 http://railslab.newrelic.com/
튜닝, 캐쉬, 대용량화등의 여러가지 고급 기술들을 다룹니다. 스크린 캐스트가 약 20개 정도 올라와 있습니다. 약간의 고급(?) 기술을 익히시고자 하신다면.. 실제로 Ruby on Rails로 개발된 서비스를 운영하신다면, 시간내서 한번 보시길 권해드립니다. 실제상황에 적용할 수 있는 유용한 정보가 많이 있습니다.

5. 루비 툴 박스 http://www.ruby-toolbox.com/
루비, 루비 온 레일즈의 큰 장점중에 하나가 조각 코드, 플러그인으로 gem을 제공하는데, 유용한 것이 아주 많습니다. 루비 툴 박스 사이트에 가시면, 분야별 인기 있는 gem을 찾으실 수 있습니다.

여기까지 적고 나머지는 다음에 또 소개해 드릴께요.

공부하시다가 좋은 것을 아시면 저희에게도 공유해 주세요.^^


Posted by thinkreals