저자: Tim O"Reilly, 한동훈 역
원문: http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html
지난기사5. 가벼운(Lightweight) 프로그래밍 모델
웹 서비스 아이디어가 오 쿠랑(au courant:최신 기술)이었을 때, 많은 회사들이 분산 응용 프로그램에서 높은 신뢰성을 보장하는 프로그래밍 환경을 만들기 위해 복잡한 웹 서비스 스택에 뛰어들었다.
그러나, 웹이 확실하게 성공할 수 있었던 이유중에 많은 부분은 하이퍼텍스트 이론의 많은 부분을 벗어던지고, 이상적인 디자인을 단순한 실용주의로 대체했기 때문이다. 업체들의 복잡한 웹 서비스 스택들은 아직도 널리 퍼지지 못하고 있는 것과 달리 RSS는 그 자체의 단순성 때문에 가장 널리 배포된 단일 웹 서비스가 되었다.
비슷하게 아마존의 웹 서비스는 두 가지 형태로 제공된다. 한 가지는 SOAP(Simple Object Access Protocol) 웹 서비스 스택의 형식주의를 고수하는 형태이며, 다른 하나는 HTTP 위에 XML 데이터를 제공하는 단순한 형태이다. 이와 같은 단순한 접근 방법을 REST(Representational State Transfer)라고 한다. 아마존과 ToysRUs 같은 소매 파트너간의 고가치(High value) B2B 연결에서는 SOAP 스택을 사용하고 있지만, 아마존에 따르면 전체 사용량의 95%는 단순한 REST 서비스가 차지한다고 한다.
단순성(simplicity)에 대한 탐험은 다른 "유기적인" 웹 서비스에도 나타난다. 구글맵(Google Maps)에 대한 구글의 발표가 적절한 예이다. 구글맵의 단순한 AJAX(Javascript and XML) 인터페이스는 해커들에 의해 빠르게 해독되었고, 이는 데이터를 새로운 서비스와의 혼합을 시도했다.
지도 관련 웹 서비스는 ESRI 같은 GSI 벤더나 맵퀘스트(MapQuest), 마이크로소프트 맵포인트 등으로부터 이용할 수 있다. 그러나 구글 맵스는 그 단순성 때문에 세상을 깜짝 놀라게 했다. 웹 서비스를 지원하는 벤더들과의 실험은 참여자들간의 계약이 필요하지만, 구글맵이 구현한 방식은 데이터를 가져갈 수 있게 했으며, 해커들은 그 데이터를 창의적으로 재사용할 수 있는 방법을 발견하였다.
이로 알 수 있는 몇 가지 중요한 교훈이 있다.
- 느슨하게 결합된(loosely coupled) 시스템을 위한 가벼운 프로그래밍 모델을 지원하라. 업체가 지원하는 웹 서비스 스택의 복잡성은 밀결합(tight coupling)을 위해 고안된 것이다. 많은 경우에 밀결합이 필요하지만, 가장 흥미있는 응용 프로그램들은 실제로 느슨하게 결합되어있으며, 심지어 깨지기도 쉽다. 웹 2.0 사고방식(mindset)은 전통적인 IT 사고방식과는 완전히 다르다.(역주: mindset은 경험, 교육, 고정 관념 등으로 형성된 사고 방식을 의미한다)
- 조정(coordination) 보다는 신디케이션(Syndication: 배급, 전달)을 생각하라. RSS나 REST 기반 웹 서비스와 같은 단순한 웹 서비스는 연결의 반대편에서 무슨 일이 일어나는지 통제하는 것이 아니라 데이터를 외부로 전달하는 것에 대한 것이다. end-to-end principle로 알려진 이 아이디어는 인터넷 그 자체의 근원이다.
- 개조성(hackability)와 재조합 가능(remixability) 하도록 설계하라. 오리지널 웹, RSS, AJAX 같은 시스템은 모두 "재사용에 대해 극단적으로 낮은 장벽"을 공통되게 갖고 있다. 실제로, 유용한 소프트웨어의 상당수는 오픈 소스이며, 만약, 이들이 오픈소스가 아니라면 지적 재산 보호 때문에 아무것도 할 수 없을 것이다. 웹 브라우저의 "소스 보기" 옵션은 사용자가 다른 사용자의 웹 페이지를 카피할 수 있게 했으며, RSS는 정보 제공자(IP)가 아닌 사용자가 원할 때 컨텐트를 볼 수 있는 힘을 부여하기 위해 고안되었다. 가장 성공적인 웹 서비스는 제작자가 상상하지 못했던 방향으로 이용하기 가장 쉬웠던 것들이었다. 전형적인 "모든 권리의 인정(all rights reserved)"와 달리 Creative Commons가 널리 보급한 "일부 권리의 인정(some rights reserved)" 문구는 유용한 이정표가 될 것이다.
역주: "모든 권리의 인정(all rights reserved)", "일부 권리의 인정(some rights reserved)" 등은 모두 Creative Commons Korea의 용례를 따른 것이다.
어셈블리에서의 혁신(Innovation in Assembly)
가벼운 비즈니스 모델에는 가벼운 프로그래밍과 가벼운 연결이 따르기 마련이다. 웹 2.0 사고방식은 재사용에 있다. housingmaps.com과 같은 새로운 서비스는 기존의 두 서비스를 함께 가져오는 것으로 만들어졌다. Housingmaps.com은 아직까지 비즈니스 모델이 없지만, 다른 소규모 서비스들처럼 구글 애드센스(또는 아마존 광고 제휴)처럼 그에 상응하는 수익 모델을 제공할 것이다.
이러한 예들은 우리가 "어셈블리에서의 혁신(innovation in assembly)"라 부르는 웹 2.0 핵심 원친에 대한 통찰을 제공한다. 유용한 컴포넌트들은 풍부하기 때문에 이들 컴포넌트를 기발한 방법 또는 효율적인 방법으로 결합하는 것으로 가치를 창출할 수 있다. PC 혁명이 하드웨어 결합의 혁신을 위한 많은 기회를 제공했었다. 결합에서 과학을 만들어내는 델(Dell)과 같은 회사들은 제품 개발에서 혁신이 필요한 비즈니스 모델을 가진 회사들을 물리칠 수 있었다. 마찬가지로 우리는 웹 2.0이 다른 사람들이 제공하는 서비스를 이용하고, 통합하는 것을 보다 잘 하는 것으로 경쟁자를 물리치는 회사에 기회가 있다고 믿는다.
웹 2.0 투자 이론
벤쳐 캐피탈리스트 폴 케드로스키(Paul Kedrosky)는
"핵심은 합의(consensus)에 동의하지 않는 소송을 제기할 수 있는 투자자를 발견하는 것이다"라고 썼다.
각 웹 2.0의 면이 합의에 동의하지 않는 것과 어떻게 연관되는지 살펴보는 것도 흥미로운 일이다. 모든 사람은 데이터를 사적으로 보관하는 것을 강조하지만 플리커/냅스터 등은 데이터를 공개했다. 이는 단순히 동의할 수 없는 것에 동의하지 않은 것이 아니다. 견해차이로부터 어떤 것을 구축할 수 있는 것에 대한 비동의인 것이다. 플리커는 커뮤니티를 구축했으며, 냅스터는 컬렉션의 폭을 구축했다.
이를 바라보는 또다른 방법은 성공적인 회사들이 값비싼 것들을 포기할 뿐만 아니라 한때 값비싼 것들을 무료로 가질 수 있게 한 것에 비판적이었음을 생각해보는 것이다. 예를 들어, 위키피디어는 신속성과 폭넓은 범위를 위해 편집에 대한 제어권을 포기했다. 냅스터는 업체가 판매하는 모든 노래를 담은 "카탈로그"라는 개념을 포기했고, 폭넓은 범위(breadth)를 얻었다. 아마존은 물리적인 상점을 가져야한다는 생각을 포기하자 전세계에 책을 판매할 수 있었다. 구글은 큰 소비자들을 포기하자 수요가 맞지 않는 80%의 소비자를 얻었다. 이는 마치 적의 힘을 적에게 사용하는 합기도(aikido)와 매우 유사하다. "네가 알고, 네가 맞다 - 전 세계에 있는 누구나 이 글을 업데이트할 수 있다. 그리고 무엇을 추측하면 그것이 당신에게 나쁜 소식인 것이다"
--Nat Torkington
6. 단일 디바이스를 넘어선 소프트웨어
웹 2.0의 또 다른 특징은 PC 플랫폼에만 국한되지 않는다는 것이다. 마이크로소프트에서 오랜 기간 일했던 데이브 스투츠(Dave Stutz)는 마이크로소프트를 떠나는 고별사에서 "
단일 디바이스를 넘어선 유용한 소프트웨어가 오랜기간 높은 이윤을 남기게 될 것이다"라고 지적했다.
물론, 모든 웹 응용 프로그램은 단일 디바이스를 넘어선 소프트웨어로 바라볼 수 있다. 결국, 가장 단순한 웹 응용 프로그램이라 해도 웹 서버를 담당할 컴퓨터와 브라우저를 담당할 컴퓨터 두 대가 최소한 필요하다. 앞에서 이야기한 것처럼 플랫폼으로서의 웹 개발은 많은 컴퓨터에서 제공하는 서비스들로 구성된 통합 응용 프로그램이라는 아이디어로 확장된다.
웹 2.0의 많은 영역들이 그런 것처럼 "2.0 다움(2.0-ness)"에는 새로운 것은 없으나 웹 플랫폼의 실제 가능성을 더 현실화시키고 있다는 점에서 새로운 플랫폼에서 응용 프로그램이나 서비스를 설계하는 데 핵심적인 통찰력을 제공한다.
현재까지 아이튠즈(iTunes)는 이런 원칙의 가장 좋은 예이다. 아이튠즈는 핸드헬드 디바이스에서 웹 서버 응용프로그램(web back-end)를 비롯해서 로컬 캐시와 컨트롤 스테이션으로 동작하는 PC까지 빈틈없이 지원한다. 웹 컨텐트를 휴대용 기기로 옮기려는 시도는 이전에도 많았지만 아이팟(iPod)/아이튠즈 조합은 처음부터 다양한 디바이스로 확장하기 위해 고안된 최초의 응용 프로그램이며,
[11] 티보(TiVo) 역시 좋은 예다.
(
[11] 역주: 티보는 비디오 테이프 대신에 하드 디스크를 이용해 프로그램을 녹화할 수 있으며, 각 방송사의 프로그램 정보를 제공하는 대가를 지불하는 독특한 비즈니스 방식을 갖고 있다. PVR(Personal Video Recorder) 시장을 열었다는 평가를 받고 있으며, 초기 부족한 용량, 기능등은 해커들에 의해 기능이 확장되었다. "구글로 검색하다"를 Google it이라 하듯이 "TV 프로그램을 녹화하다"의 Tivo it이라는 신조어까지 생겼다.)
(
[12]역주: 응용 프로그램은 프런트엔드와 백엔드로 나뉜다. 사용자에게 보이는 부분 즉, 눈에 보이는 부분을 통틀어 프런트엔드라 하며, 눈에 보이지 않는 부분을 백엔드라 한다.)
아이튠즈와 티보는 웹 2.0의 핵심 원칙의 많은 부분을 보여준다. 아이튠즈나 티보는 웹 응용프로그램은 아니지만 서비스 구조의 보이지 않은 부분을 빈틈없이 결합하여 웹 플랫폼의 힘을 이용하고 있다. 데이터 관리는 이들이 제공하는 가장 중요한 부분이다. 아이튠즈의 경우 사용자의 로컬 데이터를 관리하는 용도로만 패키지된 응용 프로그램을 사용하지만 이들은 패키지 응용 프로그램이 아닌 서비스이다. 더욱이 티보와 아이튠즈의 실험이 지적 재산권을 옹호하는 사람들과 전쟁을 벌이고 있지만 모두 집단 지능을 사용하는 것을 보여준다. 아이튠즈는 참여를 제한하는 구조로 되어있지만
팟캐스팅이 추가되어 충분히 동등한 구조를 보여주고 있다.
보다 많은 디바이스들이 새로운 플랫폼에 연결됨에 따라 디바이스를 넘어선 소프트웨어는 웹 2.0에서 가장 위대한 변화로 기대되는 분야이다. 전화기나 자동차가 데이터를 소비하지 않고 보고하게 되면 어떤 응용프로그램이 가능할까? 실시간 교통 정보,
[13] 플래쉬 몹(flash mobs), 시민 저널리즘 등은 새 플랫폼의 다양한 가능성에 대한 초기 징후에 불과하다.
(
[13] 역주: 플래쉬 몹(flash mobs)은 2002년 10월 출간된 하워드 라인골드의 "참여군중(Smart Mobs)"이 모태로 알려져있으며, 2003년 5월 미국 뉴욕의 맨하탄 한 호텔에 모여 15초 동안 요란한 박수를 치다 사라지는 것으로 시작된 행위와 같이 인터넷을 통해 온라인상으로 만난 사람들이 특정 시간과 장소에 모여 특정행동을 하고 사라지는 집단 해프닝을 말한다.
참고:
Flash Mob 번개 떼,
Wikipedia)
7. 풍부한 사용자 경험(Rich User Experiences)
페이 웨이(Pei Wei)가 1992년
비올라 브라우저를 선보인 이래 웹 브라우저 내에 애플릿을 비롯한 다양한 컨텐트를 제공하기 위해 웹을 사용했다. 1995년 소개된 자바는 애플릿을 위한 기틀을 마련했다. 자바스크립트와 DHTML은 클라이언트 측에서의 프로그래밍과 보다 풍부한 사용자 경험을 제공하기 위한 단순한 방법(lightweight ways)로 소개되었다. 수년 후, 매크로미디어는 멀티미디어 컨텐트 뿐만 아니라 GUI 스타일의 응용프로그램을 제공할 수 있는 플래시(Flash)의 기능을 강조하기 위해 - 오픈 소스 플래시 개발사인 Laszlo Systems 역시 차용한바 있는 - "RIA(Rich Internet Application)"이라는 용어를 만들었다.
그러나, 완전한 기능을 가진 응용 프로그램을 제공할 수 있는 웹의 가능성은 구글이 열었다. 구글이 지메일, 구글맵과 같이 풍부한 사용자 인터페이스와 PC 수준의 인터페이스를 가진 웹 기반 응용 프로그램을 연이어 선보였다. 구글이 선보인 이러한 기술들을 웹 디자인 회사 Adaptive Path의 Jesse James Garrett은 에세이에서
AJAX라 명명하고 다음과 같이 얘기했다.
"AJAX(에이잭스)는 기술이 아니다. AJAX는 실제로 여러가지 기술이 포함되어 있으며, 각 기술 자체로도 훌륭하지만, 함께하면서 더 강력한 새로운 길을 열었다.
AJAX는 다음을 포함한다:
웹 2.0 디자인 패턴
크리스토퍼 알렉산더의 "A Pattern Language"에서 구조적인 문제를 해결하기 위한 간결한 설명을 위한 형태를 정의했다. "각 패턴은 우리가 처한 환경에서 계속해서 일어나는 문제를 설명하고, 이 문제를 해결하기 위한 핵심을 설명한 것이다. 이 해결방법은 두번만이 아니라 수백번을 사용할 수 있는 그런 방법이다."
- 롱 테일(The Long Tail)
소수의 사이트가 인터넷 컨텐트의 대부분을 생산한다. 그러나 좁은 니치(niche) 시장은 인터넷에서 가능성있는 응용 프로그램의 대부분을 만들어낸다. 따라서, 전체 웹에 도달하기 위해서는 머리가 아닌 긴 꼬리(Long Tail), 중심부가 아닌 외곽부분에 고객이 스스로 제공하는 서비스와 알고리듬적 데이터 관리에 집중해야 한다.
- 다음 인텔 인사이드는 데이터
응용프로그램은 점점 데이터 중심으로 변화하고 있다. 따라서, 경쟁우위를 위해 유일하면서 재생산하기 어려운 데이터 소스를 소유할 방법을 찾아야 한다.
- 사용자가 만드는 부가 가치
인터넷 응용 프로그램에서 경쟁력을 갖기 위한 핵심은 여러분이 제공하는 데이터에 사용자가 데이터를 어느 정도까지 추가하느냐 즉, 기여하느냐에 달려있다. 따라서, 소프트웨어 개발에서 "참여의 구조"를 제한해서는 안된다. 응용 프로그램에 가치를 부여하는데 있어 암시적이든 묵시적이든 사용자를 관련시켜라.
- 기본 설정을 통한 네트워크 효과
오직 소수의 사용자만 당신의 응용 프로그램에 가치를 추가하려 할 것이다. 따라서, 응용프로그램 사용의 부수 효과(side-effect)로 사용자 데이터를 취합하는 포괄적인 설정을 만들어야 한다.
- 일부 권리의 인정(Some Rights Reserved)
지적재산권 보호는 실험이나 재사용을 제한한다. 따라서, 민간규제(private restriction)이 아닌 집단 수용(collective adoptioon)으로부터 오는 이익이 있을 때 수용장벽이 낮아진다는 것을 명심해야 한다. 기존의 표준을 따르되 가능한한 적은 규제를 가진 라이선스를 사용해야 한다. 개조성(hackability)와 재조합 가능(remixability)하도록 설계하라.
- 영원한 베타(The Perpetual Beta)
디바이스와 프로그램이 인터넷에 연결되면서 응용 프로그램은 더 이상 소프트웨어 상품이 아니라 진행중인 서비스를 의미한다. 따라서, 단일 릴리스로 새로운 기능들을 제공하지 마라. 대신, 일반 사용자 경험을 토대로 지속적으로 기능을 추가해야 한다. 사용자를 실시간 테스터로 끌어들여서 사람들이 새 기능을 어떻게 사용하는지 알아내라.
- 통제 대신 협력하라
웹 2.0 응용 프로그램은 상호 협력하는 데이터 서비스들의 네트워크로 구성된다. 따라서, 웹 서비스 인터페이스와 컨텐트 신디케이션(Syndication)을 제공하고, 다른 데이터 서비스를 재사용하라. 느슨하게 결합된(loosely-coupled) 시스템을 위한 가벼운 프로그래밍 모델을 제공하라.
- 단일 디바이스를 넘어서는 소프트웨어
더 이상 PC가 인터넷 응용 프로그램에 접근할 수 있는 유일한 디바이스가 아니다. 단일 디바이스로 제한된 응용 프로그램은 여러 디바이스로 연결되는 응용 프로그램보다 가치가 떨어진다. 따라서, 응용 프로그램을 처음부터(from the-get go) 핸드헬드 디바이스, PC, 인터넷 서버간에 서비스를 통합할 수 있게 설계해야 한다.
AJAX는 이제 야후에 소속된 플리커(Flickr), 37signal의 basecamp및 backpack, 지메일, 오르쿳(Orkut)같은 구글 응용프로그램 같은 웹 2.0 응용 프로그램의 핵심 컴포넌트가 되었다. 웹 개발자들이 PC 기반 응용 프로그램과 같은 풍부한 웹 응용 프로그램을 구축할 수 있게 되면서 우리는 전례없는 사용자 인터페이스 혁명기에 진입하고 있다.
흥미롭게도 대다수의 기능들을 제공하기 위한 움직임은 수년동안 있어왔다. 90년대말, 마이크로소프트와 넷스케이프는 마침내 실현되고 있는 이러한 기능들을 제공하기 위한 비전을 갖고 있었다. 그러나, 표준 쟁탈 전쟁은 브라우저 호환성있는 응용 프로그램 제작을 어렵게 했다. 마이크로소프트가 브라우저 전쟁에서 승리하자 유일한 브라우저가 되었으며, 웹 응용 프로그램을 작성할 사실상의 단일 표준 브라우저가 되었다.
FireFox가 브라우저 시장에서 경쟁자로 소개되고 있지만, 최소한 지금까지는 90년대에 벌였던 웹 표준에 대한 비생산적인 경쟁을 할 것 같지는 않다.
앞으로 몇 해에 걸쳐서 새로운 웹 응용프로그램들을 많이 보게될 것이며, PC 응용 프로그램에 버금가는 풍부한 웹 구현물이나 실로 기발한 응용 프로그램들을 볼 수 있기를 기대하고 있다. 또한, 지금까지 모든 플랫폼의 변화는 이전 플랫폼에서 시장 지배적인 응용 프로그램에 대한 리더십 변화의 기회를 창출해 왔다.
지메일은 이미 사용성면에서 PC 인터페이스들이 취했던 사용자 인터페이스와 웹의 강점-어디서나 접근가능하며, 데이터베이스의 강력함, 검색능력- 을 결합하여
이메일의 흥미로운 혁신을 제공하고 있다. 반면에, PC 플랫폼의 메일 클라이언트들은 메신저와 부재여부 표시(presence capabilities)를 추가하는 문제를 해결하지 못하면서 서서히 잠식되고 있다. 최고의 이메일, 메신저, 음성 기능을 추가하기 위한
VoIP를 풍부한 기능을 가진 웹 응용 프로그램에 사용한 휴대전화를 통합한 통합 커뮤니케이션 클라이언트를 볼 날도 가깝지 않을까? 경주는 이미 벌어지고 있다.
웹 2.0이 주소록을 다시 만들고 있는 방법을 살펴보면 쉽다. 웹 2.0 스타일의 주소록은 PC나 휴대폰의 주소록을 단순히 시스템에 기억하도록 요청한 연락처의 캐시로만 다룰 것이다. 동시에, 지메일 스타일의 웹 기반 동기화 에이전트는 주고받은 모든 메시지, 사용한 모든 이메일 주소와 전화 번호를 기억하고, 로컬 캐시에서 정답을 발견할 수 없을 때 어떤 것을 대안으로 제시할지 결정할 수 있도록 소셜 네트워킹 휴리스틱을 구축할 것이다. 거기에서도 답을 발견할 수 없다면, 시스템은 보다 넓은 소셜 네트워크에 질의하게 될 것이다.
웹 2.0 워드 프로세서는 단일 문서가 아닌 위키 형태의 공동 저작 형태를 제공할 것이다. 또한, PC 기반 워드 프로세서에서나 볼 수 있었던 다양한 서식기능들도 지원하게 될 것이다.
Writely는 아직 큰 인기를 못 끌고 있지만, 그런 기능을 제공하는 좋은 예이다.
웹 2.0 혁명은 PC 응용 프로그램에만 제한되지 않을 것이다. Salesforce.com은 CRM과 같은 엔터프라이즈급 응용프로그램에서 서비스로서의 소프트웨어를 어떻게 배포할 것인지를 보여주고 있다.
신규 참가자가 경쟁 기회를 가지려면 웹 2.0의 가능성을 모두 수용해야 할 것이다. 성공하는 회사들은 단순히 소프트웨어 인터페이스가 아니라 공유 데이터의 풍요속에서 이익을 만들어 내는 참여의 구조를 사용하여 사용자로부터 학습하는 응용 프로그램을 만들어 낼 것이다.
웹 2.0 회사의 핵심 경쟁력
7가지 원칙들을 살펴보면서 웹 2.0의 주요 특징들을 살펴보았다. 지금까지 살펴본 각 예제들은 이러한 원칙들을 하나 이상 포함하고 있다. 따라서, 우리가 생각하는 웹 2.0 회사들의 핵심 경쟁력을 요약하는 것으로 마무리를 할 것이다.
- 패키지 소프트웨어가 아닌 비용 효율적이고 확장성을 가진 소프트웨어
- 많은 사람들이 사용할수록 보다 풍부해지는 유일하고, 재창조가 어려운 데이터 소스에 대한 통제
- 협력 개발자로 사용자를 신뢰하는 것
- 집단 지능을 이용하기
- 고객 스스로 참여하는 롱테일을 만들 것
- 단일 디바이스를 넘어서는 소프트웨어
- 가벼운 사용자 인터페이스, 개발 모델, 그리고 비즈니스 모델
차세대 기업은 위 기능을 시험해볼 수 있는 "웹 2.0" 기업이 되어야 한다. 높은 점수를 얻을수록, 기업의 가치도 올라간다. 또한, 한 분야에서 탁월한 것이 7가지 분야에서 조금씩 잘 하는 것보다 훨씬 효과적이라는 것도 명심하자.
-- END