낙서장

왜 자바개발자가 루비,레일스를 배워야할까?

falconer 2008. 2. 27. 08:42

왜일까요? 시장의 주류로 확실히 자리 잡고 있는 자바 진영의 개발자들이, 왜 굳이 루비라는 낯설은 언어, 레일스라는 낯설은 프레임워크를 익혀야 할까요? 얼마 전에 출간된 ‘자바 개발자를 위한 레일스‘의 역자서문 내용을 바탕으로 제가 생각하는 그 이유를 간단히 풀어놓아보겠습니다.

왜 자바 개발자가 레일스를 배워야 할까요? - 변화하는 Java EE

  • Web 2.0 , 더 빠르게 변화하는 시장

시장은 점차 빠르게 변화하고 있습니다. 애플리케이션은 이제 사용자와 함께 성장해야 하고, 요구들은 실시간으로 추가됩니다. 좀 더 이런 변화에 빠르고 기민하게(agile) 대응할 수 있도록 해주는 것이 바로 레일스 프레임워크입니다.

  • 단순성과 생산성 , 즐거운 웹 프로그래밍

반면에, 웹/엔터프라이즈 프로그래밍은 그야말로 반복작업의 진수라는 인식이 팽배합니다. 왜일까요? 레일스는 단순성과 관례를 통해 개발자가 창조적인 작업에 집중할 수 있게 해줍니다. 아, 생산성과 즐거움은 덤이지요^^

  • Agile Java EE

자바 엔터프라이즈 플랫폼은 이미 그 자체로 너무 비대하고 복잡해져있습니다. 많은 이들이 이 문제를 거론하고, 자바진영에서도 좀 더 기민한 프로그래밍 모델과, 플랫폼을 고민하고 있습니다. Sun이 점차 JRuby에 대한 지원을 늘려가는 것이 그런 적극적인 반영이라고 할 수 있겠구요. 비대한 Java EE를 좀 더 가볍게 해줄 구원투수는 루비와 레일스 프레임워크가 되지 않을까 생각해봅니다.

rod.jpgdhh1.jpg

누가 더 매력적인 해커일까요? Java EE는 좀 더 매력적으로 바뀌어야 할 필요가 있습니다 (왼쪽은 Spring framework의 아버지 Rod Johnson, 오른쪽은 Rails의 아버지 David Heinemeier hansson)

왜 자바 개발자가 루비를 배워야 할까요? - 달라진 문제, 즐거운 도구

  • 레일스의 장맛의 비결 , 루비

사실, 레일스라는 웹 애플리케이션 프레임워크가 인기를 끌고, 그 세련됨을 자랑할 수 있는데는, 루비라는 언어의 특성이 큽니다. ‘간결성,일관성,유연성’이라는 루비의 원칙들이 군데군데 잘 녹아든 결과물이 바로 레일스이니까요.

  • 변하지 않는 것은 없다. 모든 것은 동적

루비는 동적 타입언어로써, 극도의 유연성을 제공합니다. 타입과 인터페이스에 대한 걱정과 부담을 덜 수 있지요. 필요하면 코어 클래스들도 수정할 수 있습니다. 자바로 구현하기 위해 한참을 돌아가야했던 길을, 간편하게 지름길을 이용해 갈 수 있는것이지요.

  • 관례를 지키면 모든 것이 즐겁다

자바는 기본적으로 다양한 선택의 여지에 기반해 확장성을 추구합니다. 인터페이스를 따른 다른 구현이나, 다양한 설정을 통해, 변화에 대응하려고 했던 시도였죠. 하지만, 아시다시피 이 설정들 자체가 큰 부담이 되는 경우가 많습니다. 루비는 기본적으로 ‘설정보다는 관례’를 추구합니다. 미리 약속해둔 기반에서 프로그램을 짜고, 정말 변화가 필요할때는 자유롭게 재정의(overriding)하자는 것이지요. 이런 접근 방식의 차이가, 개발상의 번거로움들을 크게 덜어 줍니다.

prag.jpgready.jpg

