기사 공유하기

이제 클라우드는 노트북 PC처럼 어쩌면 그보다 더 일상 업무에 필요한 일부분이 되었다. 기업 업무가 클라우드로 전환되는 속도도 점점 더 가속화되고 있으며, 이는 그대로 퍼블릭 클라우드 시장 성장에 반영되고 있다. 일상적인 개인 업무도 이젠 클라우드 없이는 상상하기 힘들다. 전화번호와 주소록, 일정 등의 기본적인 정보, 메모, 할 일들 일상의 필수 업무들을 클라우드 기반으로 관리하는 것이 보편화되어 있다.

이런 정보들은 클라우드 내 각자의 개인 공간에 저장되어 스마트폰, 데스크탑 PC, 심지어 스마트워치와 같은 웨어러블 기기에서도 활용이 가능하다. 향후, 더 많은 기기에서 각 기업/개인의 데이터가 수집되고 활용될 것이며 클라우드 없이는 상상하기 어려운 일이다.

클라우드의 활용 폭이 점점 넓어지는 가운데 개발자의 영역도 더는 예외가 아니다. 일반적으로 개발자들이 자신의 목적에 맞는 개발환경을 구축하는 데에는 상당히 많은 노력이 들어간다. 일상적인 개발업무를 수행하기 위해서는 ‘통합 개발 환경’(이하 ‘IDE’, Integrated Development Environment)와 함께 빌드 도구 및 라이브러리, 그리고 배포에 필요한 다양한 기능이 갖추어져야 한다. 특히 개발도구나 프레임워크, 라이브러리들은 업데이트 주기가 짧기 때문에 이를 일일이 대응하기 위한 별도의 노력이 많이 소모된다.

클라우드 기반 IDE가 이런 고민들을 해결해 주는 열쇠다. 웹브라우저만 있으면 내가 필요한 개발 환경에서 언제 어디서든지 작업을 할 수 있다. 특히 개발 결과물을 클라우드에 배포(Deploy)하는 경우 클라우드 기반 IDE의 진가가 더욱 발휘된다. 클라우드 네이티브 패러다임에서 컨테이너기반의 자동 빌드 배포의 경우 타겟 클라우드와 긴밀하게 결합된 IDE를 활용하면 데브옵스(DevOps; 개발+운영)[footnote] 데브옵스(DevOps): 데브옵스는 개발(Development)와 운영(Operation)을 합친 말로, 개발과 운영 간의 상호 작용을 원활하게 하는 모든 것을 의미하는 포괄적인 개념. 그렇다고 개발과 운영을 동시에 수행한다는 말은 아니다. (출처: ITWorld Korea, ITWorld 용어 풀이 – ‘데브옵스(DevOps)’ 중에서)[/footnote] 전반에 걸친 대부분 과정을 IDE에서 해결할 수도 있다.

개발 (소프트웨어 공학), 오퍼레이션, 품질 보증(QA)의 조사로서 데브옵스를 나타낸 벤 다이어그램. (출처: 위키미디어 공용, CC BY 3.0)
개발 (소프트웨어 공학), 오퍼레이션, 품질 보증(QA)의 조사로서 데브옵스를 나타낸 벤 다이어그램. (출처: 위키미디어 공용, CC BY 3.0)

클라우드 IDE의 탄생 배경

클라우드 IDE를 얘기하기 전에 우선 일반 IDE에 대해 간단히 배경을 살펴보자. 내가 나름 인정받는 개발자로 활약하던 시절에 즐겨 사용하던 IDE는 이맥스(Emacs)였다. Vi(Visual editor)와 이맥스로 편집기(editor)가 양분되어 있던 시절 매크로(macro)로 무한 확장이 가능한 이맥스는 단순 에디터를 넘어 그 안에서 코드 편집, 컴파일, 빌드, 실행, 디버깅이 모두 가능한 종합 개발 도구였다.

나도 처음엔 vi를 사용하다가 1980년대 말 이맥스로 전환했다. 이맥스의 창시자인 리차드 스톨만(Rechard Stallman)을 내가 당시 재학 중이던 남가주 대학(USC: University of Southern California)의 한 세미나에서 직접 만난 후 아예 나는 이맥스 전도사가 되었다. 이맥스는 단순 에디터가 아닌 일종의 운영체제처럼 이클립스(Elisp)이라는 언어로 매크로를 만들어 필요한 기능을 얼마든지 확장할 수 있다는 점이 특징이다.

