abulaphiaa

Keep Yourself Social

[2] Social Backbone 어떻게 가능한가?

leave a comment »

Google+의 런칭으로 인해 이질적인 Social Networking Service간 상호호환성이 보장되는 Social Backbone이 출현하게 되었다는 Edd Dumbill의 주장을 들어 보았다.

이 아티클의 핵심주장은 대충 다음과 같다. 1) 이메일이 개방적인 표준을 채택함으로써 이질적인 시스템간 상호호환성이 보장됨에 따라 시공간을 초월하여 공유와 Collaboration이 가능해 지고, 그 위에서 동작하는 다양한 오픈 에코 시스템들이 발전한 것처럼 Google +가 개방을 통해 지금까지 인터넷에 존재하지 않았던 Social Layer의 상품화를 초래할 것이고, 여기에서 많은 어플리케이션이 상호 호환되는 구조로 발전할 것이다. 2) Facebook은 친구관계의 형성이 폐쇄적인 구조이고, 컨텐츠별로 URI가 없고, Facebook의 Social Layer를 사용하면 Facebook 플랫폼에 종속되는 구조이기 때문에 소셜 백본이 될 수 없는 반면 Google은 웹의 개방에 적극적이고, Data Ownership이 완전히 User에게 있고, 구글+ 비회원에게 이메일로도 포스트를 전달할 수 있고, 서클은 상호 호환성이 보장되는 구조이기 때문에 Social Backbone으로 발전할 수 있다는 것이다.

이 아티클을 다 읽고 나면 당장 이 사람이 주장하는 “Social Backbone이 멀까?”라는 의문을 제기하게 된다. Edd Dumbill은 Social Backbone의 요구사항으로 1) Identity 2) Sharing 3) Notification 4) Annotation 5) Communication 등 5가지를 제시하는데, 이것들은 비록 상호 호환되지 않기는 하지만 이미 Google+뿐만 아니라 Facebook, Window Live 같은 메신저에서도 이미 맹아적인 형태로 실재한다.

개방이라는 관점에서 봤을 때 Facebook은 “OAuth 인증체계”와 “Social Plug-In”을 통해 이미 자신의 플랫폼을 3rd Party에게 거의 완전히 개방함으로써 사람과 사람뿐만 아니라 사람과 웹 페이지에 의해 Representation되는 현실세계의 Object들까지 Facebook의 Social Graph로 이미 Integration시키고 있다. 실제로 수십만개의 웹사이트들이 Facebook의 Open Platform을 통해 자신의 서비스를 제공할 수 있게 됨에 따라 Facebook 자체가 3rd Party에게 개발환경을 제공하는 Web OS로서의 지위를 획득하게 된 것이다. 이런 관점에서 만약 Social Backbone이 존재하게 된다면, Google + 보다는 Facebook이 더 유리하다고 보는 것이 더 현실적이지 않을까 ?

필자는 Facebook의 Social Layer를 활용할 수록 Facebook 플랫폼에 대한 종속이 심해지는 구조이기 때문에 Facebook은 Social Backbone이 될 수 었다고 주장하는데, 개방형 표준의 추구를 통해 Google+가 Facebook을 이기고 Social Backbone의 자리를 탈환한다면 필자의 생각처럼 Google+가 모든 어플리케이션이 상호 호환되는 중립적인 플랫폼처럼 동작하게 될까 ? 즉 구글 +가 Social Backbone으로 동작하기 위해서는 Social Network 시장의 독점적인 지배력을 바탕으로 다른 SNS와 상호 호환 – 구글+와 Facebook, Twitter 등 Social Software간 버디목록이 공유되고, 상호간 포스트와 댓글이 호환되는 구조 – 을 강제할 수 있고, 상호호환이 보장되는 개방적인 에코시스템하에서 다른 3rd Party들도 다양한 App.들을 개발할 수 있어야 가능할 것 같은데, 이는 현실적으로 볼 때 Facebook과 꼭 마찬가지로 결국 Google 플랫폼에 대한 사업자와 User의 종속성을 심화시키는 것 아닌가? ? 더 솔직히 말하면 Google+가 Facebook을 흉내내는 것이 불과한 것 아닌가 ?

어쨋든 Edd Dumbill의 주장은 화두를 제기한 것으로는 훌륭하지만 개방형 표준에 의해 이질적인 Social Netwokning 시스템이 상호 호환될 수 있는지에 관한 아이디어를 정확히 이해하기는 어렵다.

따라서 글을 읽으면서 이질적인 시스템간 상호호환성이 보장됨으로써 Social Backbone이 만들어지려면, 그리고 소셜 소프트웨어가 이메일처럼 서로 다른 시스템간 상호 호환될려면 어떻게 되어야 할까라는 질문에 스스로 답변을 해봤다. 트위터 사용자 A는 150명의 팔로워를 가지고 있고 또 다른 Social Networking 시스템 Google+의 사용자 B는 200명의 팔로워를 가지고 있다고 가정하고 이 두가지 시스템간 상호 소통이 가능해지기 위해서 어떻게 되어야 하는지 다음과 같은 질문을 해 본다.

