본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

2013년 04월 19일 (금)

ⓒ ITWorld, Peter Wayner | InfoWorld



2~3차례의 IT 버블이 터지기 오래 전 세상은 웹 브라우저에서 문서를 편집하는 것이 얼마나 흥미진진한 일인지를 알게 됐다. 초기 제품들은 단순했다. 하지만 오래 지나지 않아 조호(Zoho)와 구글(Google) 같은 회사들이 마이크로소프트 오피스(Microsoft Office)에 필적하는 웹 기반 애플리케이션들을 발표하기 시작했다. 심지어 오늘 날에는 마이크로소프트조차 브라우저 기반의 문서, 스프레드시트, 프레젠테이션 편집 툴을 판매하고 있다. 이제 상상할 수 있는 거의 모든 텍스트 기반 문서를 웹에서 편집할 수 있다.


그러나 한 가지 예외가 있다. 바로 소프트웨어이다. 현업에서 일하는 직원들이 구글 독스같은 온라인 툴을 자유롭게 사용하는 반면 프로그래머들은 클라우드 기반의 간편한 툴조차 쓰지 못하고 있다는 것은 아이러니하다. 통상적으로 프로그래머들은 이런 툴에 있어서 다른 사람들보다 앞서 있는 사람들이기 때문이다. 프로그래머들은 정작 자신의 개발 업무에는 더 어려운 방식으로 일을 하고 있는 것이다.


지난 주 필자는 애플에서 X코드 툴을 오랜 시간을 들여 다운로드해야 했다. 수백 줄의 코드를 연동시키기 위해서 기가바이트의 라이브러리를 개인 장비에 호스팅 해야 하는 것이다. 특히 애플은 2~3주에 한번씩 업데이트를 배포하는데 그 때마다 이들 전체를 다시 다운로드해야 한다.


그러나 이런 아이러니한 공백 상태가 (예상보다 느리기는 하지만) 점점 바뀌고 있다. 많은 개발자들이 클라우드 기반 저장 서비스, 그리고 함께 제공되는 클라우드 기반의 빌드(Build) 관리 툴을 사용할 수 있게 됐다. 대기업 IT 부서들은 이미 허드슨(Hudson)/젠킨스(Jenkins)를 이용해 코드와 메인 트리(Main tree)를 관리하고 있다. 심지어 이들 툴을 서비스로 제공하는 있는 기업들도 일부 있다.


문제는 가장 기본적인 코드 개발 업무조차 가장 기본적인 사업 개발 업무, 마케팅 업무와는 상당한 거리가 있다는 것이다. 프로그래머들은 서서히 이를 따라잡고 있으며 브라우저 기반의 IDE가 하나둘씩 나타나고 있다. 필자는 시장 발전 상황을 알아보기 위해 며칠 동안 많은 클라우드 IDE를 조사했다. 일부 서비스에서 코드를 작성하고 빌드(Build) 버튼을 누르고 결과물을 지켜봤다. 초기의 전신전보 서비스를 테스트하는 것과 같은 느낌이었다.


좋은 소식은 브라우저 기반의 IDE가 훌륭해 보인다는 것이다. 일부 서비스의 경우 한쪽에는 파일 트리, 다른 한쪽에는 편집 창을 배치한 전통적인 IDE 레이아웃을 채택해 마치 이클립스(Eclipse)를 브라우저에 옮겨 놓은 것 같았다.


반면 기존 툴과는 다른 구조를 채택한 IDE도 있었다. 코드를 임의로 수정할 수 있는 웹 기반 마이크로 에디터(Micro-editor)가 대표적으로 상당수가 코드미러(CodeMirror) 같은 오픈소스 프로젝트를 이용했다. 가장 큰 혁신은 브라우저에서 실행되는 언어와 함께 시작되고 있다. 더 이상 비효율적인 방법으로 자바스크립트(JavaScript) 페이지를 개발할 필요가 없다. 브라우저에서 모든 테스트가 가능하기 때문이다. 브라우저가 '코드의 본가'가 되는 것이다.


단 지나치게 긍정적이어서는 곤란하다. 현재 주요 플랫폼 가운데 하는 AJAX이다. 심지어 IDE처럼 보이지 않는 IDE도 있다. 예를 들어, 워드프레스(WordPress)의 에디터 모듈을 이용해 웹 사이트의 PHP와 HTML을 개발할 수도 있다. 실제로 워드프레스는 아주 유용한 툴이다. 간편한 편집기를 쉽게 찾을 수 있기 때문에 매일 HTML 태그를 손보게 될지도 모른다.



<한눈에 보는 클라우드 IDE>


Killer cloud IDEs at a glance



클라우드의 '힘'과 긴 대기시간

