기술자료

DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.

새로운 프로그래밍 동반자, 클라우드 IDE

기술자료
DBMS별 분류
Etc
작성자
dataonair
작성일
2014-06-23 00:00
조회
4474



국내 1호 클라우드 IDE인 구름 IDE와의 만남

새로운 프로그래밍 동반자, 클라우드 IDE



클라우드 IDE(Integrated Development Environment)가 뜨고 있다. 구글의 검색엔진에서 데스크톱 IDE보다 클라우드 IDE란 키워드의 검색도 가파른 증가세를 보이고 있다. 최근 클라우드 IDE를 서비스하는 실리콘밸리의 한 스타트업 기업은 벤처캐피털로부터 70억 원 이상의 투자를 확보하면서 관심과 부러움의 대상이 됐다. 이처럼 관심이 높아지고 있는 클라우드 IDE란 무엇일까 이 글에서는 그 방향성과 비즈니스 모델 등 최근 클라우드 IDE의 트렌드에 대해 살펴본다.



연세가 지극한 노장 프로그래머라면 그들의 기억 한 켠에는 아직도 이러한 기억이 남아 있을 것이다. 지극히 단순한 기능만 제공하는 텍스트 에디터로 한 줄, 한 줄 코드를 입력하던 기억 말이다. 혹여나 그 내용이 날아갈까 여러 번 저장을 하고서야 에디터에서 빠져나와 커맨드 라인에서 컴파일을 실행시키고, 모니터에 출력된 에러 메시지를 프린팅하거나 노트에 적는다. 그 때에는 이를 보고서 다시 에디터에서 코드를 디버깅을 하곤 했다.



IDE, 너는 누구냐

소위 비주얼 스튜디오 등으로 언급되는 다양한 IDE가 지금의 모습을 갖추기 이전에는 이처럼 다소 불친절한 프로그래밍 환경에서 프로그래밍을 해야만 했다. 프로그래머라면 익히 알고 있듯 IDE는 골치 아픈 프로그래밍 과정을 보다 효율적으로, 더 능률적으로 개선하기 위해 코드의 편집과 빌드, 디버깅 등 다양한 기능을 통합한 ‘올인원 PC’ 같은 소프트웨어다. 거대 소프트웨어 기업인 마이크로소프트가 내놓은 첫 번째 IDE인 비주얼 스튜디오는 1995년 처음 개발됐다. 2년 후에는 비주얼 스튜디오 97가 세상에 나왔고, 같은 해에 자바 프로그래머를 위한 볼랜드의 IDE인 J빌더가 출시됐다. 이러한 시대적 흐름을 볼 때 아마도 1995년에서 97년 즈음해서 IDE의 확산과 경쟁이 본격화된 것으로 보인다. IDE 경쟁은 IBM 캐나다의 내부 프로젝트에서 시작된 이클립스 프로젝트에 의해 커다란 변화를 맞게 됐다. 다양한 데스크톱 IDE들의 전쟁이 사라진 지금은 이클립스와 비주얼 스튜디오가 데스크톱 IDE 시장을 양분하고 있다.

tech_img1449.png

이러한 IDE 경쟁이 펼치지 한참 전인 1975년 최초의 상용 IDE가 개발됐다. 독일의 소프트랩 뮌헨(Softlab Munich)이 개발한 최초의 상용 IDE인 마이에스트로 I(Maestro 1)은 놀랍게도 1970년대 후반에 이미 전 세계 2만2000여 명의 프로그래머가 사용했다. 이러한 사용자 층을 바탕으로 소프트랩 뮌헨은 1970년 후반부터 1980년까지 초기 IDE 시장을 주도하게 된다. 그러나 지금은 미국 알링톤(Alington)에 위치한 정보기술박물관(The Museum of Information Technology)에서나 만날 수 있다.

tech_img1450.jpg

