SaaS(Software as a Service)는 시중에서 구입할 수 있는 소프트웨어에 대한 네트워크 기반 액세스 기능을 제공한다. 당시에는 그런 사실조차 몰랐을지라도 아마 이미 SaaS를 사용한 적이 있을 것이다. SaaS의 예로는 Netflix, Photoshop.com, Acrobat.com, Intuit QuickBooks Online, Gmail, Google Docs 등이 있다. 다소 덜 명백할지도 모르는 SaaS 구현으로는 성장세에 있는 모바일 애플리케이션 마켓플레이스의 상당 부분이 포함된다.
SaaS는 기업에서 더 저렴한 비용으로 소프트웨어를 사용할 수 있는 가능성을 제시한다. 특히 대부분의 컴퓨터가 전체 시간 중 거의 70%의 시간 동안은 사용되지 않는다는 점을 생각하면 각 컴퓨터마다 라이센스를 구입하는 대신 요청 시 사용하는 방식으로 이런 이점을 실현할 수 있다. 단일 사용자를 위해 여러 개의 라이센스를 구입해야 하는 방식이 아니라, 기업에서 시간을 100% 활용하기 위해 라이센스를 현명하게 사용할수록 더 많은 비용을 절약할 수 있을 것이다.
독자의 편의를 위해, 본 시리즈의 파트 1에서 제시한 세 가지 서비스의 개념을 상호 비교한 내용을 표 1에 다시 정리했다.
표 1. 세 가지 클라우드 컴퓨팅 분류의 교차 개념 매트릭스
| 패러다임 전환 | 특성 | 주요 용어 | 장점 | 단점 및 위험 | 사용하면 안 되는 경우 | |
|---|---|---|---|---|---|---|
| IaaS(Infrastructure as a Service) | 자산으로서의 인프라 | 일반적으로 플랫폼에 독립적임, 인프라 비용이 공유되고 따라서 인프라 비용이 절약됨, SLA, 사용량에 따른 비용 지불, 자체 확장성 | 그리드 컴퓨팅, 유틸리티 컴퓨팅, 컴퓨팅 인스턴스, 하이퍼바이저, 클라우드 버스팅, 멀티 테넌트 컴퓨팅, 자원 풀링 | 하드웨어와 인적 자원에 대한 자본 비용 회피, ROI 위험 감소, 낮은 진입 장벽, 효율적이고 자동화된 확장 기능 | 비즈니스의 효율성과 생산성이 대부분 벤더의 능력에 의존함, 잠재적으로 더 높은 장기 비용, 중앙 집중화하려면 새롭고 다양한 보안 방식이 필요함 | 자본 예산이 운영 예산보다 더 클 경우 |
| PaaS(Platform as a Service) | 라이센스 구입 | 클라우드 인프라 소비, 애자일 프로젝트 관리 방법에 제공 | 솔루션 스택 | 능률적인 버전 배치 | 중앙 집중화하려면 새롭고 다양한 보안 방식 필요함 | N/A |
| SaaS | 소프트웨어를 자산으로 여김(기업 및 소비자) | SLA, "씬 클라이언트" 애플리케이션에서 작동하는 UI, 클라우드 컴포넌트, API를 통한 통신, 느슨하게 결합됨, 모듈식, 시맨틱 상호 호환성 | 씬 클라이언트, 클라이언트-서버 애플리케이션 | 소프트웨어 및 개발 자원에 대한 자본 비용 회피, ROI 위험 감소, 능률적이고 반복적인 업데이트 | 데이터를 중앙 집중화하려면 새롭고 다양한 보안 방식이 필요함 | N/A |
SaaS는 소프트웨어 공급업체에게 새로운 기회를 안겨준다. 특히, SaaS 소프트웨어 공급업체가 ROI 증대를 주도하는 네 가지 주 요인으로 꼽는 것은 다음과 같다.
- 배치 속도 증가
- 사용자 채택 비율 증가
- 지원 요구사항 감소
- 구현 및 업그레이드 비용 감소
기존의 데스크탑 애플리케이션은 과거로부터 현재까지 배치에 있어 상당한 문제를 내포하고 있었다. 사실, 필자는 데스크탑 애플리케이션 개발자들이 여러 가지 경우에 애플리케이션 업데이트를 "악몽과도 같은 배치 작업"이라 말하는 것을 들은 적이 많다. Tariq Ahmed가 Flex 4 in Action(Manning Press)의 제1장에서 언급한 바와 같이, "수십만 대까지는 아니더라도 수천 대의 클라이언트에서 정확하게 동시에 정확한 버전의 소프트웨어를 실행하도록 하려면 그에 따른 물류상의 복잡성은 이루 말로 표현하기도 어려울 정도"이다.
Ahmed는 그런 복잡성이 너무 막대해서 대부분의 데스크탑 소프트웨어 개발 회사에서는 이처럼 많은 수의 클라이언트에서 동시에 특정 버전의 소프트웨어를 실행하는 일이 온당하지도 않거니와, 심지어는 가능하지도 않은 일이라 생각한다고 지적한다. 과거에 이 문제를 해결하기 위해 노력했던 개발자가 바로 SaaS 버전의 소프트웨어를 배치할 훌륭한 후보자이다. 하지만, 기존의 소프트웨어 개발 회사가 SaaS 마켓플레이스로 진입하면서 맞닥뜨리게 되는 최대의 장벽은 데스크탑 애플리케이션을 SaaS 애플리케이션으로 실행할 수 있도록 하는 것이다. 많은 경우, 그렇게 하려면 어느 정도의 레벨로 기존 소프트웨어를 다시 작성해야 하며, 어떤 회사에서는 엄두도 못 낼 정도로 비용이 너무 많이 든다는 사실을 깨닫게 된다.
이것이 클라우드 컴퓨팅으로의 전환이 더디고 점진적인 프로세스가 된 주된 이유 중 하나다. 대부분의 경우, 논리적 해결책은 SaaS로 제공되는 원래 애플리케이션의 고도로 축소된 버전부터 시작하여, 소프트웨어를 단계적으로 클라우드로 이동하는 것이다. 개발자가 버전 관리에서 확보하게 되는 제어 능력의 레벨을 고려할 때 이는 분명히 합리적 판단이라 할 수 있다. 또한, SaaS에 대한 구체적인 분석이 중요한 역할을 하는 지점이기도 하다.
지난 수년간 사용한 "LAN 컴퓨팅"과 클라우드 컴퓨팅 간에 많은 유사점을 확인할 수 있다. 전형적인 LAN 아키텍처는 현장에 죽 늘어선 워크스테이션의 배열로 구성되었는데, 이를 두고 종종 더미 터미널이라고 불렀다. 더미 터미널은 그림 1에서 보는 것처럼 보통 IBM에서 제공하는 강력한 메인프레임에 연결함으로써 애플리케이션을 실행했다.
그림 1. 기본 LAN 구성에서 클라이언트 터미널과 메인프레임 시스템의 관계를 보여주는 간단한 다이어그램
IT 부서가 버전 관리에 대한 1차적 레벨의 제어 능력을 가지고 있었고 거의 또는 아무런 혼란 없이 반복적이고 완벽하게 업데이트를 배치할 수 있었기 때문에, 엔터프라이즈 환경에서는 이런 유형의 컴퓨팅이 훌륭하게 제구실을 해내었다. 이와 유사하게, 개발 회사가 즉시 액세스할 수 있는 인프라에서 소프트웨어가 실행되므로, 과거에 데스크탑 소프트웨어 애플리케이션의 개발자가 올바로 버전 관리를 하지 못하도록 가로막은 물류상의 장벽이 클라우드 환경에는 존재하지 않는다.
서비스를 제공할 수 있어야 하는 대상 클라이언트의 수를 생각해보면, SaaS 인프라의 규모와 스케일이 LAN에 비해 엄청나게 큰 것은 분명한 사실이다. 그러나 기본 개념은 같다. 그림 1에서는 로컬 네트워크 내부에서 네트워크에 연결되어 있는 모든 클라이언트의 요청을 처리하기에 충분한 소프트웨어 인스턴스를 호스트할 수 있는 단일 메인프레임을 보여주는 반면, 그림 2에서는 수많은 다른 컴퓨터 자원으로 구성되어 있고 이 모든 자원이 전 세계의 클라이언트로부터 오는 요청을 처리하는 데 필요한 수많은 소프트웨어 인스턴스를 실행할 수 있는 총체적 컴퓨팅 처리 능력에 기여하는 클라우드를 보여준다.
그림 2. SaaS 환경에서 클라이언트 장치와 클라우드의 관계를 보여주는 간단한 다이어그램
비즈니스에서 잠깐 한 발짝 떨어져 SaaS가 일반 소비자를 위해 하는 일을 살펴보면, SaaS를 통해 이전에는 일반 소비자가 이용하기에는 라이센싱 비용이 너무 많이 들던 소프트웨어를 사용할 수 있게 되었다는 사실을 알 수 있다. Adobe® Photoshop®을 SaaS로 만들려는 Adobe의 노력이 그 좋은 예다. 이런 노력은 여전히 진행 중이고 Adobe의 입장에서는 발전적인 실험 과정이었겠지만, 여전히 진전을 보이고 있다. 예를 들어, 필자는 점점 많은 필자의 친구와 가족이 기본적인 사진 편집 작업을 해야 할 때 정식 버전의 소프트웨어를 실행하는 대신 Photoshop.com을 이용하는 쪽을 선호하기 시작하고 있음을 알아차렸다. 이런 변화의 중요성은 정식 버전에 포함된 모든 기능을 필요로 하지 않는 사람들이 불필요한 비용을 절약할 수 있을 것이란 사실에 있다. 한편, Photoshop.com을 사용하는 또 어떤 이들은 Photoshop.com에서 이런 서비스를 제공하지 않았다면 해당 소프트웨어를 사용하려고 시도조차 하지 않았을 사람들인데, Adobe의 입장에서는 SaaS가 아니었더라면 액세스조차 하지 않았을 장기적 고객 기반을 확보할 수 있는 기회가 된다.
SaaS에 대한 다양한 비즈니스 모델은 특히 흥미를 자아낸다. 예를 들어, Intuit에서는 매달 서비스 요금을 받으며 QuickBooks Online을 SaaS로 제공한다. 출장이 매우 잦은 기업 소유주로서, 필자는 이 서비스가 특히 유용하다는 사실을 깨달았다. 특히 비즈니스 파트너가 필자의 거주지로부터 640km나 떨어진 곳에서 살기 때문에 더욱 그러하다. 한편, Adobe는 소프트웨어를 소위 프리미엄(freemium) 서비스(기본 서비스는 무료로 제공하고 추가 고급 기능에 대해서는 요금을 받는 서비스)로 제공함으로써 Photoshop.com 및 Acrobat.com과 함께 SaaS의 파워를 십분 활용한다. 프리미엄(freemium)이란 용어는 라이센스 소프트웨어 제품의 축소된 SaaS 오퍼링을 기반으로 하는 특정 비즈니스 모델을 설명하기 위해 만들어낸 신조어다.
프리미엄 SaaS는 무료 사용자 중 일정 비율의 사용자가 처음에는 이 SaaS 소프트웨어를 무료로 사용하다가, 추가 기능을 지원하는 유료 버전의 SaaS 또는 사용 가능한 모든 추가 기능과 특성을 포함한 데스크탑 버전의 소프트웨어를 수록한 라이센스 제품으로 업그레이드해도 될 만큼 충분히 유용한 소프트웨어라는 점을 마침내 깨닫게 될 것으로 예상될 때 유료로 전환하게 될 고객을 통한 수익 모델을 기반으로 한다. 이는 결국에는 구입하지 않을 수도 있는 애플리케이션을 데스크탑에 설치해야 하는 경우에 비해 "한정 데모" 모드에서 소프트웨어를 사용해본 후 구입 여부를 결정하는 방식으로서, 대부분의 사용자가 선호하는 방식으로 굳어져 가고 있다. 그 밖에도, 업그레이드하는 무료 사용자 비율이 예상보다 낮을 경우 광고를 통해 이 모델의 수익성을 더욱 증진할 수 있다. 이것은 클라우드 컴퓨팅이 계속 발전함에 따라 기존의 데스크탑 소프트웨어 공급업체가 변화하는 마켓플레이스에 적응하기 위한 수단으로 흔히 사용하는 방법이다.
다양한 플랫폼을 지원해야 하는 상황의 결과로서 발생하는 대규모 고객 서비스 헬프 데스크 및 증가하는 지원과 관련된 문제점에 따른 비용을 SaaS로 대폭 줄일 수 있다. 초보 개발자의 경우 배치 작업이 간결하고 쉬워지면 버그를 처음으로 발견한 직후에 수정 코드를 구현할 수 있으며, 이는 곧 대다수 사용자가 버그 때문에 골머리를 앓기 전에 대부분의 버그를 수정할 수 있어 고객 지원 센터로 걸려오는 지원 요청 통화 건수를 줄일 뿐 아니라 고객 만족도와 고객 유지 능력을 훨씬 더 높일 수 있는 결과로 이어진다.
그 밖에도, 기존 데스크탑 소프트웨어 애플리케이션의 제조업체는 종종 둘 이상의 플랫폼을 지원해야 한다. 예를 들어, Windows® 7 및 Apple Mac OS X 버전 10.6 운영 체제를 지원해야 하는 개발자는 두 번째 운영 체제에 대한 지원을 추가하는 것만으로도 거의 두 배에 달하는 개발 비용을 썼으며, 그것도 해당 운영 체제의 다양한 버전을 지원하는 데 따른 문제점이 드러나기도 전에 그 정도의 개발 비용이 추가로 들었으므로 이런 문제점이 드러나면 개발 비용이 더 많이 소요된다. 따라서 한 운영 체제의 다양한 버전을 지원하는 것 역시 제한을 받는다.
예를 들어, Windows 7에서 실행할 프로그램을 빌드하려고 하는데 이 프로그램이 Windows XP와 호환 가능해야 한다면, 각종 기능과 함수가 두 버전에서 모두 올바로 작동할 수 있도록 매우 세심한 신경을 써야 한다. 그렇지 않으면 어쩔 수 없이 프로젝트를 다시 분기해야 할 것이며, 이는 각 버전에 대해 별도의 코드 베이스를 관리해야 하는 상황으로 이어져 필연적으로 생산성 및 효율성 저하와 프로젝트 완료 예상 시간 연장이라는 결과를 초래하게 된다. 기업 임원이 심장발작을 일으키도록 할 가장 빠른 방법의 하나는, 예컨대 그 임원에게 향후 2년간 반복해야 할 작업의 예상 소요 시간이 두 배로 늘어났다고 얘기하는 것이다. 그에 덧붙여, (다른 무엇보다도) 서로 다른 운영 체제와 그런 운영 체제의 다양한 버전을 지원하기 위한 예산을 늘려야 한다면, 소프트웨어 개발 프로젝트의 실패율이 현저히 높아지리라고 장담한다.
SaaS의 ROI를 높여주는 네 번째 요인은 첫 번째 요인과 다소 유사하다. 하지만, 배치 속도는 애플리케이션 업데이트를 빠르고 원활하게 배치할 수 있는 데서 오는 이점을 설명하는 것이다. 이에 반해, 구현 및 업그레이드 비용 감소는 개발 회사에게 돌아가는 재정적 이익을 설명하며, 이런 이익은 소프트웨어를 실행하는 인프라와 버전 관리에 대한 제어 능력을 확보한 결과로서 얻게 되는 것이다.
개발자의 입장에서 큰 비용 절약 효과는 여러 플랫폼에서 버그 수정 코드와 새로운 기능을 테스트하고 배치하는 데 따른 추가적인 오버헤드가 없다는 데서 오는 것으로, 이는 개발자가 소프트웨어를 실행하는 플랫폼을 완벽히 제어하기 때문이며 일반적으로 사용자가 전혀 알지 못하는 상태로 이런 제어가 이루어진다. 따라서 SaaS 애플리케이션에 대한 업그레이드 경로에 필요한 비용이 상당히 줄어든다. 간접적인 재정 효과는 고객 만족도와 유지 능력에서 오는 것으로, 시간과 비용이 모두 상당히 줄어들어 개발자가 기능 요청에 더욱 민첩하고 유연하게 대응하고 유용성을 개선할 기회가 생기기 때문이다.
SaaS 애플리케이션은 애플리케이션 설계에 대한 차세대 접근 방식을 대변한다. 필자가 여태껏 본 어떤 문서에서도 이런 점이 기술적으로 설명되어 있지 않았지만, SaaS 프로그램에는 대부분의 다른 산업에서 나타나는 제품 설계 프로세스와 더욱 일관된 UI 설계에 대한 현대적 접근 방식도 포함되는 것으로 보인다. 이런 접근 방식에는 개발 팀이 아니라 제품 팀에서 GUI를 설계하는, 사용자 경험 디자인(UXD)이라고 알려진 프로세스가 포함된다.
UXD의 기본 목표는 대상 고객 기반을 위해 애플리케이션을 가장 유용한 만들어주는 요소를 식별하고 그런 지식을 설계에 포함시키는 것이다. 어떤 종류의 소프트웨어 개발에서도 이런 목표를 달성해야 한다고 논리적으로 주장할 수 있겠지만, SaaS 애플리케이션 개발에서 이런 주장이 가장 설득력 있는 것으로 보인다. 그 이유는 아마도 SaaS를 개발함으로써 얻게 되는 상당한 절약 효과뿐 아니라, 기존 소프트웨어와는 다른 비즈니스 모델을 SaaS에 적용할 수 있다는 점과 관계가 있는 것 같다.
앞서 살펴본 바와 같이, 모든 기능을 갖춘 클라우드 컴퓨팅은 기업과 소비자 모두에게 엄청난 전환이라 할 수 있으며, 극복해야 할 과제가 많다. 결과적으로, 이 프로세스는 시간이 걸리고 여러 기간으로 나뉘는 점진적 변화를 거치게 된다. 컴퓨팅에서의 이런 발전 과정 중에 소프트웨어 개발 회사로서는 변화하는 환경에 적응하여 끊임없이 기업과 소비자의 요구를 똑같이 충족시킬 수 있느냐 하는 것이 매우 중요하다.
클라우드 컴퓨팅의 발전에 따라 기업이 변화하는 환경에 맞춰 움직일 수 있어야 하듯이, 소프트웨어 프로그래머도 수요에 맞춰 스스로의 실력을 높이고 경쟁력을 유지하려면 변화에 맞춰 알맞은 스킬 세트를 갖추고 SaaS 프로그래밍 모델을 이해할 필요가 있다. 클라우드 컴퓨팅은 단순히 가상화를 통한 확장 가능한 인프라 및 플랫폼 이식성에 관한 주제가 아니다. 클라우드 컴퓨팅은 소프트웨어를 완전히 새로운 레벨로 끌어올리고, 다음 세대의 컴퓨터 프로그래밍으로 간주하기에 손색이 없다. 대담한 주장일지는 모르겠지만, 이 기사에서 논한 바와 같이 SaaS를 통해 얻을 수 있는 기회를 생각해보자.
예를 들어, 편익 대비 비용이 만족스럽다는 것은 더욱 폭넓은 가용성을 의미하며, 이는 곧 잠재 고객 기반이 더 크다는 것과 같은 뜻이다. 게다가 플랫폼, 인프라 및 소프트웨어의 버전 관리를 제어하는 능력을 가지게 되는 직접적인 결과인 시간 및 비용 절감 효과를 생각해보면, SaaS는 중소 규모의 개발 회사가 메이저급 개발 회사와 같은 분야에서 일정한 역할을 할 수 있는 일종의 "민주화"를 가져온다는 점을 금방 분명히 알 수 있다.
이 기사에서는 클라우드 컴퓨팅의 세 번째 분류인 SaaS의 분석에 관해 학습했다. 더 중요한 점으로, SaaS 애플리케이션의 인기가 높아지면서 발생하는 기회와 해결 과제에 대해서도 살펴보았다.
독자가 본 시리즈에 포함된 세 편의 기사를 읽은 후, 클라우드 컴퓨팅의 자신의 장래 경력이나 비즈니스에 어떤 의미가 있는지 좀 더 분명히 알 수 있었으면 하는 바람이다. 앞선 두 편의 기사에서 소개한 IaaS 및 PaaS에서 제공되는 자원 외에도, 참고자료 섹션에는 SaaS에 관한 자세한 정보를 보여주는 자료의 링크가 있으므로 흥미를 끄는 주제를 살펴보기 바란다.
교육
-
InfoClipz에서 제공하는 SaaS에 관한 동영상을 시청할 수 있다.
-
what
to expect for SaaS in 2011에 관한 Baseline Magazine 기사를 확인해보자.
-
Experian
survey on SaaS spending trends를 확인해보자.
-
Sys-Con Media는 solid article on
open source software in the cloud 사이트에서 도움이 되는 기사를 제공한다.
-
커뮤니티의 가치 있는 토론 자료를 찾을 수 있고 클라우드와 관련된 새로운 기술 참고자료를 배울 수 있는 developerWorks 클라우드 컴퓨팅 영역을 탐구하자.
-
IBM Smart Business Cloud Computing에서 클라우드의 성능과 효율성을 강화하는 데 필요한 귀중한 비즈니스 조언을 얻자.
-
Twitter의 developerWorks 페이지를 팔로우하자.
-
developerWorks on-demand demos에서는 입문자를 위한 제품 설치 및 설정부터 숙련된 개발자를 위한 고급 기능까지 총 망라된 다양한 데모를 제공한다.
-
Grace Walker의 developerWorks 기사인 Cloud computing fundamentals에는 우수한 클라우드 컴퓨팅 소개 자료가 있다.
-
Tariq Ahmed, Dan Orlando, John C. Bland II, Joel Hooks(Manning, 2010년 11월)가 공동 저술한 "Flex 4 in
Action"을 읽어보자.
토론
-
My developerWorks 커뮤니티에 참여하자.
개발자가 운영하고 있는 블로그, 포럼, 그룹 및 위키를 살펴보면서 다른 developerWorks 사용자와 의견을 나눌 수 있다.