'빌드' 버튼을 클릭함과 동시에 브라우저 기반 IDE의 단점 가운데 하나가 드러난다는 것이 '좋지 않은 소식'이다. 브라우저 기반 IDE에는 장점이 많지만 대기시간이 긴 것이 단점이다. 물론 사용하고 있는 인터넷의 속도와 코드 종류에 따라 다를 것이다. 필자의 경우 시간대, 날씨에 따라 차이가 컸다.


일부 클라우드 IDE는 용납할만한 수준의 성능을 보이기도 하낟. 그러나 충분한 컴퓨팅 파워와 램을 지원하는 로컬 장치 IDE에서 작업을 할 때와는 비교할 수 없다. 대부분은 네트워크 지연이 문제다. 클라우드의 경우 CPU를 공유하고 있는 것도 이유다. 분명한 것은 8코어 컴퓨터에서 작업을 할 때보다는 느리다. 항상 그런 것은 아니다. 대부분의 코드 구축 작업은 그다지 복잡하지 않다. 따라서 네트워크 지연 문제를 눈치채기도 쉽지 않다.


대형 프로젝트의 경우 클라우드가 도움이 될 수 있다. 예를 들어 클라우드비스(CloudBees)는 코드 개발을 위한 많은 장치들이 지원한다. 예를 들어 빌드가 동시에 실행될 수 있는 N개의 독립적인 작업으로 구성되어 있다고 가정하자. 여기서 N의 값이 크다면 쿨라우드의 N개 장치에서 N개의 작업이 실행될 확률이 있다. 일반적인 책상 위에 놓여 있는 8코어 장비에서는 불가능한 일이다.


따라서 클라우드 IDE의 장점은 코드 종류와 빌드의 크기에 따라 좌우된다. 브라우저에서 실행되는 웹 애플리케이션 개발자들에게 가장 적합할 것이다. 클라우드의 파일 저장 기능도 중요한 장점 중 하나다. 이런 작업에서는 대기시간이 큰 문제가 되지 않는다.


지리적으로 분산된 개발자들로 구성된 팀이 동일한 파일을 작업하는 경우에도 클라우드 IDE는 매우 유용하다.


스태시(Stash) 등 기트(Git) 호스팅 서비스와 지라(Jira) 같은 이슈 관리 소프트웨어로 잘 알려진 개발 툴 회사인 아틀라시안(Atlassian)은 파이어베이스(Firebase)를 이용해 페어 프로그래밍(Pair Programming, 두 명의 프로그래머가 하나의 워크스테이션에서 협업을 하는 애자일 소프트웨어 개발 기법)을 한다. 이는 서로 떨어진 개발자들의 협업 역량을 확실하게 향상시키는 방법이다. 여기서 IDE는 지리적으로 분산된 페어 프로그래밍 작업을 지원한다. 어떤 의미에서는 페어가 아닌 '트리플'(Triple), '쿼드플'(Quardruple) 프로그래밍이라고 지칭해야 할지 모른다.


반면 루비(Ruby)나 자바(Java) 같은 코드 중점 개발팀이 클라우드 기반 IDE를 도입하기까지는 더 시간이 걸릴 전망이다. 가장 큰 이유는 네트워크 대기시간이다. 필자는 개발-디버깅-수정 작업을 하면서 이클립스의 강력한 기능이 그리웠다. 또 인터넷이 제대로 연결되지 않는 경우도 있었다.


아이패드 같은 장치용 앱을 개발하는 엑스코드(Xcode) 같은 툴은 가장 마지막에 클라우드 기반 IDE를 도입할 것이다. 단 자바스크립트(JavaScript)와 HTML 기반의 모바일 앱을 개발하는 프로그래머들은 예외다. 이들에게 브라우저는 너무나 자연스러운 환경으로, 작업하기에도 더없이 좋은 환경이다.


지금까지 지적한 단점들은 시간이 지나면서 대부분 해소될 것이다. 브라우저 코드가 '스마트'해지고 있고, 로컬 파일, 로컬 데이터, 대용량 라이브러리가 이미 HTML 5 호환 브라우저로 옮겨가고 있기 때문이다. 이들 툴을 만드는 사람들은 향후 자신의 고객들에게 더 많은 기능과 역량을 제공하게 될 것이다. 즉 긴 대기시간 문제가 해결되는 것은 시간문제라는 것이다. 그 속도도 점점 빨라지고 있어 앞으로 2~3년이면 데스크톱 기반 IDE의 상당수가 사라질 것으로 전망된다.



JS피들 : 자바스크립드가 적용된 피들

