close

[블로터포럼]초고속 웹개발의 비밀 ‘루비온레일스’를 말한다

가 +
가 -

일곱번째 블로터포럼 주제는 좀 딱딱하고 어려운 내용입니다. 초고속 웹개발 플랫폼으로 주목받고 있는 ‘루비온레일스(Ruby On Rails)’를 다루고자합니다.

개발자들을 제외하면 루비온레일스는 많은 이들에게 생소한 이름입니다. 처음 들어보는 독자분들도 많을 것입니다. 아직은 낯설고 왠지 딱딱한 이미지가 풍기는게 사실입니다.

그런데도 왜 블로터닷넷은 루비온레일스를 이번 포럼 주제로 정했을까요? 루비온레일스를 통해 웹2.0 시대에 중요한 경쟁요소로 떠오르고 있는 개발 생산성 이슈를 다뤄보고 싶어서였습니다. 질문 한가지 드리겠습니다.

한달만에 만들 수 있는 웹사이트를 일주일만에 ‘뚝딱’ 만들 수 있다면 어떤 변화가 일어날까요? 변화의 대상은 단지 개발자들 뿐일까요? 그렇지 않다고 봅니다. ‘생산성 혁명’은 개발자는 물론 사용자와 기업 경영진들에게도 적지 않은 파장을 미칠 수 밖에 없습니다. 웹2.0시대, 초고속 웹개발을 기치로 내건 루비온레일스를 이번 포럼 주제로 정한 것도 바로 이 때문입니다.

루비온레일스는 미래가 아니라 이미 현실입니다. 최근 블로고스피어를 뜨겁게 달궜던 더블트랙의 미투데이, 엔씨소프트 오픈마루 스튜디오가 선보인 일련의 서비스들이 모두 루비온레일스로 개발된 것들입니다. 이들 서비스는 자바나 PHP언어를 쓸때보다 엄청나게 빨리 개발됐다는 후문입니다.

서론이 좀 길었군요. 이번 포럼에서 발표를 맡아주신분은 <Easy Start! 웹 개발 2.0 루비 온 레일스>의 저자 황대산씨입니다. 그는 자타가 공인하는 국내 루비온레일스 전문가이며 각종 행사장을 누비며 루비온레일스의 잠재력을 설파하고 다니는 에반젤리스트이기도 합니다.

황대산씨를 초대한 이번 포럼을 통해 독자분들이 루비온레일스란 무엇이고 어떤 특징이 있는지, 또 이 플랫폼이 인터넷 세상에 몰고올 변화들은 어떤 것들이 있는지 살펴볼 수 있는 기회가 됐으면 하는 바람입니다.

-일시: 2007년 4월 17일 오후 5시

-장소: 블로터닷넷 사무실

“루비온레일스의 철학은 쉽고 빠른 웹개발”

황대산: 참석하신 분들이 개발자들이 아님을 감안, 루비온레일스에 대한 전반적인 소개를 중심으로 발표를 진행하겠습니다. 루비온레일스는 ‘루비(Ruby)’란 프로그래밍 언어를 사용해 웹개발을 할 수 있는 프레임워크입니다. 덴마크 사람인 데이비드 하이네마이어 한슨이 혼자 만들었는데, 유연한 언어인 루비의 장점을 최대한 살린게 특징입니다.

일본에서 처음 탄생한 루비는 기존 언어로는 생각하기 어려웠던 것들을 가능하게 해줍니다. 개발 생산성도 매우 뛰어나죠. 실제로 자바나 PHP 개발자들이 루비온레일스를 처음 접하면 충격을 받을 때가 많습니다. 지금까지 애플리케이션 개발 플랫폼은 개선된점이 많았지만 ‘빅뱅’이라 부를만한 큰 혁신은 없었습니다. 여러 아이디어들이 실험됐지만 큰 변화는 없었습니다. 웹개발이란것도 분업화가 많이되다보니 부분적인 진전은 있었는데, 전체적인 변화는 크지 않았다고 볼 수 있습니다.

