데스크탑, 서버, 클라우드

Scene 1 : 새로운 환경과 리모콘
HD TV에 안드로이드 OS를 탑재한다고 한다. 언뜻 드는 생각은 TV의 UX 환경이 바뀌어야 한다는 것. TV는 소파에 앉아서 거리를 유지하고 봐야 하므로 터치 스크린은 불필요하다. 다만 현재의 리모콘으로는 너무 불편할 것이다. 현재의 리모콘은 제한된 무선 키보드와 유사한 방식이라고 볼 수 있다. 리모콘에 포인팅 장치 기능 즉, 마우스 기능이 추가되어야 한다.

(그런데 리모콘에 기능을 추가한다면 리모콘 가격이 올라가서 TV에 적합하지 않다는 주장이 있다. 그런 주장은 정말 현실성이 없다. 리모콘을 더 비싸게 팔면 된다. 아웃소싱하던 리모콘을 비싸게 팔 수 있다면 인소싱할수 있다. 리모콘이 비싸진다고 한들 TV 값에 비할 수 있겠는가.
새로운 패러다임을 도입하는 데 기존 틀에 벗어나는 방식이라 해서 배척한다는 것은 앞뒤가 맞지 않다. TV가 인터넷 기반의 application들을 실행하는 플랫폼이 되는데 기존 리모콘만으로 무엇을 하겠다니...)

Scene 2 : 아이폰/아이패드는 소프트웨어인가 하드웨어인가
아이폰/아이패드는 외형적으로 하드웨어이다. 하지만, 내용은 소프트웨어의 런타임 환경을 데스크탑에서 휴대 기기로 확장한 것이다.
애플은 하드웨어 구성은 대부분 아웃소싱한다. 일종의 외주관리만 한다. 하지만 핵심 소프트웨어는 인소싱한다. 최고 사양의 하드웨어보다는 소프트웨어를 실행하기에 적합한 하드웨어를 구성한다.

독립 컴퓨팅과 연결된 컴퓨팅
"The Network is the Computer" 얼마 전 오러클에 병합된 선마이크로시스템즈의 슬로건이었다. 이 말을 달리 해석해보면 네트웍만 있으면 독립 컴퓨터가 없어도 된다는 뜻이 된다.
개인과 회사에서 데스크탑 컴퓨터가 지배하는 컴퓨팅 환경을  점차 네트웍으로 그 소유권을 넘겨주겠다는 것이 이 말에 숨은 뜻이었을 것이다.

선마이크로시스템즈는 이제 소멸하였지만 메인프레임과 데스크탑으로 대표되던 컴퓨팅 환경은 여러 가지 경로로 균열되고 있다. 메인프레임은 유닉스 환경으로 다운사이즈되고 있고, 데스크탑의 지배는 스마트폰과 스마트 기기의 등장으로 지배의 영속성을 도전받고 있다.
혹자는 선마이크로시스템즈의 슬로건을 구글이 클라우드 컴퓨팅으로 현실화시키는 것이라고도 한다.
마이크로소프트는 데스크탑의 우위를 유지하면서 클라우드 기반의 collaborative computing 환경에 투자를 확대하고 있다. 구글은 인터넷 기반의 컴퓨팅을 기반으로 각 개인별 컴퓨팅 환경을 웹으로 흡수하려고 한다.

웹과 데스크탑
웹탑이라는 표현은 넷스케이프 사가 잘 나가던 21세기초의 유행어였다.
데스크탑을 웹으로 옮기겠다는 야심찬 아이디어였지만 그것을 이루기 위한 수단으로 thin client 개념의 자바 애플릿 비슷한 것을 사용했다. 사용성에서 기존 데스크탑과 비교하기 어려웠고, 그만의 장점도 찾아보기 어려웠다. 그저 데스크탑을 웹으로 옮기려고 했을 뿐이다.
왜 더 느려지고 데스크탑에 최적화되지 않은 환경으로 가야 하는지 설득력이 떨어졌다. 여러 컴퓨터, 즉 데스크탑에서 동일한 환경을 제공한다는 것만으로는 고객을 납득시키기 어려웠다.

데스크탑의 변화
스마트 TV, 스마트폰, 애플의 iPad, 그리고 구글까지 점점 더 개인의 컴퓨팅 환경은 데스크탑을 벗어나고 있다. 소프트웨어 환경이 굳이 데스크탑일 필요가 없어졌다.
오피스를 제외한다면 굳이 데스크탑이 필요할까 하는 의문이 든다. 굳이 MS 윈도우 영역 위에서 살아야 할지도 의문이다.
하지만, 냉철하게 바라본다면 아직 데스크탑 컴퓨팅의 절대 중요성은 웹 환경이 아니라 오피스이다.

