아이티랩 - [IT열쇳말] 루비

우리가 쓰는 많은 프로그래밍 언어는 북미나 유럽권에서 나온 경우가 많다. C언어는 미국, 자바는 캐나다, 파이썬은 네덜란드, 스칼라는 스위스에서 나오는 식이다. 이러한 환경에서 주류 언어이자 주목받은 신인 언어 중 아시아 지역에서 탄생한 유일한 언어가 있다. ‘루비(Ruby)’라는 프로그래밍 언어다. 최근엔 그 인기가 주춤하지만 미국과 일본에서 여전히 큰 사랑을 받는 개발 언어, 루비에 대해 알아보자.

▲루비 로고 (출처: 루비 홈페이지)

▲루비 로고 (출처: 루비 홈페이지)

‘루비’의 아빠, 마츠모토 유키히로

▲마츠모토 유키히로

▲마츠모토 유키히로

루비는 간결함과 생산성을 강조한 동적 객체 지향 스크립트 프로그래밍 언어다. 동시에 오픈소스 언어이기도 하다. 일본인 개발자 마츠모토 유키히로가 1993년에 처음 개념을 구축한 이후 1995년 외부에 공식 공개됐다. 마츠모토 유키히로는 고등학생 시절부터 프로그래밍에 관심이 많았다. 대학교에서도 프로그래밍 관련 학과에서 공부한 뒤 바로 개발자로 취직을 했다.

googletag.cmd.push(function() { googletag.defineSlot('/6357468/0.Mobile_Article_intext_1_300_250', [300, 250], 'div-gpt-ad-1468307418602-0').addService(googletag.pubads());googletag.pubads().collapseEmptyDivs();googletag.pubads().enableSyncRendering();googletag.enableServices();googletag.display('div-gpt-ad-1468307418602-0'); });

하지만 그가 신입사원 시절이었던1990년 후반은 일본 버블경제가 붕괴됐던 시기였다. 많은 회사에서 인력이 감축되고, IT 관련 프로젝트가 잇달아 취소됐던 때이기도 했다. 젊은 개발자였던 마츠모토는 취소된 프로젝트를 처리하거나 유지보수 업무 정도만 맡았는데, 그러보니 시간이 많이 남게 됐다. 그는 남은 시간에 자신만의 프로젝트를 시작하기로 마음 먹었고, 그게 바로 새로운 언어를 개발하는 것이었다.

그는 루비 언어를 ‘프로그래머의 단짝 친구(a programmer’s best friend)’란 부제를 붙여놓고 개발했다. 직관적으로 이해하기 쉬운 문법으로 기계를 위한 언어가 아닌, 사람을 위한 프로그래밍 언어를 개발하고 싶었기 때문이다. 루비라는 이름은 ‘펄’이라는 프로그래밍 언어에 영향을 받았다. 당시 ‘진주(Pearl)’라는 단어와 동일한 발음의 프로그래밍 언어 ‘펄(Perl)’이 유행했고, 비슷하게 보석 이름을 그의 프로그래밍 언어 이름으로 짓자는 의견이 나왔다. 그래서 다이아몬드, 에머랄드 등 여러 단어를 놓고 저울질하던 중 짧고 부르기 쉬운 ‘루비’를 최종 이름으로 정했다.

현재 마츠모토 유키히로는 루비 언어를 관리하는 동시에 히로쿠, 라쿠텐, 바실리 같은 몇몇 기업들에서 자문을 맡아 기술을 개발하고 있다. 그는 트위터 프로필에서 자신을 ‘루비의 아빠’라고 소개한다.

▲마츠모토 유키히로는 트위터 프로필에서 자신을 ‘루비의 아빠’라고 소개하고 있다. (출처: 마츠모토 유키히로 트위터 페이지)

▲마츠모토 유키히로는 트위터 프로필에서 자신을 ‘루비의 아빠’라고 소개하고 있다. (출처: 마츠모토 유키히로 트위터 페이지)

생산성과 쉬운 사용법이 장점

루비 언어의 가장 큰 장점에는 ‘높은 생산성’을 꼽을 수 있다. 마츠모트 유키히로는 인터뷰에서 “효율성과 생산성, 높은 성능을 프로그래밍의 가장 중요한 요소다”라며 “루비가 자바같은 다른 언어보다 속도가 느리다는 이야기도 있지만, 생산성 측면은 루비를 따라올 수 없을 거라고 생각한다”라고 밝히기도 했다.

생산성이 높다는 건 쉽고 빠르게 원하는 기능을 구현할 수 있다는 의미를 내포한다. 따라서 루비는 직관적이고, 다른 언어보다 배우기 쉽다. 실제로 루비 공식 홈페이지에선 20분 가이드’라는 메뉴로 루비의 기본 개념을 알려주고 있는데, 그만큼 루비가 간단하고 이해하기 쉽다는 뜻이기도 하다. 확장성과 이식성이 높고 유지보수를 보다 쉽게 할 수 있는 것도 장점이다.

루비는 한국에서는 별로 사용되지 않지만 미국과 일본에서는 꽤 많이 사용됐다. 2014년 진행한 마츠모토 유키히로 인터뷰에 따르면 “미국에서는 50% 이상이, 일본에서는 70% 이상의 웹사이트가 루비 언어로 개발됐다”라고 한다. 특히 2006년부터 트위터, 그루폰, 깃허브 등 대형 웹사이트가 루비로 웹사이트를 구축하면서 많은 관심을 받았다. 프로그래밍 언어 인기순위를 집계하는 티오베는 루비를 2006년을 대표하는 ‘올해의 프로그래밍 언어’로 선정하기도 했다.