이런 상황에서 한슨은 한발 물러서서 좀 다르게 바라봤던 것 같습니다. 그는 생산성이 뛰어난 루비를 활용, 웹개발시 필요한 코드 작성의 상당 부분을 자동화시켰습니다. 중복되는 코드를 작성할 필요가 없게 한 것이죠. “개발자들에게는 당연한 얘기아니냐?”고 반문할지 모르겠습니다. 그러나 실제로 웹개발을 할때에는 중복되는 함수를 빼내도 중복되는게 많습니다. 레일스는 이 부분에서 많은 개선이 이뤄진 프레임워크입니다. 웹개발시 루비를 쓰면 코드를 5분의1에서 많게는 20분의1까지 줄일 수 있습니다.

앞서 밝혔듯 레일스는 한사람이 개발했습니다. 개인적으로 아주 중요한 대목이라 봅니다. 개발자 입장에서 남들이 구현한 프레임워크나 API를 쓰다보면 “만든 사람은 실제로 이걸 쓸까?”하는 질문을 종종 던지게 됩니다. 효용성이 떨어지는 경우가 많거든요. 분업화가 되다보니 만드는 것만 신경쓰지 어떻게 쓸지는 고민하지 않는 경향이 많습니다. 그러나 레일스는 개발자가 자기가 쓰려고 프레임워크와 API를 만들었습니다. 때문에 매우 편리합니다. 루비 개발자들은 다들 루비로 개발하는게 행복하다고 말합니다. ‘오버’하는게 아니라 쉽게 들을 수 있는 표현입니다. 한 사람이 만들었기 때문에 일관성도 뛰어나구요.

개발자의 시간은 중요합니다. 루비온레일스는 개발자들이 시간을 절약할 수 있도록 만들어져 있어요. 레일스는 개발자 시간이 가장 중요한 요소입니다. 루비온레일스는 자바보다 생산성이 5배에서 10배 정도 뛰어납니다. 때문에 많은 주목을 받고 있습니다. 일부에선 “이거 안하고 생존할 수 있느냐?”란 말까지 나오고 있어요. 미국의 경우 엔터프라이즈 분야로도 빠르게 침투하고 있습니다. 포털들도 관심을 갖고 있구요. 현재로선 루비온레일스는 소규모팀에 어울립니다. 분업 중심으로 업무 프로세스가 짜여진 SI업체는 적응기가 좀 필요할 거에요. 레일스로 개발할때는 스토리보드가 필요없습니다. 그래서인지 요즘은 기존 업체들에서도 파일럿 프로젝트에는 레일스를 도입하는 사례가 늘고 있습니다.

“개발자들도 예술적인 균형 감각이 필요하다”

황대산: 계속 강조했지만 루비온레일스는 개발 생산성이 매우 뛰어납니다. 개발 비용을 현저하게 낮출 수가 있다는 얘기입니다. 5명이 할 것을 1명이 하면 자연스럽게 비용이 떨어지는거죠. 생산성 향상이 가져오는 이점은 이뿐만이 아닙니다. 개발자들이 다양한 일을 해볼 수 있게 되는 것도 커다란 장점입니다. 지난해 루비 컨퍼런스에 갔었는데, 예전에는 상상하기 어려웠던 작은 프로젝트가 많은 것을 보고 놀란 경험이 있습니다. 아내가 동네 계모임을 하는데 쓸 금전출납부를 주말에 잠깐 시간을 내서 레일스로 ‘뚝딱’ 만들어준 개발자도 있었어요. 레일스의 등장으로 다양한 애플리케이션을 쉽게 만들어볼 수 있게 된겁니다.


제가 루비온레일스를 좋아하는 이유는 예전에 자바로 개발할때는 머릿속이 자바로 꽉차있었어요. 사용자 편의성, 사용자인터페이스(UI)는 신경쓸 틈이 없었습니다. 여러가지를 동시에 할 여력이 부족했던 겁니다. 그러나 루비온레일스를 쓰면서 달라졌습니다. 사용자 편의성 등도 고민하게 된거에요. 루비온레일스를 쓰게되면 개발자들이 어느정도나 기획적인 부분을 커버할 수 있느냐가 중요해 질거라고 봐요. 개발자들도 예술적인 균형 감각을 갖추는게 필요할 수 밖에 없는거죠.