패러다임의 변화와 대응
소프트웨어 패러다임의 변화, 그리고 기존 지배의 균열.
꿈이 있는 visionary들에겐 기회의 시간이자, 기존 지배자들에겐 두려움의 시간이다.
네트웍 기반의 컴퓨팅을 꿈꾸던 선마이크로시스템즈가 성공하지 못한 것은 자신들의 비전에 맞는 실행을 하지 못한 탓이라는 평가가 있다.
Google and Sun: Same vision, different results
네트웍 컴퓨팅을 꿈꾸면서 하드웨어 중심의 회사로만 발전했고, 결국 투자의 포커스를 잃고만 것이다. 웹을 구축하기 위한 인프라 중 하드웨어를 만들기는 했지만, 차별성은 싼 가격 외에는 별반 가지지 못했다. 결국 선이 아닌 구글이 클라우드 스택을 구축한 데까지 성공했다. 구글은 수익 모델 또한 웹기반 컴퓨팅에서 대다수의 수익을 얻는 구조로 되어 있다.

그렇다면 데스크탑은 소멸하고 모든 컴퓨팅은 웹으로 일원화될 것인가?
아마 이 부분은 구글도 고민하는 부분일 것이다. 네트웍은 신뢰성이 없고 불규칙한 지연이 상존한다. 이것을 무시하고서는 현실적인 접근을 하기 어렵다.
보안 문제도 중요하다. 네트웍에 연결되는 순간부터 보안 문제가 발생하기 시작한다.

컴퓨팅 환경 전체를 바꾸지 않겠다면 가장 쉬운 성공 분야는 보안성이 필요없는 부분이다. twitter나 facebook과 같은 social network service들의 보안성이 매우 취약하고 twitter는 보안성을 고려하지 않고 방송 개념으로 만들어졌다는 것은 시사하는 바가 있다.

개인적으로는 MS의 독점적 지위는 데스크탑에서 많이 무너질 것이라고 기대한다. 결국 그 핵심은 오피스 싸움이 될 것이다. MS가 오피스를 웹으로 변환하면 할수록 데스크탑은 약해질 것이다.
네트웍은 신뢰성이 없으므로 자주 사용하는 중요한 소프트웨어는 로컬 개념이 반드시 있어야 한다. 데이터가 네트웍에 있든 로컬에 있든 두 가지 모드에 모두 동작 가능해야 하며, 동기화가 가능해야 한다. 그리고 이러한 데이터를 transparent하게 처리할 수 있도록 소프트웨어가 설계되어야 한다.

(이미 휴대용 장치들에 PIMS 기능을 사용할 때 이렇게 되어 있다. 다른 점이라면 대부분의 PIMS는 로컬에 데이터를 동기화한 후, 로컬 컴퓨팅으로만 처리한다는 점이다. 이런 경우에는 웹 기반의 온라인 컴퓨팅은 없다.
점차 smart phone application 중에는 웹 기반으로만 동작하는 것들이 많이 나온다. 로컬 버전이 필요없는 것들이다. wi-fi와 무선망 등 점점 더 네트웍 환경이 넓어지고 있기 때문이다. 하지만, 궁극적으로 데스크탑을 대체하려면 MS오피스와 호환성 높은 오피스 기능이 갖추어져야 한다. 그것도 로컬에서 가능해야 한다.)

소프트웨어의 실행 환경은 급격히 넓어지고 있고, 네트웍은 모든 개인에게 가까와지고 있다. 어떤 가치를 어떤 환경에서 제공할 것인가? 그것이 소프트웨어의 비전일 것이다.

Cloud Computing과 공존
컴퓨팅 환경의 변화는 이미 대세이지만, 전체 흐름을 어떻게 일관되게 바라볼 것이며, 이에 따라 어떤 비전으로 액션을 취할 것인가는 쉽지 않다.여기서 생각하기를 멈춘다면 no thinking -> no vision -> no action 이 될 것이다.
위기를 기회로 생각하고 더 엄격해져야 한다.

클라이언트 소프트웨어 관점에서 본다면 클라우드 환경이 우세해지고 데스크탑의 역할은 축소된 채로 당분간은 유지될 것이란 점은 분명하다.
오피스 툴을 제외한 대부분의 클라이언트 소프트웨어들이 클라우드 환경으로 이동할 것이다. 오피스조차 많은 부분은 클라우드 환경에서도 사용 가능할 것이다. Collaboration을 강조한 온라인 오피스의 역할이 오프라인 기능이 받쳐주고 기능적으로 기존 마이크로소프트의 핵심 기능들을 대체할 수준에 이른다면 순수 데스크탑 시대의 종말도 기대해볼 수 있을 것이다. 거기까지 이르기에는 공공 혹은 통신의 인프라 등이 받쳐줘야 하므로 국가별로도 큰 차이가 있을 것이다.

