Working With Rails가 다시 오픈했습니다

원문

Working With Rails가 새로운 기능과 멋진 색상으로 돌아왔습니다. 아주 멋져 보여요. Rails Hackfests와 같은 행사를 주관해 주시는 것에 대해서도 감사드립니다.

Posted by Kenny Fri, 26 Oct 2007 10:58:00 GMT


MicroPlace가 오픈했습니다.

개발도상국의 노동자들에게 소액대출을 하고, 이자를 받는 사이트인 MicroPlace가 최근에 오픈하였습니다. MicroPlace에서 일하는 Josh Susser가 프로젝트에 대한 멋진 소개를 썼습니다.

“제가 아는한, MicroPlace는 Ruby on Rails로 구현된 최초의 SEC등록 온라인 중개사이트입니다. 시스템 전체적인 보안감사 부터 시작해서, 끔찍한 양의 규제들을 만나야 했습니다. 하지만 이런 문제들을 해결하는데 있어 루비 온 레일스로 인한 심각한 문제는 없었습니다.”

Josh는 MicroPlace가 Java로만 제작하던 eBay의 첫번째 레일스 애플리케이션이라고 이야기합니다. 멋져요. 모두 수고하셨습니다. 사이트의 개발 관점에서 더 많은 아티클들을 볼 수 있었으면 좋겠네요.

Posted by Kenny Thu, 25 Oct 2007 02:04:00 GMT


IntelliJ IDEA 7에 Ruby on Rails 지원이 추가되었습니다.

원문

IntelliJ IDEA는 오랜 기간 자바 개발자들 사이에서 최고의 IDE중 하나로 호평받았습니다. 이번 7.0 버전에서는, 자바 개발 뿐만 아니라 훌륭한 Ruby on Rails 지원 을 제공해 이미 Rails 지원을 포함하고 있는 Netbeans와 Eclipse를 추격합니다. Rails 지원을 소개하는 끝내주는 튜토리얼 비디오 도 확인해 보세요.

Posted by Kenny Mon, 15 Oct 2007 19:00:00 GMT


Capistrano 2.1

원문

생각했던 것 보다 많이 늦게 Capistrano 2.1이 출시되었습니다. (Capistrano는 여러대의 머신에서 병렬로 명령어 처리를 하기 위한 유틸리티입니다. 레일스 개발자들은 배포를 자동화하기 위해 Capistrano를 사용하고 있습니다.) 재밌을 만한 몇몇 기능을 포함해서 이번 릴리즈에는 꽤 많은 일을 해냈습니다. 언제나 처럼 RubyGems를 통해 설치해 주세요.

gem install capistrano

새로운 기능은 다음과 같습니다. (대충 중요도 순입니다.)

기본 PTY가 없습니다. 2.1이전에는, Capistrano는 각각의 명령어를 가상 터미널 장치(Pseudo-Terminal-Driver)를 통해 전달했습니다. 이 방식은 사용자의 프로필 스크립트가 실행되지 않는다는 부작용이 있었는데요, 이제는 아닙니다! 2.1부터 Capistrano는 명령어를 PTY를 통해 전달하지 않습니다. 따라서 사용자의 .profile(혹은 .bashrc 등의 개별 사용자 프로필 파일)이 정상적으로 로드됩니다. 다만, 어떤 시스템에서는 PTY가 할당되지 않았을 경우 명령어가 사용자의 입력을 받을 수 없는(non-interactive) 상황이 일어날 수 있습니다. svn이나 passwd같은 명령어가 생각했던 방식으로 동작하지 않는다면, capfile에 다음 설정을 입력하여 예전 방식을 사용하실 수 있습니다.

default_run_options[:pty] = true

sh Wrapping을 끌 수 있습니다. 어떤 호스트에서는 POSIX 셸이 Capistrano 2.0 부터 사용하는 독립적인 명렁어 실행을 할 수 없게 되어 있습니다. 그런 호스트에서 작업중이시라면 capfile에 다음 설정을 입력하면 됩니다.

default_run_options[:shell] = false

설정이 적용되면, Capistrano는 “sh -c” 명령으로 감싸는 대신 직접 명령을 실행할 겁니다. 이렇게 사용하신다면 원격지 사용자 계정의 기본 셸이 POSIX 호환이어야 합니다. 아닐경우 알수 없는 에러가 날테니까요.