물론 루비온레일스로 인해 “개발자들의 설자리가 없어지는 것아니냐?”란 시각이 있을 수 있습니다. 100% 틀린말은 아닙니다. 그러나 하나가 아니라 다양한 문제를 고민할수 있게 하고 새로운 프로젝트를 쉽게 실험해볼 수 있다는 점에서 루비온레일스는 개발자들에게 많은 도움이 될 것입니다.

루비란 언어는 역사가 자바보다 짧습니다. 때문에 자바보다 속도는 좀 느립니다. 서버가 더 필요할 수 있어요. 예를 들면 자바로 짜면 5개가 필요한데, 지금의 루비는 10대가 소요될 수 있습니다. 그러나 이게 근본적인 문제는 아닙니다. 10년전에는 자바도 마찬가지였습니다. 7~8년간 꾸준한 개선을 통해 자바는 지금의 속도를 확보하게된 겁니다. 루비 역시 시간이 가면서 속도 문제는 개선될 것입니다. 이에 발맞춰 루비온레일스는 더욱 주목받게 될 것입니다.

블로터: 쉽게 설명해주셨는데도 전문 분야이나보니 궁금증이 많이 생깁니다. 질문으로 해결할 수 밖에 없을 것 같은데요. 우선 간단한 질문 하나 드리겠습니다. 루비 매니아가 되기전에는 주로 어떤 언어를 많이 쓰셨나요? 또 앞으로는 계속 루비만 쓰실 건가요?

황대산: 실무에서 썼던 것만 보면 PHP가 1년반, 자바는 2년정도 이용했습니다. 펄(Pearl)도 3개월 정도 썼던 것 같구요. 앞으로 PHP는 쓰지 않아도 될 것 같습니다. PHP가 루비보다 빠르기는 하지만 장기적으로 보면 루비가 낫다고 봐요.

블로터:루비온레일스가 확산되면 결국 자바와도 경쟁할 수 밖에 없을 것 같은데요, 루비와 자바의 관계를 어떻게 봐야할까요?

황대산: 경쟁하는 것은 사실입니다. 미국의 경우 루비쪽에서 뛰는 사람들이 한때 자바 리더였던 사람들이에요. 그러나 대립은 아직 덜한 편입니다. 루비가 아직 속도가 느리고 라이브러리도 부족하다보니 자바의 도움을 받을 부분이 있거든요. 루비에서 자바 라이브러리를 불러다 쓸 수 있도록 해주는게 한 예가 될 수 있습니다.

블로터
: IBM이나 썬도 개발 플랫폼에서 루비를 지원하려는 듯 보입니다. 이런 상황에서 루비온레일스가 독립적인 개발 프레이워크로 성장해 나갈 수 있을까요?

황대산: MS나 썬에서도 루비를 끌어안으려는 움직임이 나타나고 있습니다. 개인적으로 썬은 자바버추얼머신(JVM)에서 루비를 돌릴 수 있게 할 것이라고 봅니다. MS도 루비CLR이란 프로젝트를 통해 루비에서 닷넷 라이브러리를 불러다 쓸 수 있게 하고 있습니다. 루비는 그 특성상, 이클립스나 넷빈즈가 별로 중요하지 않습니다. 이클립스가 루비를 지원하면 자바하던 사람들이 도움을 받는 정도라고 할까요.

블로터: 국내외적으로 루비온레일스로 만들어진 사이트들은 어떤 것들이 있나요?

황대산: 오픈마루, 더블트랙 미투데이 서비스 등이 루비온레일스로 만들어져 있습니다. 이외에도 신생 회사들이 레일스를 많이 도입하고 있는 것 같습니다. 미국의 경우에는 미투데이와 유사한 트위터닷컴이 레일스기반입니다.

블로터: 책을 쓰게된 계기는 무엇인가요?

