cloud computing에 대한 생각
- Posted at 2008/02/28 10:03
- Filed under Dev_diary
그럼 cloud computing은 무엇일까요? 웹2.0이라는 용어가 처음 나왔을 때에도 RIA, 집단지성 등 수많은 정의와 모호함이 있었습니다. cloud computing도 마찬가지 입니다. wikipedia에는 cloud computing을 다음과 같이 정의하고 있습니다.
Grid computing, Utility computing, Distributed computing, SaaS(Software as a service), Network computing, 가상화 등에서 설명하고 있는 개념과도 비슷합니다. 그럼 cloud computing 이라는 용어가 이런 과거의 기술을 또 다른 미사어로 포장한 마케팅적인 단어일까요? 제 생각은 그렇지 않습니다. 앞에서 설명한 모든 개념을 포함하지만 조금은 다른 차원에서 접근이 필요한 단어라고 생각합니다.
이번 칼럼에서 cloud computing을 플랫폼적인 관점에서 분석해보겠습니다. 플랫폼이라고 하는 것은 사용자 애플리케이션이 수행되는 하드웨어 구성과, 소프트웨어 아키텍처를 의미합니다. 우리가 가장 많이 사용하고 있는 플랫폼이 마이크로소프트의 윈도우 플랫폼입니다. 오피스 프로그램이나 포토샵 프로그램 실행을 위해 인텔 또는 AMD CPU가 장착된 x86 계열의 하드웨어가 필요하고 그 위에 Windows라는 소프트웨어 플랫폼이 필요합니다. 아래와 같은 그림이 되겠죠.

플랫폼이 틀려지면 애플리케이션도 다르게 만들어야 합니다. 예로 Windows환경에서 수행되는 프로그램을 수정하지 않고 Linux나 MacOS에서는 수행시킬 수는 없습니다.
최근 몇년 동안 또 다른 개념의 플랫폼이 등장하고 있습니다. 구글은 몇년전부터 지속적으로 웹브라우저를 사용자 애플리케이션이 수행되는 플랫폼으로 만들려는 시도를 계속하고 있습니다. 이미 몇개의 필수 프로그램은 웹브라우저 플랫폼 상에서 실행되고 있습니다. MS의 핵심 애플리케이션에 대응하는 gmail, Word, Excel등과 같은 google office(아직은 데스크탑 환경 수준에 많이 못 미치지만) 등이 있습니다.

제가 관심을 가지는 부분은 서버 부분입니다. 브라우저에서 수행되는 포토샵, 워드, 엑셀, MP3 플레이어등 기존의 데스크탑 환경에서 수행되는 모든 프로그램을 웹 기반 만들어야 한다고 생각해보세요. 그럼 어떤 운영환경을 구성할까요? 웹서버, 애플리케이션 서버(Tomcat, IIS), DB(Oracel, MySQL 등), 파일시스템(NAS, SAN 등), 개발언어(JAVA, .NET, PHP 등) 등 많은 고려 사항이 있습니다.
개발이 완료된 다음 사용자에게 delivery는 어떻게 할까요? 웹 기반이니까 사용자 디바이스에 직접 설치할 필요는 없지만 서버 측에 많은 컴퓨팅 자원이 필요하게 됩니다. 오피스 계열의 프로그램의 경우 전세계 모든 PC 사용자를 대상으로 서비스 해야 하는 상황도 발생하게 됩니다. 어떤 경우는 몇몇 사용자들만 대상으로 할 수 있겠죠. 여기서 cloud computing의 필요성이 나타나게 됩니다.

다음 그림은 제가 생각하는 앞으로 다가올 컴퓨팅 플랫폼에 대한 예상입니다.