1. A가 트위터에 로그인하여 Google+ 사용자인 B와 친구관계의 형성이 가능한가 ?

  • 트위터 User A와 Google+ User B가 친구맺기와 관련하여 공통된 프로토콜을 사용한다면, A가 B를 Following할 수 있을 것이다.
  • 1단계 : A는 트위터에서 본인의 주소록에 저장되어 있는 B의 이메일 주소나 이름 등으로 검색한다.
  • 2단계 : A가 트위터에서 요청한 검색 Quary는 Social Networking System들이 제공하는 표준화된 검색 Interface를 통해 각각의 DB의 회원정보를 뒤져서 적합한 검색의 결과값이 제공되면(Thumanil/이름/자기소개/서비스명 등으로 표시되는 결과 List), User A는 그중에 하나 즉 Google+에 등록되어 있는 B를 선택하고 Following 버튼을 클릭한다.
  • 3단계 : 트위터는 B가 자신에게 속한 도메인이 아니기 때문에 SIP Redirect Server 또는 이메일의 DNS 시스템과 유사한 시스템을 통해 Google+에 A가 B를 following 했다는 정보를 던져 준다.
  • 4단계 : 그러면 Google+는 A에게 twitter user라는 tag를 달아서 B의 follower list에 등록하고 B에게 “User A가 트위터에서 당신을 Follow했다.”는 것을 Notify해 준다. 이때 Google + User B에게 Twitter User A가 누구인지 Thumbnail 사진과 이름 등이 표시되고 User B가 클릭하면 User A의 트위터 프로필 페이지로 이동할 수도 있어야 한다.
  • 5단계 : Google+의 User B 역시 동일한 방식으로 트위터 User A를 Follow하면 Google+는 User B의 Following List에 트위터 User A를 추가한다.
  • 6단계 : 트위터 User A에게 동일한 방식으로 Google+ User B가 자신을 Following했다는 것이 Noti.되면, User A의 트위터 Following List에 Google+ User B가 추가된다.
  • 이리하여 트위터 User A와 Google+ User B는 상호 소통이 가능한 Mutually Following 관계가 성립된다.

2. 텍스트/포토/동영상/Link 등 상호 포스트가 어떻게 공유될까 ?

  • User A가 트위터의 what’s happening에서 텍스트, 포토, 동영상 등을 포스트하면 트위터 자체 Follower들뿐만 아니라 User A를 Follow하고 있는 Google+ User B에게도 Feed가 발생해야 한다.
  • 물론 이런 Text, 포토, 동영상, Link 등은 독립된 URI를 가지는 object로 생성되어야 하고, 각각의 Object에 달려있는 코멘트들과 함께 하나의 Thread를 유지하는 독립된 페이지로 만들어 져야 한다.
  • 그리고 User B가 Google+에서 User A가 트위터에서 올린 포스트에 코멘트를 달면, 이 코멘트가 User A에게 Notify되어야 한다 (그런데 twitter의 경우 코멘트의 형식이 @id reply 형식으로 Google+나 Facebook과 다르기 때문에 자신의 형식에 맞게 Google+에서 User B가 단 댓글이 relpy로 변경되어 수신될 것이다)
  • User A 역시 본인이 트위터에 날린 original 포스트에 달린 Google+ User B의 코멘트에 실시간 응답이 가능해야 한다.

일단 서로 다른 Social Networking 시스템간 “친구추가” 및 “상호 포스트” 교환 이 2가지 시나리오만 생각해 봐도 표준화되어야 할 것들이 무척 많다는 것을 알 수 있다.

1. 각 Social Networking 서비스의 회원정보에 상호 접근할 수 있는 표준화된 검색 API

  • User의 이름이나 이메일 주소로 개별 Service들의 회원DB에 상호 접근할 수 있는 API
  • 검색 결과값 Page를 구성하기 위한 표준 Format (Thumbnail/이름/서비스명 : Twitter, Facebook, Google+, Linkedin 등/회원 profile url)
  • 일단 여기에서 부터 정보검색의 결과로 회원정보가 어디까지 공개되느냐하는 Privacy Issue, 상호 회원 DB에 접근할 수 있는 표준화된 Gateway 시스템 (즉, 이메일에서 DNS에 등록된 도메인 주소를 통해 수신자를 찾아 가듯이 이 Gateway를 통해 특정 도메인의 Social Network 서비스의 User를 찾을 수 있어야 함)의 구축, 그리고 해당 서비스 내에 SNS 검색을 지원하는 U/I를 별도로 제공해야 하는 등 많은 이슈가 발생한다.