서버 솔루션들은 private cloud 환경에서 실행을 고려한 변화가 어느 정도는 불가피할 것이다. 당장 private cloud가 대세가 되지는 않겠지만, 2,3 년 내에 상당한 시장의 변화가 있을 것으로 예상할 수 있다. cloud 기반의 프로그래밍 패러다임이 아직 정립되지 않았지만, Web Oriented 혹은 Resource Oriented 나 Stateless Architecture 등이 방향을 어느 정도 예고해준다.
Mission critical, high transaction의 경우는 어떻게 될 것인가. 클라우드는 보안성이 떨어지고 상대적으로 트랜잭션별 성능에서 handicap을 가지고 있다.
이 영역은 상대적으로 느리게 이동할 것이며, private cloud와는 별도로 보안이 강화된 망에 기존 서버 컴퓨팅 환경들이 cloud로 이전하지 않은 채 상당 기간 유지될 수도 있을 것이다.
이러한 측면에서 기업 환경은 private cloud가 도입된다고 하더라도 핵심 영역은 여전히 기존 서버용 미들웨어 기반으로 유지될 가능성이 높다.

세 가지 방식의 컴퓨팅(desktop, server, private cloud)이 기업에 당분간 병존할 것이고 이 각각은 다른 역할을 하면서 존재할 것이다. 다만 데스크탑 컴퓨팅 영역은 점차 역할이 줄어들고 public cloud 기반의 클라이언트 툴들에 자리를 내어줄 것은 분명하다. 즉, 클라이언트 소프트웨어는 public cloud의 사용자 인터페이스 역할을 핵심으로 할 것이다.

서버쪽 소프트웨어 솔루션을 개발하는 사람으로서 클라우드 시대를 어떻게 대응할지 갑갑한 부분이다. 미들웨어성의 서버 솔루션을 개발하는 것과 클라우드 환경의 미들웨어에 끼어드는 것은 클라우드 환경 자체가 보통 full stack 조합으로 구성되기 때문에 쉽지가 않다.
클라우드 환경이라고 하면 일반적으로 미들웨어나 프레임웍을 포함하기 때문이다. 그 반면서버의 역할은 상대적으로 줄어든다.
분산 미들웨어가 High Availability나 Consistency를 보장해줬다면, 클라우드 환경에서는 이 부분을 클라우드 인프라가 일부 제공한다. 또, 일부 Consistency는 포기되기도 한다. 데이터 관리 방법도 달라질 수밖에 없다. 즉, 분산 미들웨어 개념이 달라진다. 또, 아직은 클라우드 인프라가 (특히 국내에서는) 명확하지 않다. 물론 공개 소스인 Hadoop이 활용될 가능성이 높다. 현재로서는 Hadoop을 대체할 클라우드 플랫폼 솔루션을 개발하기보다는 서버 솔루션을 Hadoop에서 실행가능한 버전을 만드는 것이 현실적인 방향이라고 볼 수 있다.

Action
데스크탑에서의 탈출, 클라우드와의 공존. 이 큰 흐름은 부정할 수 없다.

변화하는 부분에는 약한 고리가 있을 것이다. 그 부분이 기회가 될 것이다. 서버쪽은 어느 정도 지금의 상태가 유지될 것이다. 클라이언트는 좀더 빠른 패러다임 변화를 맞이할 것이다.
클라이언트 소프트웨어는 사용자 인터페이스 부분과 public cloud 영역 부분으로 나뉘어질 것이다.  기존 서버쪽 솔루션은 public cloud 영역에서 새로운 역할을 찾을 수 있을 것이다.
현재의 클라우드 기반 클라이언트 소프트웨어의 방향은 클라이언트 소프트웨어가 다양한 클라우드 기반 정보를 조합하여 만들어내는 부분에 핵심 가치를 두고 있다.
기존 환경과 변화된 다양한 정보들을 어떻게 잘 가공하고 추가적인 가치를 만들어내는냐 하는 것이 소프트웨어 솔루션의 핵심적인 역할일지 모르겠다.