최초의 상용 IDE를 출시했던 소프트랩 뮌헨의 전경 사진이 위키피디아에 공개돼 있다. 사진의 이름이 Softlab1978-79인 것으로 미뤄볼 때 30년 전 모습으로 추정된다. 지금은 박물관의 한편에 전시돼 있지만 마이에스트로 I은 클라우드 IDE가 세상에 등장한 지금도 우리에게 시사하는 바가 크다. 코드 한 줄 한 줄을 작성하던 30년 전이나, 그때보다 비약적으로 좋아진 지금의 개발환경이나 프로그래머의 요구는 크게 다르지 않다. 프로그래머에게 필요한 요소는 과거나 지금이나 간결하고 분명한 것들이다. 프로그래머는 시간을 절약하고 반복되는 소모적인 작업을 줄여주며 보다 편리하게 개발할 수 있는 도구가 그것이다. 여기에 한 가지를 더 한다면 시간적, 공간적 또는 디바이스의 제약을 덜 받는 그런 융통성 있는 자유로운 개발 환경일 것이다.

이러한 프로그래머의 요구에 맞춰 IDE는 시대에 맞춰 변하고 새로운 기능 추가를 통해 편리함을 제공해왔다. 오늘 우리는 언제든 우리가 원할 때 네트워크에 연결할 수 있다. 게다가 클라우드라는 거대한 인프라 속에 살고 있다. 이러한 환경과 기술의 트렌드가 접목된 새로운 IDE에 대한 기대와 호기심을 갖는 것은 시대 변화에 따른 당연한 일이 아닐 수 없다.



클라우드 IDE, 무엇에 쓰면 좋을까

클라우드로 지금보다 더 나은 편의성을 제공하는 서비스가 등장하기 시작했다. 클라우드 IDE가 대표적이다. 클라우드 IDE를 아직 사용해보지 않았더라도 ‘클라우드’라는 단어만 봐도 그럴싸한 장점이 있을 것 같을 것이다. 클라우드 IDE의 장점은 과연 무엇일까

● 여행갈 때 노트북 들고 가세요
최근 가볍고 멋진 애플의 맥북 에어를 들고 다니는 프로그래머가 많아졌지만 이보다 화면이 넓은 노트북을 선호하는 프로그래머도 적지 않다. 출장길이나 여행을 갈 때 큼지막한 노트북을 두고 떠나고 싶어도 혹시나 하는 생각에 들고 가는 경우가 있다. 이미 짐작하겠지만 클라우드 IDE는 인터넷에 연결 가능한 곳이라면 기존의 개발환경을 그대로 불러올 수 있다. 해외에서도 호텔 비즈니스 센터의 PC를 급하게 사용해야 할 때 아이패드 등의 태블릿으로도 소트프웨어 개발이 가능하다. 무거운 노트북으로 인한 불편을 조금이나마 해소할 수 있는 것이다. 클라우드 IDE는 프로그래머에게 시간과 공간에 대한 제약을 줄여준다는 점만으로도 큰 축복이 아닐까

● 프로그래밍을 가르치고 배우는 학습·교육 공간
국내의 한 대학의 컴퓨터공학과에서는 클라우드 IDE 서비스로 프로그래밍 수업을 진행하고 있다. 최근 프로그래밍 교육은 유튜브 등의 단방향성 비디오 채널 중심의 학습보다 직접 프로그래밍하고 과제를 제출하고 평가까지 받는 다차원 교육에 대한 요구가 커져가고 있다. 이러한 새로운 교육 방식에도 클라우드 IDE는 유용하다. 이에 최근에는 대학과 특성화 고등학교에서도 클라우드 IDE를 이용한 프로그래밍 수업에 대한 관심이 높아지고 있다. 이러한 상황을 고려할 때 앞으로는 클라우드나 온프레미스(On-Premises) 형태의 IDE 서비스를 교육에 활용하는 사례가 더욱 늘어날 전망이다.