특히 지금은 너무나 당연한 기본 기능이 되어버린 각 프로그래밍 언어별로 문법을 다양한 색깔로 보기 좋게 표시하고, 또 단순한 문법의 오류까지 잡아주는 기능이 처음으로 적용된 편집기이기도 하다. 이 안에서 컴파일러나 디버거를 실행 시키면 오류가 생긴 지점 혹은 브레이크 포인트가 설정된 소스코드의 특정 부분에서 자동 편집이 가능하게 한 것 또한 현대적인 IDE와 견주어도 손색이 없는 부분이다.

개발 생산성을 높이기 위한 IDE 개선은 계속되었으며 다양한 플러그인(plug-in) 기능을 통해 특정 목적에 맞는 개발 환경을 용이하게 설정하고, 또한 개발에 필요한 다양한 기능들이 IDE안에서 이루어 질 수 있도록 진화하였다. 대표적인 IDE로 이클립스와 마이크로소프트의 비주얼 스튜디오가 있으며, IDE가 일반적으로 갖추어야 하는 요소들은 다음과 같다.

대표적인 IDE '이클립스'와 '비주얼 스튜디오'
대표적인 IDE ‘이클립스’와 ‘비주얼 스튜디오’
  • 문법 하이라이트: 언어의 문법에 맞게 구조나 키워드 들을 시각적으로 쉽게 인식할 수 있도록 함.
  • 코드 완성기능: 문법과 선언된 변수, 프로그램 구조에 맞게 코드를 자동으로 완성해 주는 기능.
  • 리팩토링(Refactoring): 코드의 특정 부분을 함수나 메소드(emthod)로 변환하거나 특정 변수 명을 바꾸는 등 코드 전반의 구조를 읽기 쉽고 명확하게 재구성하는 기능.
  • 버전 컨트롤: 소스코드를 저장하는 공간, 즉 리포지토리(Repository)와 직접 연동하여 소프트웨어 버전을 제어하고, 동료 프로그래머와 협업할 수 있는 기능.
  • 디버깅: 프로그램 플로우 제어 및 변수 모니터링 등 디버깅 기능과 소스 편집기의 긴밀한 연동.
  • 코드 탐색: 함수, 클래스, 변수 등 코드의 특정 부분을 다양한 필터링을 통해 탐색 가능.
  • 다양한 언어를 동시에 지원하는 통합 프로그래밍 환경 지원: 하나의 프로젝트 완성을 위해 다수의 언어 및 프레임워크가 필요한 경우 이를 통합 프로그래밍 환경에서 관리할 수 있도록 하는 기능.
  • 시각화 프로그래밍: 두 가지 의미로 사용될 수 있는데, 첫째 블록다이어그램과 같이 시각화된 프로그래밍 방식을 갖춘 경우로 예를 들면 스크래치 같은 것을 예로 들 수 있으며, 둘째, 사용자 UI나 화면 배치 등 시각적인 부분을 직접 눈으로 확인하며 배치 구성할 수 있는 위지위그(WYSIWYG) 기능을 말하기도 함.

개발용 노트북이나 데스크탑 PC에 IDE만 설치해서 바로 개발을 시작할 수 있는 경우는 드물다. 컴파일러와 지원 라이브러리, 통합(Integration) 도구 등 각각의 목적에 맞도록 해당 플러그인들을 별도로 설치해야하는 것이 일반적이다. 처음 프로그래밍 언어를 배우고자 하는 사람의 경우 이런 환경 설정을 완료하는 데에만 적지 않은 시간이 걸리며, 실제로 학습 초반의 상당 부분을 환경설정에 할애하는 것이 현실이다. 클래스에서 학습할 때의 환경, 그리고 집에서 혼자 학습할 때의 환경에 따라 추가로 개발 환경을 설정하는 일도 여간 번거로운 일이 아니다. 클라우드 기반 IDE를 사용하면 이런 문제를 한 번에 해결할 수 있다.