JS피들(JSFiddle)은 자바스크립트, HTML, CSS를 3개의 브라우저 창에서 간단히 작성한 후 4번째 창에서 그 결과를 확인할 수 있는 툴이다. 코드는 간단하고 빠르고 효율적으로 컴파일할 수 있도록 브라우저가 최적화되어 있다. 코드 라이팅과 테스팅을 반복할 수 있도록 설정하는 것도 쉽다. 코드를 색상으로 깔끔하게 정리해주는 기능도 훌륭하다.


JS피들은 가장 최근에 선보인 클라우드 IDE다. 웹 페이지에서 API를 직접 작업해 많은 웹을 수정할 수 있도록 되어 있다. 필자는 구글이 제공한 창에서 구글 맵 코드를 몇 차례 디버깅 해봤다. 브라우저에 포함된 디버거만 가지고도 작업이 가능했다.


브라우저 기반의 자바스크립트 에뮬레이터에서 파이썬을 실행시키는 유사한 툴인 파이썬 피들(Python Fiddle)과 마찬가지로, JS피들은 코드 개발 보다는 수정 또는 조정을 위한 툴이다. 이 툴은 임베디드 프레임(Embedded Frames)에 가장 적합한 작은 소형 블록인 피들(Fiddles)을 구축한다. JS 피들은 개발한 '퍼블릭 피들'을 호스팅하게 된다. 더 나아가 함께 일하는 동료가 이를 수정할 수도 있다. 단 정교한 히스토리를 제공하지 않으므로 작업을 되돌릴 때 주의해야 한다.


일부 개발자들은 JS피들을 실험적인 툴이라고 평가한다. 앱의 서버 측면 작업을 많이 지원하지 않기 때문이다. 예를 들어 API를 쉽게 요청할 수 있지만 API를 구축할 수는 없다. 웹 페이지를 구성하는 코드 작업을 원하는 개발자들에게는 큰 단점이 될 수 있을 것이다.



아이스니움 : 브라우저 기반 모바일 개발

앞서 필자는 모바일 장치용 자연어 코드 개발자들이 가장 늦게 웹 기반 툴을 도입할 것이라고 예상한 바 있다. 그러나 하드웨어 성능을 쥐어짜서 이용할 필요가 없는 앱 개발은 예외이다. 일부 개발자들은 HTML로 아이폰과 안드로이드 앱을 개발한 후 일부 자연어 코드를 덧씌워 완성한다. 이를 통해 다양한 플랫폼을 대상으로 빠르게 앱을 개발할 수 있다. 게임 같은 앱을 제외하고는 성능도 좋다.


텔레릭(Telerik)의 아이스니움 미스트(Icenium Mist)는 아파치 코도바(Apache Cordova) 프로젝트 기반의 모바일 앱 개발을 위한 브라우저 툴이다. 이는 폰갭(PhoneGap)으로 알려졌던 특정 장치용 코드 개발 툴의 최신 버전이다.


아이스니움 미스트를 이용하면 브라우저에서 앱을 개발해 다양한 아이폰 버전에 대한 시뮬레이션을 할 수 있다. 아이폰용 앱을 단기간에 개발할 수 있는 것이다. 윈도우에서 실행되는 아이스니움 그라파이트(Icenium Graphite)는 빌드, 배치, 앱스토어 및 구글 플레이로의 앱 출시를 지원한다.


이 툴에는 강력한 코드 검색기, 에디터가 포함돼 있으며 기트(Git) 저장소에 연결해 작업을 저장할 수도 있다. 텔레릭은 위젯 구축을 위한 jQuery, jQuery Mobile, Kendo를 지원하며 이를 개발자가 선호하는 코드로 대체할 수 있다. 단 디버깅 기능은 뛰어나다고 할 수 없다. 종종 알 수 없는 'Erro: Script error. (URL: , LineNumber: 0)' 메시지를 보여준다. 그러나 브라우저에 내장된 디버거를 이용해 이를 바로 잡을 수 있었다. 앱은 HTML과 자바스크립트이고 또 다른 브라우저 창을 통해 시뮬레이터를 제공한다.


아이스니움은 모바일용 기본 앱을 구축하기에 충분한 툴이다. 엄격하게 말해 자연어 코드는 아니지만 대부분의 기본 앱 구축에는 자연어 코드가 필요없다. 브라우저 환경을 모바일과 영리하게 접목한 것이다. 아이스니움은 오는 5월까지는 무료로 사용할 수 있으며 이후에는 월 19달러의 사용료를 내야 한다. 연 단위로 사용료를 내면 할인을 받을 수 있다.


Hello World 소스코드와 실제 모바일에 실행된 모습


아이스니움은 웹 브라우저에서 j쿼리, 켄도(Kendo) 등 자바스크립트 프레임워크를 이용해 클로스 플랫폼 아이폰, 안드로이드 앱을 개발할 수 있도록 지원한다.