● 해커톤이나 팀 개발을 위한 프로그래밍 환경
최근 해커톤 열풍이 거세다. 크고 작은 다양한 형태의 해커톤이 국내에서도 활발하게 개최되고 있다. 해커톤에서는 참가자들에게 동일한 개발 환경을 제공해야 할 뿐 아니라 완성된 프로젝트를 손쉽게 제출할 수 있어야 한다. 클라우드 IDE는 이러한 것도 가능하다. 클라우드 IDE를 도입하면 해커톤 대회 때마다 매번 개발환경을 준비할 필요가 없다. 필요할 때 필요한 수량만큼 서비스를 이용하는 되는 것이다. 또 다른 측면에서 해커톤과 같은 개발 대회는 결국 협업이 전제되는데 클라우드 IDE는 이러한 환경에 이상적이다. 구글 독스나 마이크로소프트의 오피스365같은 클라우드 기반의 협업처럼 클라우드 IDE도 팀 레벨에서 코드를 작성하고 수정 및 실행할 수 있기 때문이다. 일정 규모를 넘어선 소프트웨어 개발을 한 명의 개발자가 할 수는 없다. 여러 명의 프로그래머가 함께 노력해야 하는 것이다. 이때 중요한 것은 원활한 협업이다. 이런 측면에서 클라우드 IDE는 팀 개발을 위한 좋은 도구임은 분명하다.

● 불필요한 시간을 돌려준다
아웃소싱 개발 프로젝트에 투입된 5명의 프로그래머에게 PC를 지급하고 각자 개발환경을 구축하는 상황을 가정해보자. 필요한 프로그램을 인스톨하고 환경을 설정하는 데에만 하루를 낭비하게 될 것이다. 또한 프로젝트에 새로운 프로그래머가 투입될 때마다 같은 과정이 반복된다. 약간의 과장이 있지만 이는 PC나 맥에 스탠드얼론(Stand-alone) 개발 환경을 준비하고 개발을 시작할 때 일반적으로 겪게 되는 일이다. 클라우드 IDE를 사용한다면 이러한 시간 낭비도 줄일 수 있다. 새로이 투입된 프로그래머에게 계정만 발급하면 IDE 환경 구축이 완료된다. 프로젝트에 맞춰 IDE 환경을 미리 커스터마이징했다면 계정 발급과 동시에 개발을 시작할 수 있는 것이다. 게다가 프로그래머에게 지급해야 할 디바이스가 윈도우나 리눅스, 심지어 구글의 크롬북이든 웹 표준을 준수하는 브라우저만 있다면 어떤 제품이든 상관없다. 클라이언트 플랫폼을 통일시킬 필요도 없는 것이다.

● 기업 보안 측면에서의 이점
기업의 규모와 관계없이 다양한 필요에 의해 외부 전문 개발업체나 능력 있는 프리랜서 프로그래머에게 용역을 주어야 할 때가 있다. 이 때에는 개발 프로젝트의 보안을 강화하기 위해 VDI와 같은 데스크톱 가상화를 이용하곤 한다. 그러나 대부분의 VDI는 클라우드 IDE에 비해 비교적 많은 비용이 들어간다. 예산이 한정돼 있다면 다른 대안을 생각해볼 필요가 있다. 클라우드 IDE를 도입하면 회사는 격리된 작업공간, 즉 개발 환경을 프로그래머에게 팀 단위로 제공할 수 있어 아웃소싱 개발이나 해외 프로그래머가 프로젝트에 참여하는 경우에도 보안을 강화할 수 있다. 또한 격리된 개발환경만 제공되기 때문에 프로젝트 종류 후 개발 환경을 삭제 또는 유지·보관하는 것도 가능해진다.



클라우드 IDE, 시장성은 있나

그렇다면 클라우드 IDE의 시장성은 어떠할까 시장조사기관마다 약간의 차이는 있지만 전 세계에는 약 1600만 명의 프로그래머가 있다고 한다. 여기서 프로그래머는 프로그램 개발을 업으로 삼은 이들을 말한다. 이러한 프로그래머들이 본인이 참여하고 있는 개발 과제와 프로제트의 성격, 개발 언어에 따라 적절한 IDE를 사용하고 있다. 특히 이들이 프로그램을 개발하는 장소가 고정돼 있는 경우도 있지만, 원격지에서 자유로이 개발하기도 한다. 물론 주말도 없이 직장에서, 그리고 항상 같은 자리에서 일하는 분도 많을 것이다. 또한 직업으로 프로그램을 개발하지 않지만 본인의 취미 생활이나 학습의 목적으로 프로그래밍하는 사람의 수도 50만 명이 넘는다고 한다. 이들은 취미로 개발한 프로그램의 소스 코드를 외부에 공개하거나 결과물을 다른 이들에게 배포하기도 한다.

50여만 명의 취미나 학습을 목표로 하는 이들이 돈을 내고 클라우드 IDE를 이용하다는 것에 다소 부정적인 생각을 가질 수도 있다. 그러나 제공되는 서비스에서 가치를 알게 된다면 신문을 구독하듯 그들도 클라우드 IDE를 이용하는 데 기꺼이 돈을 지불할 것이다. SaaS(Software as a Service)의 형태로 제공되는 IDE인 경우 전문 프로그래머는 물론 교육, 취미를 목적으로 한 개발하는 이들 모두를 고객으로 두고 있다.

지금부터는 구글 트렌즈(Google Trends)를 통해 클라우드 IDE 시장의 최근 동향을 살펴보자. 기본의 데스크톱 IDE 대비 클라우드 IDE의 관심도를 구글의 트렌즈로 살펴보면 <그림 3>처럼 이미 3년 전인 2010년에 클라우드 IDE에 대한 개발자의 관심이 데스크톱 IDE를 넘어선 것을 확인할 수 있다. 즉 여전히 많은 프로그래머들이 전통적인 데스크톱 IDE만을 사용하고 있지만 2010년을 기점으로 클라우드 IDE에 대한 관심과 기대가 높아지기 시작했다. 그런 기대치는 2012년에 이르러서는 데스크톱 IDE의 검색량을 클라우드 IDE가 넘어섰다.

tech_img1451.jpg

최근에는 이러한 클라우드 IDE에 대한 높은 관심과 비즈니스 가능성을 확인시켜준 사례가 등장했다. 실리콘밸리의 스타트업 기업인 나이트러스.IO(Nitrous.IO)를 그 예로 들 수 있다. 나이트러스.IO는 10여명으로 구성된 미국의 스타트업 기업으로 클라우드 IDE 서비스를 제공하고 있다. 이들은 최근 665만 달러, 한화로 약 71억 원 가량의 투자를 받는 성과를 얻었다. 짐작하겠지만 대규모 투자한 벤처캐피탈은 클라우드 IDE의 필요성과 성장 가능성을 높게 평가했다고 한다. 이 사례는 클라우드 IDE의 시장성을 점쳐볼 수 있는 하나의 잣대라고 할 수 있다.



클라우드 IDE, 비즈니스 모델

클라우드 IDE는 기존 데스크톱 IDE와 다른 비즈니스 모델을 가지고 있다. 클라우드라는 인프라와 IDE 서비스가 개발 플랫폼을 제공하는 형태이기 때문에 또 다른 파생력을 가지고 있다. 이해를 돕기 위해 대표적인 비즈니스 모델 몇 가지를 살펴보자.

● 서비스형 개발(Development as a Service)
클라우드 IDE 서비스의 가장 기본이 되는 비즈니스 모델은 서브스크립션(Subscription)이다. 클라우드를 사용하며 IDE 서비스를 파는 것이 엄밀히 말하면 SaaS 모델인 셈이다. 그러나 필자는 클라우드 기반의 IDE 서비스를 DaaS(Development as a Service)라고 부르고 싶다. DaaS라고 말하고 싶은 이유는 개발에 필요한 일련의 기능을 하나하나 서비스로 묶어 제공하고, 그 이용 대가를 받는 것이기 때문이다. 서비스를 호칭하는 이름이 무엇이든 이러한 서브스크립션 비즈니스의 경우 기존 데스크톱 IDE에 비해 차별화된 서비스를 제공해야만 재계약율이 높아져 안정적인 DaaS 비즈니스를 영위할 수 있다. 이러한 차별적인 요소가 결국 중요한 경쟁력이 되고 있다.