클라우드 IDE의 가장 중요한 강점이동성이다. 언제 어디서나 동일한 개발 환경을 제공한다. 또한, 교육용으로도 매우 편리하게 사용될 수 있다. 예를 들어 50명을 교육시키기 위해 각 노트북 혹은 PC에 50 카피의 개발환경을 구축하는 것과 비교해서 그냥 표준 기반의 웹브라우저를 설치하는 것은 관리 관점에서 엄청난 시간과 노력의 절약을 가져올 수 있다.

클라우드 IDE의 경우 일반 IDE처럼 특정 플랫폼의 네이티브 애플리케이션을 개발하기 위해 쓰일 수 있다. PC나 스마트폰, 태블릿용 네이티브 애플리케이션 등이다. 그러나 클라우드 IDE의 특성상 웹 기반 애플리케이션 특히 클라우드 애플리케이션 개발에는 더욱 큰 강점을 가진다. 이 밖에도 동일한 개발환경을 여러 사용자가 함께 사용함으로써 협업이 필요한 경우에도 유용하게 활용될 수 있다.

IDE
클라우드 IDE는 이동성이 좋고, 교육용으로도 편리하며, 애플리케이션 개발이 가능하고, 협업에 유용하다.

기술적으로는 클라우드 IDE 등장 배경에 HTML5가 핵심 요소로 자리 잡고 있다. 웹 기술이 발전하며 브라우저, 즉 표준 웹 엔진 기반으로 기존의 네이티브 애플리케이션 못지않은 사용자 친화적인 그래픽 UI 및 애플리케이션 기능의 상당 부분을 구현할 수 있게 되었다. 특히 웹 기술 표준화, 그리고 오픈소스 기반의 다양한 스크립트 언어 기술, 프레임워크 등이 다양한 클라우드 IDE 탄생을 가능케 했다. 물론, 클라우드 컴퓨팅의 확산이 클라우드 IDE의 중요한 활성 동력이었음은 두 말할 필요 없다.

클라우드 IDE의 특징

초기 클라우드 IDE의 경우 웹 기반 모바일 애플리케이션을 위한 용도로 많이 활용되었다. 스마트폰 보급이 활성화되며 안드로이드 및 iOS 애플리케이션을 효율적으로 개발하는 것이 많은 개발자의 공통된 고민거리였다. 마침 HTML5 보급이 확산되며 웹 기반 애플리케이션의 활용성에 대한 기대감이 높아지고, 자연스럽게 브라우저 기반의 애플리케이션 개발 도구에 대한 관심도 커졌다. 웹 기반 IDE가 본격적으로 활용되기 시작한 주요 동인이라고 할 수 있다. 클라우드 IDE가 일반 데스크탑 IDE보다 웹 서비스 개발 혹은 웹 애플리케이션 개발에 좀 더 최적화되어있다고 볼 수 있는 근거이기도 하다.

클라우드 IDE는 대부분 클라우드 컴퓨팅 기반으로 제공된다. 이 표현 자체가 중언부언 어색하게 느껴질 수 있으나 매우 중요한 특징을 암시하고 있다. 클라우드 서비스와의 연동이 매우 편리할 수 있다는 뜻이다. 만일 클라우드 IDE 서비스가 아마존 AWS 기반으로 제공되고 있다면, AWS에서 제공되는 다양한 백엔드 기능과의 연동이 매끄러울 수 있다는 것이다. 또한, 백엔드의 고급 기능까지 사용하지 않더라도 컴퓨팅 인스턴스나 스토리지, 네트워크 인프라를 활용하는 서비스를 구축할 경우, 해당 클라우드서비스 상에서 실행되는 클라우드 IDE가 이런 서비스를 구현하기 위한 최적화된 환경을 제공할 가능성이 높다. 클라우드 컴퓨팅이 점점 보편화될수록 클라우드 IDE에 대한 관심이 높아질 수밖에 없는 이유이다.

2013년 인포월드(InfoWorld)에서 소개한 네 가지 종류의 소위 킬러 브라우저 기반 IDE에 이러한 클라우드 IDE의 특징이 그대로 반영 되어있다. 이 리포트에는 브라우저 상에서 수행되는 당시 대표적인 클라우드 IDE인 JS피들(JSFiddle), 아이시니움(Icenium), 클라우드9, 코덴비(Condenvy)에 대한 심층적인 분석 내용이 담겨 있다. 이들 브라우저의 특징을 간단히 요약해 보면 다음과 같다(아래 표 참조).