‘실용주의 프로그래머’에서는 1년에 한 가지씩 새로운 언어를 배우라고 말합니다. 올 해, 여러분의 지식 포트폴리오(Knowledge Portfolio)에는 어떤 새로운 언어가 들어있나요?

개발자 그리고 지식근로자

‘내 언어의 한계는 내 세계의 한계다’ 라는 비트겐슈타인의 말처럼, 개발자에게는 프로그래밍 언어와 프레임워크가, 세상을 인지하고 구축 하는데 쓸 수 있는도구라고 할 수 있겠습니다. 개발자는 프로그래밍언어로 의도를 표현합니다. 그리고 동시에, 그 언어를 통해 문제를 해결하는데 필요한 사고들을 습득하겠지요. 즉, 이렇게 더 다양한 개념들을 배워갈수록,개발자가 문제해결에 쓸 수 있는 도구들은 더 풍부해지는 셈입니다. 이번 문제는 닭잡는칼로, 다른 문제는 소잡는 칼로. ‘실용주의 프로그래머’란 책에서도 이런 맥락에서, 매년 새로운 언어를 하나씩 습득하라고 말합니다.

하지만, 단순히 도구를 늘리기 위해서가 아니라, 거기에는 한가지 필연적인 이유가 더 있습니다. 바로, 개발자는, 자신의 능력을 바탕으로 하는 지식근로자라는 것이 아닌가 합니다. 재화 대비 산출만이 아닌, 개발자 개인의 창조성과 지적 자산이, 조직의 그리고 자신의 유일의 경쟁력이 되는 무한 경쟁의 시대에 우리는 살아가고 있습니다. 이런 시대의 변화는 더 치열한 경쟁이라는 개개인의 위기를 의미하기도 합니다. 지금까지의 사회보다 더 많은 노력을, 일에 쏟아야 하지요. 동시에, 근로자 본인에게 더 많은 기회를 부여하기도 합니다. 자신의 경쟁력을 스스로 높일 수 있는 사회. 창조성의 발현을 통해, 자신의 일을 그자체로써 즐길 수 있는 사회 . 그리고 코드 하나에 희열을 느끼고 열정을 발산하는 그 모습에서, 저는 다름 아닌 우리 개발자들에게서야말로 가장 희망적인 지식근로자의 모습을 발견할 수 있는 것이 아닌가 생각해봅니다.

digital_rights.jpg

  ‘공돌이’나 ‘Geek’이 아닌, ‘지식근로자’로 거듭나야 하는 시대.

바로 지금 시작하세요

그렇다면 언제 배우면 좋을까요? 빠르면 빠를 수록 좋지 않을까요? 인사이트 블로그의 포스팅 제목처럼 ‘자바 개발자의 미래를 위한’ 작은 투자라고 볼 수 있을테니까요. 일단 가볍게 시작하실 수 있는 지름길을 몇가지 알려드리겠습니다.

집에서 쓰는 PC에는 귀찮아서 개발환경 하나 안깔려있다면, 이참에 위 패키지를 통해 Apache+Mysql까지 원샷에 설치해보세요

  • 자바 개발자를 위한 선택, JRuby 1.1

jirb를 실행시켜서, 대화형 콘솔에서 자바 라이브러리를 불러들여 마음껏 사용해보세요. 타입 없는 즐거움을 만끽해보는 겁니다

  • 자바 개발자를 위한 모든 준비를 하나로 , Netbeans

천대받던 IDE, Netbeans는 이제 가장 루비/레일스를 잘 지원하는 IDE로 거듭 태어났습니다. 패키지를 설치하시면 JRuby가 기본적으로 설치되고, Rails를 비롯해 각종 루비젬들을 간편하게 설치할 수 있습니다. 루비 커맨드요? 메뉴에 다 나와있습니다. 자동완성은 기본이죠~  Goldspike를 통해 war화일로 만든 JRuby/Rails 프로젝트를 Glassfish 서버에 배포하는 감동을 체험해보세요^^

ruby_irb_hello.png

자, 오늘 밤 자기 전에 일단 Hello Ruby , Hello Rails 3번씩 찍어보는 걸로 시작해보는 건 어떨까요? :)


출처: http://humbleprogrammer.net/blog/?p=296