● 온프레미스
많은 기업들이 코드 유출이나 해킹과 같은 보안이슈 때문에 개발 중인 코드를 회사 외부 서버에 둘 수 없다고 규정하고 있다. 이로 인해 클라우드 IDE를 사용해 회사 내부에 필요한 여러 가지 시스템을 개발할 수 없다. 이 경우 회사 내부에 흔히 말하는 온프레미스 타입으로 독립된 IDE 시스템을 설치해 운영하면 외부 아웃소싱 시 우려되는 보안 문제까지 해결할 수 있다. 여기서 더 나아가 클라우드와 온프레미스 타입을 혼용한 하이브리드 타입으로 운영하는 것도 고려할 수 있다. 세계적인 인터넷 기업인 구글이나 페이스북은 자사의 내부에 클라우드 기반의 개발환경을 이미 구축한 것으로 알려져 있다. 전담 인원만도 수십 명이라고 한다.

● ISV를 위한 클라우드 IDE
세상은 넓고 ISV(Independent Software Vendor)는 다양하다. ISV는 특정 하드웨어나 제조업체에 의존하지 않고 여러 컴퓨터상에서 동작하는 애플리케이션을 개발하는 소프트웨어 벤더를 말한다. 이러한 ISV들이 가지고 있는 솔루션과 플랫폼은 끊임없이 개선되고 다른 솔루션과 연동을 시도하게 된다. 그렇다보니 ISV의 솔루션에 맞춘 개발환경을 열어 놓고 개선과 확장을 유도하는 경우가 종종 있다. 이때 클라우드 IDE는 그런 시도를 받아들일 수 있는 좋은 도구다. 개별 ISV에 특화된 IDE를 통해 이러한 니즈를 원만하게 충족시킬 수 있다.

● 프로그래밍 교육을 위한 교육용 IDE
프로그래밍 교육이 화두 중 하나다. 국내외에서 프로그래밍 교육에 대한 관심이 높아지고 있다. 모든 것에 스마트라는 접두어를 붙이면서 다시 불기 시작한 바람이 아닐까 싶다. 다양한 층의 사람들이 난생 처음 프로그래밍에 입문하거나 이미 프로그램 개발에서 손을 땐지 한참된 고참들도 새로운 언어를 배우고 있다. 이에 따라 최근 여러 특성화 고등학교나 대학교의 프로그래밍 교육에 클라우드 IDE를 도입하는 경우가 늘고 있다. 학교는 프로그래밍 교육을 위한 제반 환경 준비와 관리에 크게 신경쓰지 않아도 되고 학생들은 수업 후에도 프로그래밍 학습을 이어갈 수 있다. 강사는 실시간으로 프로그래밍 수업 결과를 학생들로부터 받아볼 수 있다. 제출된 결과도 자동으로 채점할 수 있다. 필요한 경우 학생들의 코드를 직접 열람할 수도 있다. 클라우드 IDE를 프로그래밍 교육에 활용하면 인터랙티브한 교육을 실천할 수 있는 것이다.

tech_img1452.jpg

클라우드 IDE는 이제 트랙을 반 바퀴쯤 뛰고 있는 현재 진행형 플랫폼이 아닐까 지난 수십 년간 사용해왔던 익숙한 데스크톱 IDE가 클라우드와 결합하면 기존 IDE가 제공하지 못했던 새로운 가치를 하나둘씩 제공하게 될 것이다. 그리고 이를 통해서 시장에 새로운 트렌드를 만들어가게 될 것으로 필자는 믿고 있다.

이러한 트렌드를 생각해볼 수 있도록 이 글에서는 코드보다는 클라우드 IDE 그 자체만을 살펴봤다. 다음 시간에는 본격적으로 국내 첫 클라우드 IDE인 구름 IDE의 주요 기술과 여기에 사용된 오픈소스 소프트웨어에 대해 살펴본다.