개인용 클라우드에 대한 짧은 생각
컴퓨팅 환경의 변화와 관련하여 최근 personal cloud computing 이라는 말들이 나온다. 기업내 클라우드 구축을 목적으로 하는 private cloud와 공공 대상의 클라우드 구축을 목적으로 하는 public cloud의 기준으로 보면 언뜻 받아들이기 어려운 말이다. cloud computing으로 personal desktop을 대체하겠다는 뜻인지, 모든 personal computing device들이 cloud 기반의 computing을 활용하겠다는 뜻인지 불분명하다.
느낌으로는 클라우드 기반 서비스의 개인화나 클라우드 기반의 개인용 애플리케이션 개념이 강한 것 같고 한때 인기를 끌었던 ubiquitous computing과도 맥락이 닿아 있는것 같다. device가 중요하고 각 device는 네트웍 연결을 통해 소통한다는 정도로 해석하겠다.

cloud-aware personal device 영역을 넓혀가려는 전략 정도로 해석하면 되지 않나 싶다.

cloud 에서는 각 device들이 mobile이 아닌 fixed location 기반이라고 하더라도 자기 위치 정보를 가지고 있어야 LBS (location based services) 기능까지 일반화하여 적용하기가 좋을 것이다. personal이므로 개인의 소유권 문제가 포함될 것이고 보안의 문제가 더 중요해질 것이다. 하지만, 클라우드에 물려 있는 개인용 프린터나 사진 인화기는 역시 아직 낯선 개념이다. 개인의 소유권과 고정된 장소라는 특성을 가진 개인 장치들을 클라우드에서 역할하도록 기대하는 것은 개념적으로는 덜 성숙한 것으로 보인다. 클라우드 기반 지역별 서비스 개념은 모르겠지만...

personal device 들 관점에서는 personal cloud가 보이겠지만, computing 관점에서는 personalize된 service만 보인다. personal cloud computing은 보이지 않는다.
personalized service는 cloud 환경에서 새로운 개념이 아니다.

private cloud와 public cloud 의 구분과 personal cloud는 다른 맥락에서 나온 얘기이겠지만, 새로운 cloud computing 유형으로 분류하기에는 적합하지 않다. 기업용 소프트웨어와 대응되는 개념으로서 cloud 기반의 개인화된 서비스를 특화하는 의미로서 받아들이면 될 것 같다.

추가 : Google Cloud Print Service
Google Cloud Print Service 개념이 이미 나와 있었네요. public cloud에서 개별 프린터나 인화 서비스를 어떻게 할 수 있을지에 대한 구글의 아이디어입니다.


http://code.google.com/apis/cloudprint/docs/overview.html

간략하게 Google Cloud Print 프로토콜을 살펴보면 클라우드 환경에서 특정한 프린터로 문서를 보내는 규약인데 cloud print proxy 프로세스가 Web 2.0 API 기반의 커맨드를 처리하여 프린터 제어를 하도록 되어 있고, 또 프린터에 새로운 job이 들어오면 XMPP 표준을 사용하여 Google Talk에게 알려주는 notification 기능도 고려하여 설계되어 있습니다.
HP 에서는 Google Cloud Print 프로토콜도 지원하고 프린터의 touch screen화면에서 Google doc이나 calendar, picasa 등의 문서나 일정 등을 PC 없이 직접 출력할 수 있는 방법을 지원할 것이라고 하네요. HP 프린터에도 web os 와 같은 가벼운 임베디드 OS가 장착될 것으로 기대됩니다.

추가 : Cloud-based Personal Computing 이 적절한 용어
Personal Cloud Computing이란 용어가 적합하지 않다고 얘기했는데 Personal Computing과 Enterprise Computing이 대응되는 개념이고, Cloud Computing은 Clustering level을 Cloud 로 높인 것을 뜻하는 개념이기 때문에 Cloud Computing이 아니라 Personal Computing이라고 표현하는 것이 맞을 것 같습니다.
이미 Public Cloud Computing과 Private Cloud Computing이라는 용어가 사용되고 있고 이들은 Cloud Cluster의 위치가 Internet인가 아니면 Intranet인가에 따라 구분해주는 상황이므로 Personal Cloud Computing은 오해를 불러일으키는 용어라고 생각됩니다. 개인적으로 Cloud Cluster를 구축하는 것을 얘기하는 것으로 들리기 때문입니다. public > private > personal 이렇게 오해하게 되지요.
Cloud-based Personal Computing이라고 부르면 명쾌하게 뜻하는 바를 알 수 있습니다.

댓글

이 블로그의 인기 게시물

[Java] Java G1 GC의 특성에 따른 Full GC 회피 튜닝 방법

일론 머스크의 First Principle Thinking (제1원리 기반 사고)

엄밀한 사고(Critical Thinking)란 무엇일까