초기 주요 네 가지 클라우드 IDE 비교 (InfoWorld, 2013년)
초기 주요 네 가지 클라우드 IDE 비교 (InfoWorld, 2013년)

네 가지 클라우드 IDE 중 JS피들아이시니움웹 애플리케이션 개발을 주목적으로 하고 있다. JS피들은 자바스크립트를 활용하여 웹 페이지에서 좀 더 화려하고 다양한 사용자 편의 기능을 제공하게 함으로써 웹 서비스 개발에 많은 중점을 두고 있다. 아이시니움은 iOS와 안드로이드 스마트폰에서 사용될 수 있는 웹 애플리케이션을 만드는데 활용된다. 동일한 개발 환경에서 한 번의 개발을 통해 iOS와 안드로이드 플랫폼 모두 지원할 수 있는, 즉 크로스플랫폼 개발환경이란 것에 강점을 가지고 있으며 특히 애플 앱스토어와 구글플레이 등 앱마켓과 연계되는 것이 특징이다.

반면 클라우드9코덴비백엔드 서버 애플리케이션 개발자를 주 타겟으로 하고 있다. 라우드9는 클라우드 파운드리(Cloud Foundry), 헤로쿠(Heroku), 마이크로소프트 애저와의 통합 환경을 제공하고 있다. 클라우드 파운드리나 헤로쿠는 당시 매우 인기 있는 오픈소스 기반 클라우드 컴퓨팅 플랫폼임을 주목할 필요가 있다. 클라우드9가 2016년 아마존에 인수되면서 AWS와의 시너지를 통한 사실상 표준 클라우드 IDE로의 자리매김이 예상되었다.2) 하지만 원조 클라우드9 서비스인 ‘c9.io’ 서비스가 종료되며 향후 AWS의 Cloud9 서비스에 대한 미래가 불투명해 졌다.

AWS 클라우드9. AWS가 클라우드9을 인수하면서
AWS 클라우드9. AWS가 클라우드9을 인수하면서 사실상 표준 클라우드 IDE로 자리매김이 예상됐지만, ‘c9.io’ 서비스가 종료되면서 그 미래가 불투명해졌다.

코덴비는 클라우드9와 마찬가지로 서버 애플리케이션 개발자들을 주 타겟으로 한다. 자바, 파이썬, PHP, 루비 등을 지원한다. 특히 다양한 클라우드 플랫폼들과의 통합을 지원하는 것이 주요 특징이다. 아마존, 클라우드비스(CloudBees), 클라우드 파운드리, 구글 앱엔진, 헤로쿠, 오픈시프트(OpenShift) 등으로 퍼블릭클라우드서비스뿐만 아니라 프라이빗 클라우드서비스 혹은 온-프레미스 클라우드 컴퓨팅을 위한 서버 애플리케이션 개발환경을 염두에 두었음을 알 수 있다.

이 네 가지 클라우드 IDE에서도 웹 애플리케이션 개발 및 클라우드 컴퓨팅 서비스와의 통합이 클라우드 IDE로부터 얻을 수 있는 주요 특징이자 장점임을 알 수 있다.

클라우드 IDE의 춘추전국시대

앞서 언급한 네 가지 클라우드 IDE 중 JS피들과 코덴비는 지금도 널리 활용되고 있으며, 클라우드9는 원조 C9서비스가 종료되며 이를 인수한 아마존 AWS의 산하 서비스로 계속 제공된다. 아이시니움의 경우 현재 거의 존재감이 없거나 아니면 서비스가 종료된 것으로 보인다. 하지만 이들을 대신하는 수많은 클라우드 IDE가 세상에 등장했다. 다양한 각 분야 인기 모바일 애플리케이션을 선정하여 사용자들에게 일종의 가이드를 제공하듯 우수한 클라우드 IDE를 개발자들에게 소개하는 리포트들도 많이 나오고 있다. 구글에서 “Best Cloud IDE”로 검색하기만 해도 엄청나게 많은 관련 글들이 존재함을 알 수 있다.