Git SCM 지원. Garry Dolley, Geoffrey Grosenbach, Scott Chacon의 노력으로 Capistrano에 Git SCM 모듈이 추가되었습니다. Git를 쓰신다면, 이제 설정파일에 SCM을 Git로 지정해 줄 수 있습니다.

set :scm, :git

Accurev SCM 지원. Doug Barth의 노력으로, Accurev 사용자들도 Capistrano를 편하게 쓰실 수 있습니다. 설정파일의 SCM을 accurev로 지정하시면 됩니다.

set :scm, :accurev

레일스 플러그인을 지원합니다. 이제 capify로 생성된 Capfile에는 vender/plugins/*/recipes/*.rb를 자동 로드하는 부분이 있습니다. 이 기능이 필요하지만 이미 Capfile이 있고, 직접 수정한 부분을 잃어도 된다면 그냥 기존 Capfile을 지우고 capify명령을 다시 실행시키세요. 직접 수정한 부분이 중요하다면, “config/deploy”를 읽어오는 부분 이전에 다음 줄을 넣으시면 됩니다.

Dir['vender/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }

윈도우에서 안전한 파일 읽기. 이제 Capistrano는 파일을 읽을때마다 “b”옵션을 설정합니다. 따라서, 윈도우의 경우에도 바이너리 형식으로 정상적으로 읽을 수 있습니다.

Cap shell과 sudo. Capistrano shell은 이제 sudo 명령을 알아듣고, 정확하게 암호를 물어볼 겁니다.

의존성 확인을 위해 ‘match’를 사용. deploy:check:”match”라는 원격 의존성 확인 메소드가 추가되었습니다. 환경설정이 제대로 되어 있는지 확인하기 위해 명령어 출력 결과에 별도의 정규표현식을 적용하실 수 있습니다.

depend :remote, :match, "rake -V", /version 0\.7/

Namespaces#top. 어떤 태스크에서 다른 태스크를 실행시켜야 할 때가 있습니다. 그런데, 실행시킬 태스크의 부모 네임스페이스가 현재 네임스페이스의 이름과 유사하다면, 잘못된 작업이 실행될 수 있습니다. 이제 “top” 메소드를 이용해서, 네임스페이스 계층구조의 최상위로 접근하실 수 있습니다.

namespace :apache do
  namespace :deploy do
    task :restart do
      run "restart apache"
      top.deploy.restart
    end
  end
end

나머지 변경 사항들. 소소한 버그 수정이나 변경들도 있습니다.

  • 업로드 시에 기본 권한이 0660에서 0664로 변경되었습니다.
  • deploy:pending 태스크를 실행시켰을때 최근의 변경된 리비전을 참조하도록 해서 마지막으로 배포된 변경사항이 중복 출력되는 문제를 해결했습니다.
  • Subversion에 최근 리비전을 조회할때, “Revision” 대신 “Last Chaged Rev”를 사용합니다.
  • copy_test 시에 “stringio” 를 명시적으로 require하게 변경하였습니다.
  • Subversion#query_revision이 실패하였을시, 좀 더 도움되는 에러가 출력됩니다.
  • 실 운영 서버가 아닌 경우에는 update:revision을 실행시키지 마십시오.
  • subversion 연결시에 기본적으로 -password 옵션을 사용합니다. command-line에서 직접 암호를 보내길 원치 않는 사람들을 위해 :scmpreferprompt 변수가 추가되었습니다.
  • 예측이 가능한 sudo 작업에 대해서는 sudo -p 옵션을 사용합니다.
  • 동일 루비 프로세스에 대해 같은 작업을 해야 할때 필요한 설정들을 별도의 독립적인 설정 파일로 관리할 수 있게 하였습니다.
  • :scmauthcache 변수를 통해 subversion 접근 권한을 캐싱 할 수 있도록 하였습니다.
  • Don’t let a task trigger itself when used as the source for an “on” hook.
  • versiondir, currentdir, shared_dir 변수가 추가되어서 배포시의 디렉토리 구조를 변경할 수 있습니다.
  • deploy:restart 시에 프로세스를 실행시킬 사용자명을 :runner 변수에 추가할 수 있도록 변경되었습니다.
  • “-h” 옵션의 출력을 변경하였습니다. 이제 “-q”는 기본값이 아닙니다.

잘 사용하세요! 버그를 발견하시면 Rails trac 의 “Capistrano” 컴포넌트에 올려 주시길 부탁드립니다.

Posted by Kenny Sun, 14 Oct 2007 09:43:00 GMT