클라우드 시대, 개발자 역할 어떻게 달라지나

[SW개발자 스토리-14]한국MS 개발자 플랫폼 사업부 김재우 클라우드 담당 부장

일반입력 :2011/02/15 10:49    수정: 2011/02/18 09:16

국내 IT업계를 뒤흔드는 클라우드 열풍은 소프트웨어나 하드웨어 솔루션 업체뿐 아니라 개발자들에게도 중량감있는 변수로 부상했다. 클라우드 확산으로 개발자 역할이 바뀔 수 있다는 이유에서다. 개발자들이 클라우드를 가만히 보고만 있을 상황은 아니라는 얘기다.

이에 대해 한국마이크로소프트(MS) 개발자 플랫폼 사업부(DPE) 김재우 부장은 기자와의 인터뷰에서 코딩 업무에서는 클라우드의 이점을 살릴 기술적 이해가, 시스템 관리 및 설계 측면에서는 IT자산에 대한 새로운 시각이 요구된다는 분석을 내놨다.

김 부장은 우선 개발자라는 그룹을 업무 성격에 따라 구분해야 할 필요가 있다며 실제 코딩 작업을 통해 프로그램을 만들고 테스트하는 '코더'의 입장과, 기업의 IT 자산을 관리하고 운영과 유지보수를 담당하는 '아키텍트'나 '매니저'의 입장은 전혀 다르다고 말했다.

그에 따르면 개발자들은 클라우드에 맞는 개발 방법론을 배워 둘 필요는 있다고 한다. 일례로 특정 PaaS 인프라에서 돌아가는 솔루션을 만들려면 해당 운영체제(OS)나 플랫폼에 적응해야 한다는 것이다.

소프트웨어 구조나 코딩 패턴 등, 클라우드에 최적화된 개발 방식을 공부해야 할 경우가 생깁니다. 예를 들면 PaaS의 하나인 구글 앱 엔진(GAE)은 구글이 정해 놓은 운영방식, 애플리케이션 작동 원리가 있어요. 분산환경의 특성을 잘 살린 PaaS가 나타날수록 최적화에 대한 수요가 커질 겁니다.

개발자들은 신기술에 적응해야 하는 어려움도 있지만 오히려 쉬워지는 영역도 존재한다. PaaS 환경에서는 시스템 구조를 건드리지 않고 순수하게 프로그래밍 작업에만 집중할 수 있기 때문이다.

PaaS에서는 서버, 스토리지, 네트워크 등 하드웨어 관리가 자동화되죠. 솔루션을 프로그래밍하는 개발자(코더)는 오히려 편해지는 부분이 있는 겁니다. 시스템 자원이나 병목 구간을 신경쓰지 않고 개발에만 집중할 수 있으니까요.

그런데 같은 클라우드라도 PaaS가 아니라 하드웨어 자원을 직접 구성하는 IaaS의 경우는 얘기가 좀 다르다. IaaS 환경에서는 어떤 서버에 어느 스토리지를 물리고 무슨 DB를 얹을지 등을 결정해야 한다. 코더 입장에서는 클라우드적 특성을 체감하기 어려울 수 있다는 얘기다.

IaaS 개발 환경은 오히려 기존 호스팅 환경과 비슷해요. 프로그래머 입장에서는 직접적으로 별 차이를 느낄 수 없다는 얘깁니다. 클라우드 인프라라는 특성상 확장성과 유연성을 제공하는 만큼 개발 및 테스트 환경이 한결 여유로울 수는 있죠.

코딩만 하는 개발자들에게 확장성과 유연성은 별 감흥을 주지 못하는 반면, 시스템 설계자나 관리자에게는 업무의 프로세스를 뒤엎는 요인이 된다. 시스템 아키텍트나 매니저도 크게 보면 개발자 직군에 분류되지만, 소위 'IT 자산관리'에 개입하는 사람들이다.