클라우드9 IDE : Node, Ruby, Java, PHP

클라우드9 IDE(Cloud9 IDE)는 웹 앱 개발자에게 루비(Ruby), PHP, Node.js 스택 등 완벽한 기능을 제공한다. 고전적인 파일 브라우저와 에디터를 제공하며 서버에서 디버깅을 해 원하는 곳 어디든 배치할 수 있다.


에디터는 꽤 강력해 코드 하이라이팅과 오류 감지 기능을 제공한다. 서버에 저장하기 전에 브라우저에서 문법 에러를 보여주기 때문에 디버깅 작업을 앞당길 수 있다. 그러나 런타임 에러는 잡아내지 못한다.


이 때는 콘솔 로깅(Console logging) 방법을 사용해야 한다. 콘솔 로그와 명령행이 필요한 환경으로, 코드가 실행되는 유닉스 디렉토리에 로그인을 해야 한다. 'emacs'라고 입력을 해봤는데 작동을 했다. 완전한 에디터가 있는데 과연 명령행 작업이 필요할까 싶지만 일부 유용한 경우가 있을 것이다.


업체는 무료 데모 서비스를 제공한다. 단 하나의 개인 작업공간을 제공하는데 다른 사람들이 작업을 볼 수 있도록 이를 공개해야 한다. 프리미엄 멤버십은 월 12달러로 6개의 개인 작업 공간을 제공한다. 또 셀(Shell)과 VM을 더 편하게 이용할 수 있다. 코드 프로젝트를 편집할 협업자의 수에도 제한이 없다. 대형 개발 프로젝트의 경우 MySQL 같은 데이터베이스에 로컬 접속을 해야 할 필요가 있다.


소스코드


코드엔비는 훌륭한 디버 기능을 지원하는 세련된 IDE다. 브라우저에서 작업하는 것이 아니라 마치 이클립스를 사용하는 것 같은 느낌을 준다.



코드엔비 IDE : 자바와 웹 스택

코드엔비 IDE(Codenvy IDE)는 아마존 일레스틱 빈스토크(Amazon Elastic Beanstalk), 앱포그(AppFog) 등 다양한 호스팅 플랫폼과 연동되는 코드 개발 환경이다. 개발하려는 애플리케이션 유형에 따라 최소 5~6가지 옵션을 지원한다. IDE는 라이브러리, WAR, 스프링(Spring) 등 3가지 자바 프로젝트와 루비, 파이썬, PHP 같은 언어를 지원한다.


코드엔비 IDE 사용법은 이클립스와 크게 다르지 않다. 대부분의 기능이 유사하다. 또 훌륭한 코드 하이라이팅 및 에디팅 지원 기능을 제공한다. 필자는 코드를 작성하면서 실수를 했는데 처음에는 브라우저에 아무런 반응도 없었다. 그러나 5초 정도 후에 잘못된 부분이 표시가 됐다. 네트워크 트래픽을 확인할 결과 에디터가 큰 JSON 패킷을 보내 오류에 대한 정보를 받기까지 시간이 소요된 것이었다는 결론을 내렸다. 오류 수정을 권고하는 수준도 우수했다. 문법적으로는 틀리지 않지만 사용하지는 않는 변수까지 잡아냈다.


다양한 플랫폼과 연동된다는 점도 장점이다. 코드 관리에 더 효과적인 툴이기 때문이다. 또 7개 주요 클라우드를 대상으로 간단하게 설정할 수 있는 툴도 있다. 예를 들어, 아마존 창에서는 아마존 S3에 인스턴스와 데이터를 저장해 작업할 수 있다.


이 서비스에 코드를 배치하는 것도 가능할 것이다. 디버깅 기능을 이용해 일체를 실행시키기 위해서다. 코드 일부를 조정해 재배치하는 기능 이외에도 기트 서버에 코드를 이전할 수 있는 기능도 유용하다. 디버깅 툴도 꽤 탄탄하다. JSON이 코드 문제를 표시하기까지 다소 시간이 걸릴 수 있지만 인터넷 속도만 충분하다면 하드코어 개발에도 적합한 툴이다.


코드엔비는 공개 프로젝트를 위한 무료 버전이 있다. 그러나 사설 비밀 프로젝트를 추진하고 있다면 월 9달러를 사용료로 내야 한다. 또 더 많은 기능과 전용 VM을 제공하는 경우 각각 49달러와 99달러를 내야 한다.




※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
    Copyright ⓒ ITWORLD. 무단전재 및 재배포 금지


[원문출처 : http://www.itworld.co.kr/news/81441]

맨 위로
맨 위로