2. Following Request & Notification 

  • 검색 결과 Page에서 “홍길동”이 여러명 존재할 수 있는데 이 중에 자신이 찾는 사람을 찾아서 Follow 버튼을 클릭하면 Twitter User A는 Google+ User B를 Follow할 수 있어야 하는데,
  • 이것은 Facebook의 Like, Twitter의 Follow Button 등 3rd Party에게 공개되어 있는 기존 Social Network 서비스에서 관계를 맺기 위한 API를 활용할 것이냐 또는 공통의 규약을 만들 것이냐는 이슈가 존재할 수 있다.
  • Google+의 경우 상대적으로 후발 주자이므로 Twitter나 Facebook에서 제공하는 API와의 상호 호환성을 고려하여 Follow API가 설계될 가능성이 높다.
  • Facebook의 경우 “Open Graph Tag”가 삽입된 3rd Party의 페이지를 Facebook의 User가 Like하면 해당 웹페이지와 이 User의 프로파일간 Direct Connection이 맺어지고 이 웹페이지에서 update된 정보가 Facebook User에게 자동으로 Feed되는 구조가 이미 존재한다. 그러나 이것은 사람과의 관계가 아니라 Web Page에 의해 representation되는 실제 사물과 관련된 것이고, 친구관계의 형성은 초대하고 승인하는 구조이므로 다른 도메인의 사용자가 Facebook의 User를 Follow한다고 해서 Facebook 입장에서 아직 친구관계가 형성된 것은 아니기 때문에 Facebook의 User의 Update된 내용이 다른 도메인 친구에게 자동으로 Feed되지는 않을 것이다. 따라서 Facebook 입장에서 Twitter나 Google+ User가 Facebook User를 Follow했다는 것을 해당 User에게 “초대 알림” 형태로 Notify되고, 이 User가 승인을 해야만 할 것이다.반대로 Google+와 Twitter User 입장에서는 Facebook User와는 Mutually Following 관계가 성립해야만 상호 소통할 수 있는 구조가 마련되는 셈이다.
  • 어떻게 해서든 Facebook, Google+, Twitter간 Follow 버튼을 통해 친구관계가 형성될 경우, 다른 Social Network Service의 User가 자신의 User를 Following했다는 것을 Notify해 주는 것은 큰 문제가 없을 것이다.

3. Communication : Post, Feed, Comment의 상호호환

  • 서로 다른 Domain User간 일방적인 Following 또는 Mutually Following을 통해 친구관계가 성립되면, 특정 도메인에서 User가 포스트를 올렸을 때 이 User의 Follower List를 조회한 후 이 중 다른 Domain User에게 속한 Follower들을 찾아서 1번)에서 지적한 Gateway를 통해 Feed를 요청하게 된다.
  • 그러면 이 Gateway를 통해 Follower들이 속한 서비스 도메인에 Feed를 요청한다.
  • 이것 또한 앞서 지적한 Like, Follow Button과 같이 해당 서비스별로 3rd Party Site에서 자신의 Site로 글을 Post할 수 있는 API가 이미 존재하므로 이것을 해당 사이트 들이 상호 호출해서 사용할지 또는 별도의 표준화된 API를 사용하게 될지는 확실하지 않지만 기존 SNS의 Post API는 해당 서비스의 인증을 받은 가입자만이 사용할 수 있으므로 아마도 후자가 되어야 할 것이다.
  • 즉, Facebook은 사용하지 않는 Google+ User A가 포스트한 글이 마치 이메일을 보낸 것처럼 Facebook의 친구인 User B에게 자동으로 Feed되어야 하는데, Google+입장에서는 Facebook User B가 자신의 회원이 아니므로 별도의 표준화된 Gateway를 통해 Facebook User B에게 Feed를 해달라고 요청하면, 해당 Gateway에서 Facebook의 Feed API를 호출해서 사용하게 될 것 같다.
  • User A가 Google+에서 올린 Post가 Facebook의 User B에게 성공적으로 Feed가 발생했을 경우, User B가 User A의 포스트에 Comment를 달면 이것이 실시간으로 User A의 Googl+ 페이지로 와야하고 반대도 마찬가지이다.
  • Facebook의 Comment API는 3rd Party Site에서 Facebook User가 Facebook의 인증을 받은 후 코멘트 API를 호출해서 댓글을 작성하면 실시간으로 Facebook의 User 및 이 User의 친구들에게 코멘트 Feed가 발생하게 되어 있다.
  • 현재 Facebook의 회원인증을 받은 사람들만 코멘트 Feed가 발생하는 구조를 Google+나 Twitter와 상호 호환될 수 있는 구조로 만들어야만 한다.

이것이 현실성이 있느냐 없느냐는 이야기는 일단 뒤로 하고 저자는 Google+가 1) 후발사업자로서 기존 강자들과 상호 호환이 가능한 구조로 이러한 API를 설계할 가능성이 높고 2) Search Engine의 효율적인 사용을 가능하게 하기 위해 최대한 개방적인 구조로 시스템이 최적화될 가능성이 높기 때문에 향후 Social Backbone을 주도할 것이라고 보는 것이다.

여러분들은 어떻게 생각하세요?

Written by abulaphia

July 27, 2011 at 12:12 pm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: