스퀘어의 레일즈

스퀘어의 RubyConf 발표 동영상에서 기억해둘만한 부분들이 있어 정리/공유 합니다.

  1. JRuby, Clojure, Jython 등 사용, 모두 JVM위에서 동작,디플로이 할때 JVM만 고민하면 된다.

  2. API 만들 때는 fdoc을 이용, 문서부터 만든다.

  3. 자꾸 기능 추가하다보니 거대한 한덩어리 서비스가 되어버림.

    • CI 에 오랜시간걸림
    • 이제는 한덩어리 레일즈 서비스가 아니라, 여러 서비스의 조합으로 나가려고 함.
    • 이를 위해 doc, deploy, security를 고민한 템플릿을 만들어 두었슴.
  4. 테스트에 참고한 책 “Growing object-oriented software guided by Tests

  5. 다른 서비스와  통신하는 것까지 테스트에 넣는다.

    • 포함해 독립된 환경에서 테스트 할 수 있도록 fake server 를 만든다.
    • 이때는 foreman을 써서 실행.
    • (faceserver 는 시나트라로 간단하게 만드는 것 같네요.)
  6. 코드 검수는 cane을 사용

  7. 웹서비스는 Jetty 사용. 빠르고 가볍고, 레일즈서비스에 임베드 해버릴수있다.

    • 이부분도 소스 공개함 : Jetpack
  8. 모니터링은 Airbrake로 한다. 기타 cubism.js, splung도 사용

  9. 내부서비스간의 통신 보안에는 SSL 인증서를 사용한다.

결제 서비스에 레일즈를 쓰고 있다는 것도 신기했고, 자신들이 만든 것을 공개하는 모습도 멋집니다.

P.S. 갈겨썼더니 옮기기가 쉽지 않군요.