너무 이상적인 모습인가요? Google 오피스가 현재의 데스크탑 오피스 수준의 기능을 제공하고 구글이 오피스를 만드는데 사용된 많은 컴포넌트를 SDK 형태로 제공하고 Google 내의 기본 서비스들을 쉽게 다른 응용 애플리케이션에서 사용할 수 있는 API를 제공하는 그 순간이 바로 이런 컴퓨팅 환경이 일반화 되는 시기일 것입니다. Google은 이미 Android, Search API, Chart API, Gadget API, Calendar API, Map API , Web Toolkit, Album API 등 많은 API를 오픈하여 제공하고 있습니다.
미래의 컴퓨팅 플랫폼 시장을 장악하는 회사가 결국은 살아남게 될 것이고 그 가운데 cloud computing 이라는 개념이 핵심 기술로 사용될 것이며 결국 MS와 Google의 양분하는 형태로 갈 것이라는 예상을 해 봅니다.
또 한번의 중요한 변화의 시기에 우리는 과거와 같이 아무런 준비를 하고 있지 않습니다. 그저 변화가 끝난 다음에 그 변화에 적응할려는 모습만 있습니다. 소프트웨어 산업의 변방에서 중심으로 이동하기 위해서는 이런 변화에 적극적으로 참여하여 변화를 주도해야 합니다.
오랜만에 쓰는 긴 칼럼이라서 무척 힘드네요. 몇번 정리한다고 마음만 먹고 못하고 있었는데 제대로 정리했는지 모르겠습니다. 앞에서 언급했듯이 cloud computing이라는 것이 아직 정의가 제대로 되지 않았기 때문에 많은 다른 의견이 존재할 것입니다. 새로운 의견 많이 제시해 주세요.
Posted by 김형준
- Response
- 1 Trackback , 9 Comments
Trackback URL : http://www.jaso.co.kr/trackback/232
Trackbacks List
-
Cloud Computing?
Tracked from charsyam님의 블로그 2008/03/05 17:11 Delete아마도, 어느 정도 시간이 지나면, 일반적인 플랫폼은, 웹 브라우저가 될거 같습니다. 물론, 브라우저의 호환성이 어느정도 전제가 되야 하는거겠지만, 지금 IE8.0의 경우, 표준 테스트를 무사히 만족하고, 파폭3.0도 대부분 통과 한다는 점에서 점점 시점이 빨라질지도 모릅니다. 오늘 우연히, Cloud Computing 에 대한 글을 읽었는
Comments List
-
좋은 글 감사드립니다.
그런데 중간에 오타가, AMS -> AMD 아닌가요? ^^
고운 하루되세요.-
수정했습니다. 감사합니다.
-
-
어렴풋하던 cloud computing에 개념 정립하는데 엄청난 도움이 되었습니다.
늘 좋은 글 잘 읽고 있습니다^^ -
정말 많은 도움되었습니다. 감사합니다.
-
자세한 정보 감사합니다. 도움 많이 되었네요.
모호하기만한 정의에 조금이나마 명확해진 것 같습니다. -
잘 봤습니다
자료 찾아보다가 한눈에 정리되어 있는 이 글을 보게되서 다행입니다
많은 도움이 됐습니다
Java 의 Hadoop 이 클라우드 컴퓨팅의 대표적인 기술이라고 볼때, Hadoop 말고 다른게 있나요? -
클라우드 컴퓨팅은 다시 메인프레임으로 돌아가는 거 같네요...
클라이언트 환경이 보다 심플해지면서 (모바일 환경이나 포터블 환경)
요즘 사용자는 자신의 플랫폼에 또다른 어플을 설치하는 것을 꺼려하게 됐죠..
그래서 나온 패러다임이 클라우드 컴퓨팅이라고 보고 있습니다. 엄청난 새로운 기술은 아니라고 생각 되네요..
그러나 가장 큰 이슈는 보안 문제네요....
예전 메인 프레임은 인트라넷 환경이라면 클라우드는 인터넷 환경을 대표하는 것이니 그에 따른 양날의 검인... 보안을 어떻게 해결 할 것인가가 가장 큰 이슈 겠죠... 과연 어떻게 해결 할 것인가???
No Silver Bullet에 따르듯이 소프트웨어 기술은 발전하지 않고 있죠. 말그대로 페러다임의 변화... 또는 말장난이라는 것을..
요즘 소셜 네트워크다 뭐다 정신 없는데.... 개발자라면 그러한 시대흐름도
잘 따라야 한다고 생각합니다... -
아 그리고 이론적으로 많은 내용이 들어있어서 포스팅 해갑니다... 좋은 정보 감사합니다..
-
Cloud computing 에 대해 공부를 해야 했는데
이런 쪽으로 공부를 해본적이 없어서 컴퓨터에 대해 잘 모르는데
그래도 이 글을 읽고 어렴풋이 cloud computing 이 무엇인지 알게되었어요
좋은 글 감사합니다.