구글에서 "Best Cloud IDE"로 검색한 화면
구글에서 “Best Cloud IDE”로 검색한 화면

프로그래밍 도구를 포함한 다양한 소프트웨어 제품을 카테고리별로 추천하는 슬랜트(Slant)에서 소개하는 2019년 베스트 클라우드 IDE에서도 매우 흥미로운 제품들을 발견할 수 있다. 슬랜트는 사용자 커뮤니티의 리뷰에 기반 한 자체 알고리듬을 활용 해당 카테고리의 베스트 제품을 거의 실시간으로 선정하여 소개하고 있다. 내가 글을 쓰고 있는 시점에 참조하고 있는 버전은 2019년 12월16일 마지막으로 업데이트 된 버전이다.

총 20개의 클라우드 IDE가 소개되고 있는데 아무래도 적극적으로 온라인 커뮤니티 활동을 많이 하는 사용자들의 의견이 주로 반영된 만큼 진지한(serious) 개발자의 전문적인 의견이 정확하게 반영되었다고 보기는 어렵다. 하지만 최근 관심을 받은 주요 클라우드 IDE들이 대부분 포함된 점을 감안하면 나름 의미 있는 리스트라고 볼 수 있다.

최고의 클라우드 IDE는? (출처: 슬랜트) https://www.slant.co/topics/713/~best-cloud-ides
최고의 클라우드 IDE는? 2019년 12월 16일 현재 인기 있는 클라우드 IDE들. (출처: 슬랜트)

이 리스트에서 주목할 만한 것은 두 번째로 리스트에 올라와 있는 구름IDE(goormIDE)다. 국내 기업이 서비스하고 있는 클라우드 IDE로 한국 내 사용자뿐만 아니라 꽤 많은 해외 사용자를 확보하고 있다. 내가 구름 관계자들과의 면담을 통해 전해들은 바에 의하면 ‘원조’ 클라우드9 서비스 종료로 인한 해외 사용자 유입이 급격히 증가했다고 한다. 클라우드9는 아마존에 인수된 이후 AWS의 한 서비스로 제공되고 있는데 “c9.io”라는 사이트를 통한 독립적인 서비스가 지난 6월말로 종료된 이후 많은 해외 사용자들이 국내에서 제공하는 서비스인 구름IDE로 넘어오게 되었다는 것이다.

구름ide

원조 클라우드9 서비스는 종료되었지만, AWS의 클라우드9는 계속 서비스되고 있다. 실제로 “c9.io”로 접속을 하면 AWS 클라우드9 소개 페이지로 연결되는 것을 알 수 있다. 그러나 기존 원조 클라우드9 사용자들은 AWS의 클라우드9 서비스로의 전환을 별로 반기는 분위기는 아니다. 구름IDE 사용자가 늘어난 것도 그 반증이고, 개발자 커뮤니티에서는 원조 클라우드9의 대타로 위 슬랜트 리스트 상위권에도 올라와 있는 리플잇(repl.it)에 대한 관심도 고조되는 분위기다.

리플잇

그 밖에 주목할 만한 클라우드 IDE로는 이클립스체(Eclipse Che), 비주얼스튜디오 온라인을 들 수 있다. 이클립스체는 이름에서도 짐작할 수 있듯이 이클립스의 경험을 그대로 클라우드 기반으로 옮겨 온 것이라 볼 수 있다. 가장 중요한 특징은 컨테이너 기반의 클라우드 네이티브 환경에 최적화되어 있는 부분이다.

코딩, 빌드/통합, 컨테이너 생성 및 배포를 IDE의 개발 사이클에서 모두 끝낼 수 있는 것을 가장 큰 장점으로 꼽는다. 오픈소스 기반 다양한 클라우드 플랫폼과의 통합도 자연스럽게 지원되며 최근 IBM이 인수한 레드햇에서는 오픈시프트와 통합된 쿠버네티스-향 IDE로 이클립스체를 적극적으로 밀고 있다. 쿠버네티스 기반으로 바로 배포되는 애플리케이션, 이름하여 큐브앱(Kube-app)을 구현할 수 있는 최적의 환경임을 강조하고 있다.

이클립스 체

