웹2.0에서 소셜네트워크까지
제목
웹2.0에서 오픈소셜까지 흘러오게 된 과정
발표주제
대상자는 웹2.0에 대한 지식이 전무하다고 가정하고 발표를 진행한다.
웹2.0과 오픈소셜이 어떤 것인지 알고 앞으로 어떤 것들이 가능하게 될지 생각해본다.
본문
웹 2.0이란 무엇인가?
팀 오라일리는 웹2.0 컨퍼런스에서 다음과 같이 말했다.[1]
Web 2.0 is the business revolution in the computer industry caused by the move to the Internet as a platform, and an attempt to understand the rules for success on that new platform
즉, 한마디로 말해서 웹 2.0은
플랫폼으로서의 웹
이라고 할 수 있다.
플랫폼이란 무엇인가?
그럼, 플랫폼이란 무엇인가? 이런 질문이 나오게 된다.
윈도우 OS는 오피스, 한글, 월드 오브 워크래프트 등의 수많은 어플리케이션들의 플랫폼이다.
리눅스와 맥OSX도 플랫폼으로서의 운영체제다.
즉, 플랫폼이란 어플리케이션을 돌릴 수 있는 기반환경을 제공해 주는 시스템을 말하는 것이고,
웹 2.0은 그것이 운영체제에서 웹으로 넘어가고 있다고 주장하고 있으며, 실제로 그렇게 되어가고 있다.
플랫폼으로서의 인터넷
그럼 플랫폼으로서의 인터넷이란 이렇게 말할 수 있다.
웹 어플리케이션을 돌릴 수 있는 환경을 제공하는 시스템
정답이지만 한가지 중요한 사실이 빠졌다. 웹 어플리케이션이 존재한다는 것은
웹 어플리케이션을 만들기 위한 환경 즉, 공개 메소드라고도 불리는 API가 제공되어야 한다는 것이다.
한번 생각해보자.
stdio.h 헤더파일이 없이 C프로그래밍을 할 수 있는가?
java.util 패키지 없이 Java프로그래밍을 하거나 System 모듈 없이 C#을 이용하는 것은?
이런 것들은 거의 불가능하다.
결국 웹 2.0의 핵심은 웹 어플리케이션을 돌릴 뿐만 아니라 만들기 위한 환경을 제공했다는 것에
가장 큰 의의를 가진다.
그럼 웹 2.0에서의 플랫폼은 다음과 같이 설명할 수 있다.
웹 서비스에 대한 접근방식이 웹 페이지에서 API로 바뀐 시스템
그리고 웹2.0의 정의는 다음과 같이 다시 쓸 수 있다.
개발 플랫폼으로서의 인터넷
웹페이지와 API
왜 이것이 중요한가? 기존에 잘 써오던 온라인 영화예매나 인터넷뱅킹은 무엇이었나?
그것도 웹 어플리케이션이 아닌가? 무슨차이가 있는가? 하는 생각을 하게 된다.
맞다. 그것들도 모두 웹 어플리케이션이다.
그러나 기존의 웹 서비스들은 웹페이지로의 접근만을 허용했다.
내가 CGV에서 온라인 영화예매를 한다고 했을 때 내가 택할 수 있는 방법은
해당 웹페이지에 접근해서 CGV 회원가입을 하고 영화예매를 하는 수 밖에 없다.
외부에서 CGV 온라인 영화예매를 한다는 것은 꿈과 같은 이야기이며[2]
심지어는 단지 온라인 영화 순위를 보기 위해서도 CGV홈페이지에 들어가서 봐야만한다.
지금까지 우리는 이런 것들이 당연하다고 여겨져 왔지만 선구자들은 그렇지 않다고 생각했다.
그들은 HTML을 파싱해서 정보를 가져오고 다양한 시도를 했으나 단 한번의 홈페이지 리뉴얼로
그들이 작업했던 모든 것이 사라졌다. 그들이 만들었던 웹어플리케이션은 HTML코드에 완전히 의존적이었다.
그래서 웹에도 API가 등장했고, 모든 것이 달라졌다. 웹에서 공개한 API를 OpenAPI라고 부른다.
모든 웹서비스업체들은 기존의 Web Design이라는 일 외에 Data Design이라는 새로운 주제를 고려해야할 상황이 되었다.
그리고 기존에는 단지 서비스였던 것들이 API를 웹에 오픈하면서 서비스가 플랫폼이 되었다.
RSS
그럼 개발 환경만이 바뀌었는가? 하면 아니다.
다음의 표를 보자
이 표는 웹1.0에서 2.0으로의 기술변화에 대한 예를 잘 정리해둔 자료이다.
다른 부분은 제쳐두고 눈여겨 볼 부분은 마지막 stickiness 에서 syndication 으로의 전환이다.
컨텐츠를 웹에 배포하는 방법에 있어서 예전에는 게시판이나 유즈넷에 글을 붙이는(stickiness)
방식이었지만 웹2.0은 신문이나 잡지를 배급하듯이(syndication) 배급하는 방식으로 바뀐 것이다.
이것의 기술적 구현이 RSS(Really Simple Syndication 또는 Rich Site Summary)[3] 이다.
이것은 XML(eXtensible Markup Language)[4] 이라는 언어를 이용해
데이터를 구조적으로 구성해(Data design) 누구든지 접근할 수 있도록 웹에 게시한다.
여기서 게시된 XML형식의 파일을 RSS 피드(feed)라고 한다.
이 때 중요한 점은 RSS는 그 데이터를 표시하고 있는(View) HTML과 무관하며, 오직 데이터만 다룬다는 점이다.
따라서 이 기술을 이용하면 커뮤니티나 블로그에 새 글이 올라왔는지 확인하기 위해서 새로고침 버튼을 연타할 필요없이
RSS파일이 수정되었는지만 확인하여 새로 추가된 데이터가 있을 경우만 해당 페이지에서 데이터를 가져올 수 있다는 점이다.
나는 RSS가 편리한 기술이라는 것은 알았지만 아무것도 몰랐던 상태에서 기술에 대해 좀 더 알아보고자,
4학년 1학기에 K-mean 클러스터링[5] 이라는 군집화 방법을 이용해
RSS피드 생성기를 만들었다. 피드 생성기의 핵심은 RSS가 지원되지 않는 기존의 학교게시판을 분석해서
RSS피드를 자동으로 생성하는 것이었다.
단, Web2.0의 원칙처럼 최대한 Data에 의존적으로 처리하기 위해서 게시판 목록 HTML에서
링크를 의미하는 A 태그만을 카운팅하여 각 링크가 가리키는 곳의 URL을 Diff 알고리즘을 이용해 비교한다.
학교 게시판에 적용해봤는데 나름 잘 돼서 실제로 배치해서 써보려고 했지만 과 게시판의 헤더체크 보안문제로 배치는 포기했다.
매쉬업
매쉬업(MashUp)이란 위키피디어에서 이렇게 정의하고 있다.[6]
a web page or application that combines data or functionality from two or more external sources to create a new service.
즉, 두개 이상의 외부 서비스나 데이터를 결합해 새로운 서비스를 만들어 내는 것이며, 외부 서비스나 데이터는 API라는 말로 대체할 수 있다.
그럼 매쉬업을 다시 정의하면 다음과 같다.
두개 이상의 웹 API를 결합하여 새로운 서비스나 데이터를 만들어 내는 것
매쉬업은 우리나라에 2006년도에 처음 소개 되었고 본격적으로 알려지기 시작한 것은 1년 반 남짓 된다.
매쉬업에 관련된 가장 많은 데이터를 가지고 있는 곳은 programmableweb[7] 이다.
이곳에 등록되는 매쉬업은 총 4187개 이며 지금까지 하루평균 3개의 매쉬업이 등록되었다.
현재 매쉬업은 지도관련 서비스가 가장 많이 등록되고 있으며 이후 설명할 트위터, 페이스 북 등의 소셜 서비스가 그 뒤를
잇고 있다.
매쉬업 프로젝트
나는 4학년 1학기에 담당교수님 과목에서 프로젝트로 CGVTube를 Java환경에서 처음 매쉬업을 다루었다.
CGVTube란 CGV + YouTube로 CGV영화순위를 이용하여 해당 제목의 관련 YouTube영상을 찾아주는 단순한 시스템이다.
예전부터 몇번이나 말했듯이 웹을 정말 싫어했던 나로서는 처음 웹 개발을 했었던 것으로,
실력이 부족해 원래 계획보다 기능을 많이 줄였지만 코드품질과 다양한 경험으로 나름대로 만족하는 프로젝트이다.
또 다음에서는 1년에 두번씩 자신들의 API를 이용한 매쉬업 캠프인 devday를 여는데, 4학년 1학기에 워크플로우 연구실에 있던
오제윤 학생과 참가해 만들었던 BrainHumor 프로젝트가 있다.
BrainHumor는 뇌종양인 BrainTumor에서 따온 말로 시간관계상 내 맘대로 지은 것이므로 그보다 더한 의미를 부여하고 만들지는 않았다.
이 서비스는 플리커라는 사진공유 서비스의 API를 이용해 사용자의 서비스 이용정보를 얻어와 뇌구조를 만들어 제공하는 서비스이다.
그리고 이 서비스는 미투데이[8] 라는 소셜 네트워크 서비스를 통해 사진과 글을 포스팅 하고 다른 사람과 공유할 수 있다.
또, 같은 시기에 폭소노미를 기반으로한 내비게이션 서비스인 Favinavi 도 만들었다.
Favinavi는 Favorite + Navigation 으로 이것은 야후 맵을 이용해 내비게이션을 구현하고
사용자가 특정위치를 즐겨찾기 해두면 현재 사용자 주변위치에 다른 사용자가 즐겨찾기한 위치를 볼 수 있는 서비스이다.
즉, 가보지 않아서 랜드마크가 부족한 지역이나 랜드마크가 너무 많아서 필터링을 해야하는 경우에 유용하게 사용될 수 있다.
여기서 즐겨찾기는 폭소노미를 이용한 것으로, 일단 폭소노미는 사용자가 임의의 단어를 이용해 만든 분류체계라고 알고 넘어간다.
상세한 내용은 뒤에 설명한다.
작년에 한 마지막 프로젝트는 SmartSketches 라는 서비스 였다..
smart sketch는 거칠게 그린 약도를 뜻하는 rough sketch를 거칠지만 유용한 지도라는 의미로 smart와 더해 만들었다.
SmartSketch는 야후 지도를 이용하여 사용자가 위치를 지정하고 위치를 이어줌으로써 약도를 만든다.
그리고 사용자의 플리커 계정에 해당 위치에서 찍은 사진이 있다면 각 약도의 포인트에 집어넣을 수 있다.
즉, 사진이 첨부된 약도를 쉽게 만들고 이를 다른사람과 쉽게 공유할 수 있는 서비스이다.
폭소노미
잠깐 위에서 나온 단어들을 설명하고 넘어가자.
폭소노미는 위키에서 다음과 같이 정의하고 있다.
a system of classification derived from the practice and method of collaboratively creating and managing tags to annotate and categorize content
정의에 따르면 폭소노미는 협력적으로 태그를 관리해서 어떠한 컨텐츠를 분류하는 시스템이다.
태그란 특정 사물에 대해 가지고 있던 이미지를 언어로 형상화시킨 것으로 대부분 형용사나 명사로 표현된다.
폭소노미를 다음과 같이 풀어쓸수 있다.
특정 컨텐츠를 다양한 사람들이 각자의 언어로 분류하고 그것들을 협력적으로 모을 수 있는 시스템
또, 협력적이라는 것은 여러사람이 한다는 것이고, 협력의 힘을 이해하기 위해서는 웹 2.0에서 사용자 참여를 설명하는 이론인 집단지성을 알아야한다.
집단지성
집단지성이란 위키에서 다음과 같이 정의하고 있다.
a shared or group intelligence that emerges from the collaboration and competition of many individuals
쉽게말해서 집단 자체가 지성을 가진다는 말이다.
즉, 집단의 개개인이 독립적(독립성)이고 자기 나름의 합리적인 판단(다양성)을 해서 그것을 집단의 합의로 하나의 결과를 도출(분산성)해 낼때
그 집단은 지성을 가졌다고 말하고, 대부분의 경위 집단의 지성으로 내린 결과는 그 집단에서 가장 뛰어난 한 사람이
내린 결론보다 나은 결과를 도출해 낸다는 것이다. 자세한 내용은 집단지성의 최고 고전으로 꼽히는 대중의 지혜(Wisdom of Crowds)와
집단지성의 창발성을 설명하는 이머전스(Emergence)라는 책을 읽어보도록 한다.
SNS(Social Network Service)
블로그에서 SNS로
최근 이러한 매쉬업의 지원을 받고 SNS(Social Network Service)라는 새로운 개념의 서비스가 급부상 하게 된다.
SNS란 뒤에 자세히 설명하겠지만 이해를 돕기위해 간단히 사용자끼리의 커뮤니케이션 기능이 강조된 블로그라고 해두자.
블로그는 리치한 컨텐츠 생성을 통해 정보의 생산을 용이하게 해주었지만 사용자간의 교류는 여전히 불편했다.
전체 시스템이 컨텐츠의 공유와 생산에 초점을 맞추고 발전해왔기 때문이다. 즉, 처음 봤던 표에서 CMS를 위키로 대체했다고 했지만
사실 이용자의 측면에서는 블로그가 CMS를 대체했다고 보는 편이 맞을 것이다.
정보의 급속한 생산과 확산은 어느샌가 ‘인터넷에는 모든 정보가 다 있다.’ 는 생각을 사람들에게 심어주었고,
사름들은 정보를 얻기위해 인터넷에 접근해 있는 시간이 늘었다. 그 과정에서 인터넷에서 내가 원하는 정보에 관심있는 블로그와
그 블로그를 운영하는 사람들을 발견하게 되고 블로그를 통해 서로 댓글이나 트랙백을 주고 받았다.
그러나 해당 사용자의 글에 댓글을 달거나 트랙백을 다는 것은 기존의 커뮤니티방식과 다르지 않다. 정적인 시간에 이루어진다.
글을 올리고 해당 사용자가 로그인 할 때까지 기다려야하고 로그인을 해도 오늘 내 글에 반드시 글을 남기리라는 보장이 없다.
이를 보완할 수 있는 메신저는 네트워크를 넓히기에 인맥의 확장성이 부족했고, 기존의 방식은 인맥 확장성은 높았으나 실시간적인
측면이 부족했다. 그래서 두가지를 합친 SNS가 나타났다.
그러나 초기의 SNS는 은총알[9] 의 역할을 하지는 못했다.
####SNS의 정의####
먼저 SNS에 대해서 알아보자. SNS란 소셜 네트워크 서비스의 약자로 위키피디어에서는 다음과 같이 정의하고 있다.[10]
focuses on building online communities of people who share interests and/or activities, or who are interested in exploring the interests and activities of others.
즉, 개인의 취향이나 관심사를 공유하는 온라인 커뮤니티 시스템이다.
####SNS의 성장####
정의에 따른 즉, SNS는 카페, 커뮤니티형태로 이전부터 존재해왔었다. 그런데 최근에 들어서 갑자기 SNS가 각광받는 이유는 무엇인가?
다시 말해서 현재의 SNS라는 서비스들이 기존의 카페나 유즈넷 같은 커뮤니티와는 무엇이 다른가?
위의 정의에 근거하면 다르지 않다. 그러나 웹 2.0의 개념에서는 판이하게 다른 한가지가 있다.
바로 OpenAPI를 이용한 매쉬업 측면이다.
기존의 카페나 커뮤니티는 폐쇄적인 성격으로 외부로 데이터를 노출하지 않는다. 카페나 커뮤니티 사람들 끼리만 정보를 공유하고 외부에서는 데이터에
접근할 수 없었다.
그러나 MySpace, Facebook, Twitter 등의 새로운 SNS는 자신들의 서비스와 소속되어 있는 사용자의 정보를 OpenAPI 형태로 외부에 공개하기 때문에
서비스가 플랫폼으로서의 역할을 하게 되었고, 매쉬업의 강점과 쉽고 빠르게 웹 서비스를 개발할 수 있는 환경이 마련됨에 따라 갑작스럽게 급성장하게 된 것이다.
급성장, 급부상이라는 표현을 사용했는데 대체 얼마나 빠르게 성장했길래 그러는가?
표로 한번 확인해보자.
표에 따르면 트위터는 전년대비 1900%의 성장을 했고 페이스북은 190%의 성장을 했다.
사용자 수로 봤을때 트위터는 얼마에서 얼마로 늘었고 페이스북은 얼마에서 얼마로 늘었다.
SNS와 API
수정중
Open Social
수정중
Social Web과 Web N.0
수정중
- Tim O’Reilly (2006-12-10). “Web 2.0 Compact Definition: Trying Again”. Retrieved on 2007-01-20. [↩]
- 현재도 그렇다 [↩]
- http://en.wikipedia.org/wiki/RSS [↩]
- http://en.wikipedia.org/wiki/XML [↩]
- http://en.wikipedia.org/wiki/K-means_clustering [↩]
- http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid) [↩]
- http://www.programmableweb.com/ [↩]
- http://me2day.net [↩]
- http://en.wikipedia.org/wiki/No_Silver_Bullet [↩]
- http://en.wikipedia.org/wiki/Social_network_service [↩]