▲루비 언어 인기도 추이 (출처: 티오베)

▲루비 언어 인기도 추이 (출처: 티오베)

2012년 온라인 교육 서비스 유데미 자료에 따르면 페이스북이 PHP, 트위터가 루비, 구글이 파이썬을 이용하면서 루비는 가장 떠오라는 모던 프로그래밍 언어에 선두자리에 올라섰다. 하지만 최근엔 그 인기가 주춤한 상태다. 티오베 기록을 보면 2010년 이후 계속 인기는 하락세였다. 루비 홍보에 가장 많이 활용됐던 트위터는 루비를 버리고 스칼라로 서비스를 이전하겠다고 2011년 발표했다.

루비는 웹 개발을 시작하는 사람들이 접하기 좋은 언어다. 하지만 반대로 대규모 서비스나 많은 사용자들이 접속하는 웹사이트를 만들기에는 부적합하다고 평가되기도 한다. 속도가 다른 신생 언어에 비해 느리고 기술에 대한 문서화가 아직 부족하다는 점도 단점으로 꼽히기도 하다.

루비에 대한 관심이 예전같이 폭발적이진 않지만, 여전히 루비를 이용해 개발되는 서비스는 많다. 깃허브는 ‘지킬‘이란 서비스를 비롯해 내부의 다양한 기능을 루비로 구현하고 있다. 구글의 ‘스케치업‘도 루비로 개발됐으며, NASA는 내부 연구소에서 시뮬레이션 기술을 만들 때 루비를 활용했다.

▲한국 루비 사용자 모임 (출처: 한국 루비 사용자 모임)

▲한국 루비 사용자 모임 (출처: 한국 루비 사용자 모임)

오픈소스 언어인 만큼, 루비의 커뮤니티 활동도 꽤 활발한 상태다. 현재 루비는 한 달에 한두 번 꼴로 새로운 버전이 업데이트 되고 있으며, 2016년엔 2.4.0버전까지 나온 상태다. 루비 컨퍼런스는 일본 뿐만 아니라 대만, 미국 등 다양한 나라에서 열리고 있다. 또한 매년 루비 커뮤니티에선 인상적인 활동을 펼친 사람을 뽑아 ‘루비 커뮤니티의 신인상’과 함께 상금을 주기도 한다. 2016년 상금은 100만엔, 우리돈 약 1천만원이었다. ‘루비 경진대회’도 해마다 일본에서 열고, 개발자들에게 루비의 특징을 잘 살린 소스코드를 작성해보도록 유도하고 있다. 국내에서도 한국 루비 사용자 모임이 활동 중이다.

루비를 위한 프레임워크, ‘루비온레일즈’

▲루비온레일즈 로고 (출처: 루비온레일즈 홈페이지)

▲루비온레일즈 로고 (출처: 루비온레일즈 홈페이지)

루비 언어의 성장 배경에는 ‘루비온레일즈(Ruby on Rails)’가 자리잡고 있다. 루비온레일즈는 ‘레일즈’라는 루비 언어로 작성된 오픈소스 웹 애플리케이션 프레임워크다. 줄여서 ‘레일즈’라고 부르기도 하며, 오픈소스 기술이다. 루비온레일즈는 덴마크의 데이비드 하이네마이어(David Heinemeier Hansson)가 처음 만들었다. 지금은 10여명의 핵심 기여자들이 레일즈 코어 개발팀으로 활동하고 있다.

레일즈는 개발자가 프로그래밍을 시작할 때 필요한 초기 준비나 가정들을 쉽게 만들수 있는 도구를 제공해 웹 애플리케이션 프로그래밍을 더 쉽게 진행하도록 돕는다. 레일즈 공식 홈페이지엔 “레일즈는 다른 언어와 프레임워크에 비해서 더 적은 코드로 된다”라고 소개돼 있다. 또한 레일즈는 ‘레일즈 방식(The Rails Way)’이라는 기준에 따라 기술이 개발되고 있는데, 대표적인 방식은 아래와 같다.

  • DRY, “Don’t Repeat Yourself (반복하지 말 것)” – 이 원칙은 ‘같은 코드가 존재한다면 그것은 나쁜 것’을 의미합니다.
  • 설정보다 관습(Convention Over Configuration) – 이 원칙은 여러분이 원하는 기능들에 대해서 일정한 가정을 바탕으로 해결책을 제공해 작은 단위의 끝없는 설정 파일을 줄여줍니다.
  • REST는 웹 애플리케이션의 최고의 패턴이다 – 리소스와 표준 HTTP 요청(HTTP verb)에 적합한 웹 애플리케이션 개발은 가장 빠른 방법입니다.

(출처 : 레일즈 공식 홈페이지 – ‘2. 레일즈란 무엇인가?’)

레일즈는 트위터나 깃허브같은 기업이 사용했을 뿐 아니라 과거 다음, 카카오 등이 국내에서 활용해 화제가 되기도 했다. 현재 레일즈는 2016년 5.0.1버전까지 출시된 상태다. 레일즈와 루비는 앞으로도 기술을 함께 키우며 발전해나갈 전망이다.

이 글은 ‘네이버캐스트→테크놀로지월드→용어로 보는 IT’에도 게재됐습니다. ☞‘네이버캐스트’ 보기

의견 0 신규등록      목록