Basecamp, Campfire, 43things, ODEO, Shopify, Wayfairing.. .. 나름대로 알려진 Web 2.0 사이트 들입니다. 이 사이트들은 한 가지 공통점을 가지고 있지요. 그 공통점이 무엇일까요?

바로 Ruby On Rails를 이용해 만들어졌다는 점입니다. 최근 들어 웹 개발에 관여된 사람이라면 한 번쯤은 들어 보았을 만한 용어이지요. 그저 또 하나의 새로운 언어 및 개발 프레임워크라고 하면 그다지 관심을 둘 필요는 없을 겁니다. 꼭 필요하게 되면 그 때 배워도 늦지 않을 테니까요.

그런데 위에 기술한 사이트들이 모두 채용하고 있다고 하면 이건 상황이 조금 다릅니다. 호기심이 동하지 않습니까? 도대체 Ruby는 뭐고 Rails는 무엇일까요? 간단히 알아 보도록 하지요.

Ruby, Script Language


Ruby는 Perl, Python, PHP와 같은 스크립트 기반의 프로그래밍 언어입니다. 간결하고도 강력한 객체지향 언어로, 유키히로 마츠모토라는 일본인에 의해 만들어졌습니다.

특징이라고 하면 다양한 언어의 특징을 골고루 물려 받았다는 점입니다. SmallTalk, Lisp, Perl 등의 언어로부터 여러 훌륭한 특성들을 가져 왔습니다. 마츠 (유키히로 마츠모토의 애칭)에 의하면 Ruby는 프로그래머의 행복을 위해 만들어진 언어라고 하는군요. 이 말에서 짐작할 수 있듯이 프로그래머가 Ruby의 기능을 사용하기 편리하게 되어 있다는 점이 가장 큰 장점입니다.


< 사진1 : 유키히로 마츠모토, Ruby의 창시자 >

만약 여러분이 개발자이시고, 호기심을 참지 못해 당장 Ruby를 배워 보고 싶으시다면 Programming Ruby 를 참고하세요. 책 한 권을 통째로 보실 수 있습니다.

그런데 루비가 처음 만들어진 년도를 알아 보면 약간 갸우뚱 해 집니다. 1993년에 처음 만들어졌거든요. 그럼 벌써 10년 이상 나이를 먹은 것이고, 자바보다도 나이가 많은데 왜 지금까지는 조용했을까요? 그리고 왜 이제 와서 각광을 받고 있는 것일까요? 그 답은 Rails가 가지고 있습니다.

Rails, Web application framework

Rails는 Ruby로 만들어진 웹 애플리케이션 개발 프레임워크입니다. 37Signals 사의 프로그래머인 David Heinemeier Hansson에 의해 개발되었죠.

                               <
< 사진 2 : Rails의 창시자인 David Heinemeier Hansson >

~ 이제 왜 Basecamp, Campfire와 같은 37Signals의 서비스들이 Rails로 개발되었는지 이해가 되는군요. 사실 레일스 자체가 Basecamp, Backpack, Ta-da List 서비스를 만들기 위해 개발된 프레임워크였습니다. 프레임워크를 성공적으로 개발한 후 David이 오픈 소스화 하여 공개한 것이죠.

이 프레임워크가 말 그대로 물건이어서, 개발자로 하여금 놀라운 생산성을 발휘하게 해 주었고 그 결과 매우 인기가 높아진 것이죠. 이러한 생산성을 증명하기 위한 몇 가지 인상적인 데모가 있습니다. “를 15 진 5 와 같은 데모가 대표적입니다.

물론 이러한 장점들 외에도, 앤드류 헌트와 데이비드 토머스가 그들의 저서인 실용주의 프로그래머를 통해 루비를 알린 것 역시 Ruby on Rails의 확산에 큰 기여를 했습니다.

이제는 Ruby on Rails에 관심을 가져야 할 때

아직까지 Ruby와 Rails에 대해 무심하게 지나쳐 버렸다면 이제는 생각을 좀 바꿔야 합니다. 해외의 유명 자바 개발자들이 Ruby on Rails로 옮겨 가고 있다는 점 (http://jroller.com/page/dgeary?%20entry=tipping_rails) 역시 Ruby On Rails의 가치를 반증한다고도 볼 수 있겠습니다. 물론 무수히 많은 웹 2.0 사이트들이 Ruby on Rails를 이용하여 개발되고 있다는 점도 간과해서는 안 될 겁니다.

개발자 여러분, 이제는 Ruby에 관심을 가지고 Rails의 세계에 빠져 보세요. 또 다른 세상이 열릴지도 모릅니다.

(발췌 : http://www.smartplace.kr/blog_post_70.aspx#P70)

+ Recent posts