개발팀 프로그래머에게 웹사이트 하나 만들면 끝나는 일이 관리자한테는 훨씬 큰 사안이 되곤 합니다. 예전엔 IT 자산을 편성하기 위해 연초부터 며칠씩 회의를 했죠. 평상시 순방문자 5천명 수준인 사이트가 연중 몇월쯤이면 10만명 단위로 널뛰기를 할 텐데, 지금 수준으로는 최대 얼마까지 견딜 것이다, 얼마를 더 들여서 확장을 해야 예산 낭비를 최소화할 것이냐, 트래픽이 초과되면 누가 책임을 질 것이냐 등을 검토하고 결정했죠.

반면 지금과 같은 클라우드 인프라를 도입하면 사용량 변화에 즉각 대응이 가능하다. 연단위가 아니라 분단위, 초단위로 컴퓨팅 자원이나 스토리지 공간을 할당받고 늘리거나 줄일 수 있다. 조직의 의사결정과정이 전혀 달라지는 셈이다. 비용을 정산하는 절차와 주체도 달라진다.

클라우드 환경에서는 컴퓨팅 자산을 관리할 때 재무팀과 협의할 필요가 없죠. 운영 실무자가 시스템 용량 모자를 때 법인 카드로 결제하면 되니까요. 정적이었던 캐패시티 플래닝(시스템 허용량 계획)이 즉시성을 띠게 되면서 기업이 예산을 집행하는 방식까지 바뀐 겁니다. 이론적인 클라우드 컴퓨팅에 가까운 서비스일수록 이런 즉시성에 따른 이점을 얻기 쉽죠.

여기까지 볼 때 클라우드가 가상화 자원의 유연성을 바탕으로 획기적인 비용 개선을 이뤘다는 점은 분명해 보인다. 그러나 클라우드를 도입했다고 마냥 똑같은 성능만 낸다고 생각하는 것은 오산이라고 김 부장은 강조했다. 클라우드 플랫폼에서 돌아가는 애플리케이션이나 서비스 역시 기업들이 어떻게 최적화하느냐에 따라 비용이 달라질 수 있기 때문이다.

해외에선 클라우드에 특히 효율적인 개발 방법론을 유료로 지원해주는 컨설팅이 생겨나고 있습니다. 애플리케이션이 더 적은 자원으로 더 잘 돌아갈 수 있게 해준다는 얘기죠. 예를 들면 접속량을 최소화해 통신 부하를 줄인다든지, 컴퓨팅 자원을 소비하는 시간이나 용량을 아껴서 종량제 서버 과금을 아낀다든지, 이런 방식의 소프트웨어 설계를 전문적으로 해주는 사업입니다.

이는 이제 막 싹트기 시작한 국내 클라우드 환경에서는 기대하기 이른 서비스다. 컴퓨팅 자원을 필요에 따라서 자동으로 할당하거나 회수해가는 PaaS 서비스보다는, 기존 호스팅과 유사한 IaaS 서비스가 주류를 이루고 있다는 것이 김 부장의 분석이다.

사실 IaaS는 좀 더 발전된 '서버 호스팅'에 불과하죠. 클라우드의 특성은 셀프서비스 포털, 종량제 과금, 가상화된 서버 관리, 3가지로 요약됩니다. 시스템 관리자 입장에서는 종량제를 제외한다면 큰 차이가 없어요. 향후 2년~10년사이에 걸쳐 클라우드 구현 기술이 발전하면서 결국 IaaS는 PaaS 형태로 수렴할 겁니다.

관련기사

국내 사업자들이 현업 개발자, 관리자, 설계자들에게 혁신적 가치를 제공하기 위해서는 발전된 PaaS 서비스를 선보여야 한다는 것이다.

김 부장은 다른 나라들보다 국내가 클라우드 기술을 받아들이는 속도는 빠른 편이기 때문에 더이상 클라우드는 미래가 아니다라면서도 호스팅 수준의 IaaS에 머무르기 보다는 PaaS 단계로 끌어올리는 것이 시급하다고 생각지 않는 경우가 대부분인 듯하다고 평했다.