황대산: 우리나라 개발자들은 영어를 부담스러워하는 것 같습니다. 책이 나와도 영어로 번역돼 나와야만 빨리 퍼집니다. 이런 상황에서 에이콘출판사로부터 책을 써보지 않겠느냐란 권유를 받았습니다. 욕심이 나기도 했지만 내가 하는일이 변화를 가져온다면 그것도 즐거운일이 아닐까 싶어 쓰기로 결정했어요. 내가 책을 쓰면 레일스 도입을 1~2년 빠르게 만들수 있지 않을까 하는 생각을 했던겁니다. 미국에서 나온 책은 고급서적이었기에, 보다 쉽게 쓰자는데 초점을 맞췄습니다.

블로터: 아까 발표에서 레일스는 기존보다 적은 인원으로 개발이 가능하다 했습니다. 그러면서 개발자들의 역할도 바뀔 것이라고 하셨는데요, 미래 개발자상에 대한 입장은 무엇입니까?

황대산: 말씀드렸지만 생산성이 향상될수록 개발자들은 더 많은 것들을 생각하게 될 것 같습니다. 사용자 편의성, UI는 물론 기획까지 커버할 필요가 있을 것입니다. 현재 레일스는 소규모팀에 적합한 프레임워크입니다. 몇명이 뭉쳐 도전적인 프로젝트에 뛰어드는 것을 가능하게 합니다. 예전같으면 꿈도 못꿨을 일이지만 뭔가 새로운 것을 해보고 싶은 개발자들이 레일스를 통해 다양한 실험들을 해볼 수 있게 된거죠. 큰조직을 떠나 자신의 이름을 걸고 서비스를 개발하는 사람들이 늘었으면 하는 바람입니다.

블로터: 루비온레일스를 배우는데 있어 어떤 자세가 필요할까요?

황대산: 레일스로 개발하는게 편리하기는 합니다. 그러나 시작하려면 우선 제대로 배워야 합니다. 어설프게 배운뒤 만들었다가 문제가 생기면 전문가가 투입돼도 대책이 없어지거든요.(웃음) 제가 루비온레일스를 시작한것은 2년정도 됐습니다. 저의 경우 일반적인 학습 패턴을 따라가지는 않았습니다. 레일스를 하기전에도 3년정도 웹개발을 했고, 전공이 수학이다보니 운영체제, 메모리에 대해서도 다 알고 있던 상황이었습니다. 그러나 다른 분들은 저처럼 할 필요는 없다고 봐요. 제가 쓴 책을 작정하고 3일만에 끝냈다는 분도 있더라구요.(웃음). 어째튼 레일스에는 혁신적인 기능들이 많습니다. 2~3주 정도 하다가 간단한 애플리케이션을 한번 만들어 볼 수도 있겠지요.

블로터: 루비온레일스의 속도 문제를 말씀하셨는데요, 속도가 중요한 시대임을 감안하면 큰 문제 아닐까요? 또 보안성은 어떻습니까?

황대산: 미국 트위터닷컴은 레일스로 만든 서비스로는 로드가 제일 큽니다. 그렇지만 별 문제가 없어요. 구글 등 세계 몇위안에 드는 사이트를 운영하다면 어떨지 모르겠지만 그렇지 않으면 속도 문제는 크지 않다고 봅니다. 보안성이 떨어질 이유도 없습니다. 레일스 자동화 모듈안에는 보안기능이 기본으로 들어가 있거든요.

블로터: 프리랜서 개발자로 뛰면서 강연 등에도 활발하게 나가시는데요, 직접 자신의 이름을 건 웹서비스를 만들 계획은 없으신가요?

황대산: 하반기에는 내놓을까 하는 생각을 좀 하고 있습니다.

블로터: 오늘 바쁘신데 참석해 주셔서 감사드립니다. 루비온레일스에 대해 많은 것을 배울 수 있는 의미있는 시간이었던 것 같습니다.

황대산: 이해가 많이 되셨는지 모르겠어요. 오늘 불러주셔서 감사합니다.

네티즌의견(총 0개)