비주얼스튜디오 온라인은 기존 비주얼스튜디오 IDE의 웹 버전으로 2019년 마이크로소프트 이그나이트 행사에서 발표되며 세간의 관심을 끌었다. 마이크로소프트가 인수한 깃허브와의 연계, 그리고 애저 클라우드 컴퓨팅 서비스와의 통합 등 마이크로소프트의 클라우드 행보에 매우 중요한 역할을 할 것으로 기대된다.

특히 개발자 커뮤니티를 품고 오픈소스 진영에서 마이크로소프트의 입지를 강화하는 데에도 비주얼 스튜디오 온라인은 매우 중요한 도구가 될 것이다. 이클립스체가 IBM-레드햇의 후광을 입고 프라이빗 클라우드 시장에서의 개발 환경으로 힘을 받는다면, 비주얼스튜디오 온라인은 마이크로소프트 클라우드서비스 군의 핵심 개발 도구로 자리매김할 전망이다.

비주얼 스튜디오 온라인

클라우드 IDE의 미래

주요 퍼블릭 클라우드 서비스가 각각 주력 클라우드 IDE를 무기로 개발자 커뮤니티를 확대하려는 노력은 계속될 것이다. 앞서 얘기한대로 마이크로소프트는 비주얼스튜디오 온라인, 아마존은 클라우드9, 구글도 자체 클라우드 셸(Shell)뿐만 아니라 오픈소스 기반의 다양한 클라우드 IDE 수용을 확대해 나갈 것이다. 한편, 코딩 교육에 특화된 클라우드 IDE 서비스도 빅 플레이어들 틈바구니에서 나름 자기 색깔을 유지하며 시장을 형성해 나갈 수 있을 것으로 전망된다.

구름IDE와 같은 제3의 IDE 전문 업체는 각자 차별화된 서비스를 만들어가며 주요 퍼블릭 클라우드 서비스 모두와 편리하게 연동될 수 있는 IDE로 진화해 나아갈 것으로 보인다. 앞으로 클라우드 컴퓨팅 추세가 멀티 클라우드, 즉 다수의 퍼블릭 클라우드와 프라이빗 클라우드 컴퓨팅을 혼용하는 추세로 나아갈 경우, 오히려 IDE에 전문적으로 특화된 기업이 시장에서 강자로 살아나갈 가능성을 배제할 수 없다.

또한, 단순 개발환경을 넘어, 공동 개발 플랫폼으로서의 클라우드 IDE 가능성을 간과할 수 없다. 언제 어디서든지 동일한 개발환경에서의 공동 작업이 가능할 수 있다는 것이 클라우드 IDE가 내세울 수 있는 주요 강점이다. 국내 서비스인 구름IDE의 경우도 각자 개발환경을 컨테이너화 하여 이를 개인이 혼자 활용할 수도 있지만, 이를 타 사용자와 공유할 수 있는 기능을 제공하고 있다. 클라우드 기반의 공동 개발을 염두에 둔 기능이다.

손 협력 화합 하모니 단결 인류 인간 휴머니즘

클라우드 IDE가 확산되면서 예상할 수 있는 또 다른 기대 효과는 클라우드 기반 공동 작업 공간을 통한 생태계 생성이다. 만일 산업 카테고리 별로 특화된 클라우드 기반 공동 개발환경이 조성된다면 이를 중심으로 개발에 필요한 다양한 리소스들을 공유/유통 할 수 있는 생태계 조성이 가능하다. 예를 들어, 증권업을 중심으로 한 서비스 개발을 클라우드 IDE기반으로 할 수 있는 공동작업 여건이 만들어진다면, 여기에 필요한 다양한 서비스나 부가적인 기능들이 유통되는 시장이 만들어질 수도 있다는 뜻이다.

클라우드 IDE생태계가 확산되면 자연스럽게 비즈니스모델들도 따라 발전하게 된다. 즉 유료화에 기반 한 시장 성장이 가능해 진다는 얘기다. 버티컬 생태계로의 발전이 어쩌면 클라우드 IDE가 지향해야할 궁극적 목표가 될 수도 있다.

 

[divide style=”2″]

[box type=”note”]

본 글은 한국정보화진흥원의 지원을 받아 작성되었으며, 클라우드스토어 씨앗 이슈리포트에 동시 게재합니다.

[/box]

관련 글