월요일, 10월 25, 2010

서평 : 음성처리와 자연언어처리 개론

음성 인식에 관심이 있어서 한글로 된 서적을 찾다가 고른 책인데 C와 Prolog로 작성된 PC용 소스코드가 포함되어 있다고 해서 기대를 했다.

원저인 Introducing Speech and Language Processing이 2005년 출간이고 차례를 읽어봐도 어느 정도 체계가 잡혀 있다고 생각했는데, 결론부터 이야기 하면 매우 실망.
음성 처리 관련한 개론서로는 적합한지 모르겠지만, 실제 음성 인식까지 비슷하게라도 구현해 보려면 이 책의 내용은 출발점만 제공할 뿐 상당한 연구가 더 필요할 듯.
C와 Prolog로 작성된 소스 코드는 꼭 필요한지 의문이 든다.
이 책을 교재로 강의할 때에는 음성 인식이 학기 목표가 되지는 않을 것 같다. 단지 음성 처리 관련 지식 일반에 대한 이해를 확인하는 수준이 될 것 같다.

음성 인식을 구현까지 가보고자 하는 사람에겐 너무 미흡한 책. 프로그래밍 지식이 없는 언어학, 음성과학 분야 초급자를 위한 교과서라는 서평이 적합한 듯.

실제 읽은 것은 원저가 아니라 2009년에 한국문화사에서 발행한 번역본인 음성처리와 자연언어처리 개론. 다 읽는 데 1주일도 안 걸렸다는 점에서 위안. (반대 급부로 영어 서적과 논문에 대한 부담이 점점 커진다.)

이 다음 단계는 어디서 출발을 해야 하나?

창의적 혁신 방법. 메타포(metaphor)의 확장과 목적(goal)에 따른 결합

소프트웨어 기술의 창의적 혁신이 소프트웨어 발전의 핵심이라고 주장해왔는데 높은 추상 수준에서만 언급하고 구체적인 방법은 예시하지 않았는데 몇 가지 쉬운 예를 들어본다.

창의는 끊임없는 심화와 아이디어의 포착을 통해 만들어진다.
창의는 생각을 통해 만들어진다. 창의는 무(無)에서 만들어지는 것이 아니라, 사고의 연속선 상에서 약간의 jump를 하는 것이라고 보는 것이 적합하다.
생각은 크게 다음 두 방향으로 진행된다.

생각을 잘 정리하고 개념화하고, 그 개념의 정신적인 표상(mental image)을 확립하는 통찰이 하나의 방향이며, 이를 통해 풀리지 않는 문제를 명확하게 하고 계속적인 생각을 통해 문제의 풀이를 찾는 것이다.
또다른 방향은 일상에서 발생하는 단상들을 잘 잡아서 기록해두고 발전시키는 것이다.

생각의 심화와 우연한 착상 두 가지를 뜻하며, 실제로는 두 가지가 결합해서 하나의 결과를 만드는 경우가 많다.
풀리지 않는 과학 문제가 우연한 착상을 통해 연결되어 풀리기도 하며, 재미있는 발상을 심화하고 발전시켜 위대한 발명으로 이어지기도 한다.
사람의 뇌를 구성하는 좌뇌와 우뇌의 동작 방식이 조금 다르기 때문이라고 생각하면 좋을 것 같다. 직렬적이며 논리적인 좌뇌와 병렬적이며 비동기적인 우뇌의 처리 방식이 존재하기 때문이며 창의는 이들 활동의 적절한 결합을 통해 만들어진다.

또, 이러한 문제를 개인적인 사유의 영역에서 여러 사람의 다양한 사유를 통해 좀더 많은 관련된 아이디어를 만들어내는 것이 회의이다. 회의는 더 나은 창의를 더 빨리 발생하게 하는 중요한 기폭제 역할을 할 수 있다.

창의의 기교 하나. 메타포의 확장 적용
"좀더 기술적으로 창의를 쉽게 일으키는 방법은 없을까"하는 고민을 할 수 있는데 너무 기교적으로 생각하는 것은 창의의 본질과 맞지 않긴 하지만, 도움이 되는 기교는 있다.

가장 기본적인 것은 생각을 다양하게 하는 것이다. 생각을 변형해보고, 범위를 넓혀서 생각해보는 등 안된다는 결론에 갇혀 있기 보다는 명확하게 안된다는 증명이 이루어지지 않는 이상, 끊임없이 해결책을 사고의 변형과 확장을 통해 사고하는 것이 중요하다.

좀더 구체적인 방법 중 메타포의 확장 적용의 예를 들어보자.
어떤 메타포(metaphor, 은유)를 가지고 사물을 인식하느냐 하는 것은 매우 중요하다. 앞에서 mental image라고 표현했는데 논리적 개념을 쉽게 인지할 수 있는 친숙한 은유를 통해 좀더 직관적으로 사고할 수 있게 만드는 것이 그 개념의 심화 발전에 큰 도움이 된다. 복잡한 논리 체계를 머리속의 활자로만 인식해두면 금방 잊어버리게 될뿐 아니라 응용할 수 있는 지식이 될 수가 없다.

이어폰을 끼고 MP3 플레이어를 듣고 있다가 집에 들어오는 예를 생각해보자. 집에는 전축이 있고 좋은 스피커가 갖추어져 있다. 이럴 때 MP3 플레이어의 음악을 쉽게 전축으로 옮겨서 실행했으면 좋겠다는 생각을 해볼 수 있다. 이것을 MP3를 "홈 연계 실행"하는 메타포라고 얘기할 수 있다.
최근에 애플에서 발표한 Apple TV는 이러한 메타포를 동영상과 TV에서 적용하고 있다.
아이팟에서 동영상을 보고 있다가 집에 들어왔을 때, Home Theatre가 잘 갖춰진 집에서는 TV를 통해 계속 실행하고 싶은 것이다.

적합한 예가 되었는지 모르겠지만, "홈 연계 실행"이라는 개념(용어가 아님)이 분명하면 쉽게 적용을 확장할 수 있다는 것이다. 오디오라는 개념에 잡혀 있으면 이 은유를 확장할 수가 없다.

메타포를 확장 적용하면 메타포가 표상하는 개념 자체도 심화되고 새로운 특질이 발견될 수 있다. 그리고 메타포의 확장 적용만으로도 충분히 훌륭한 창의가 되는 경우가 많다. 소프트웨어 알고리즘에서 유전학 알고리즘(genetic algorithm)이나 신경망 알고리즘(neural networks) 같은 경우는 유전학, 생물학의 메타포를 소프트웨어에 적용한 경우이다.

물론 창의가 생각 수준에서 하나의 제품과 같은 형태로 발전하기 위해서는 훨씬 더 많은 사고의 검증 과정과 정련 과정, 그리고 다른 기술과의 결합, 마케팅 등 여러 가지 요소를 거쳐야 한다. 앞의 Apple TV 예만 하더라도 실제로 그렇게 메타포가 확장 적용된 것인지 다른 경로로 아이디어를 수집한 것인지도 알 수 없으며, 이것이 성공할 수 있을지에 대해서도 전혀 알 수가 없다. 하나의 창의적 발상의 예로 들었을 뿐이다.

창의의 기교 둘. 목적에 따른 기술 결합
목적에 의해 기술을 결합하는 것은 별로 새로운 것은 아니지만, 좀더 구체적인 시나리오를 목적으로 하라는 것이 소개하는 핵심 내용이다.
메타포를 만들 때도 좀더 직관적으로 느낄 수 있는 지적 표상(mental image)를 만들어야 한다고 했지만, 목적을 설정할 때에도 마찬가지이다.
매우 구체적인 시나리오일수록 아이디어들이 쉽게 끌려나온다.

예를 들어, 다음과 같은 시나리오를 목적으로 잡아보자.

"'가까운 일식집을 알려줘'라고 휴대폰에 질문한다"

이 시나리오는 음성 인식 관련 사이트에서 6,7년 전에 올린 글인데 이 기술이 구현된 것은 사실 얼마되지 않았다.
관련 기술은 스마트폰 기술, 음성 인식, 지도 검색, 위치 정보 서비스 등이다.

이러한 구체적인 목적은 일반화된 목적에 비해 관련 기술들을 찾기 쉽게 해주며 결합 방법도 분명하게 해준다.

이미 존재하는 기술도 있겠지만, 대부분의 기술들은 새로운 목적에 아주 딱 맞게 갖추어져있지는 않다. 경우에 따라서는 심각한 기술 최적화와 창의적 기술 응용을 수반하게 된다.
특히 사람의 생활 패턴과 관련된 기술일수록 이런 목적 시나리오에 따라 기술을 결합하는 방법이 효과를 가진다.

혁신 기업과 비혁신 기업
기술 혁신과 창의의 영역이 아주 깊은 기술 영역에서 일어날 수도 있고, 기술과 기술이 만나는 경계에서 일어날 수도 있다. 깊이 있는 영역이든 체계와 체계가 만나는 영역이든 창의의 형태는 유사하다. 다만 적용 범위가 다를 뿐이다. 새로운 알고리즘을 통해 5초 걸리던 계산이 0.5초 걸리는 혁신과 Apple TV의 혁신은 모두 창의적 혁신이다.

혁신 아이디어는 여러 가지 방법을 통해 만들어지지만 바로 완성되는 것이 아니라 반복되는 심화와 재검토를 통해 최종적으로 소수의 창의가 살아남고 또 시장을 통해 검증된다.

혁신 기업은 초기 아이디어에 숨어있는 잠재력을 중시하고 이를 끌어내려 하는 데 중심을 두는 데 반해, 비혁신 기업은 초기 아이디어가 완벽하지 않으면 생각의 결함만 주목하여 잘못된 아이디어라고 결론 내리고 폐기한다.

혁신 조직은 아이디어를 점점 더 나은 아이디어로 진화시키는 데 조직의 회의 목적을 두는 데 비해, 비혁신 조직은 회의 자체를 단순한 결정의 자리로만 한정한다.
혁신 조직은 아이디어의 유입을 가로막는 사소한 압박도 줄여나가는 데 비해, 비혁신 조직은 불필요한 억눌린 분위기를 통해 구성원들이 단순 공정에 몰입하길 바란다.

수요일, 10월 20, 2010

소프트웨어 Startup은 창의적 기술 혁신 기업이라야

트위터에 올렸던 창의적 기업에 대한 짧은 생각들을 모아보았습니다.


기술 혁신, 창의적 혁신, 창의적 기술 혁신은 조금씩 다른 영역. 구글은 기술 혁신, 애플은 창의적 기술 혁신에 가깝다. 하지만 구글의 기술 수준은 한 차원 앞서있어 두려울 정도. Startup은 창의적 기술 혁신이 바람직하다고 생각.


패러다임 변화의 시기에 생각의 출발점은 대부분 비슷하다. 하지만 도착점은 다들 너무나 다양하다. 그래서 도전의 기회가 열리기도 한다. 없던 걸 하는 만큼 창조를 위한 사고의 방법이 중요하다.


창의성은 누구에게나 있다. 떠오른 생각을 잘 적어두고 멘탈 이미지를 형상화하고 소통을 통해 발전시키는 게 창의의 방법이다. 이를 회사의 핵심 자산으로 삼는 기업이 창의적 혁신 기업이다.


창의적 기업이 성공하려면 끊임없는 아이디어를 내고 이를 사업화해야 한다. 그러나 리소스가 부족한 startup이 한두개의 창의만으로 승부하긴 어렵다. 특허나 기술 축적을 통해 아이디어를 보호해야 한다.


특허가 법적 장벽이 일부 될 수 있지만 만능이 아니다. 축적된 기술 차별성으로 최소 1년을 앞서가야 창의를 기업 성장 동력으로 바꿀 수 있다. 그래서 startup은 창의적 기술 혁신 기업이어야 성공의 가능성을 높일 수 있다.



일요일, 10월 17, 2010

소셜 네트웍 성장과 혁신 추동은 나비를 키우는 것처럼 (Foster human networks just like attracting butterflies)

혁신에 관련된 블로그 글에서 소셜 네트웍과도 연결된 중요한 지적을 하여 인용해보았습니다.

요약하자면 기업의 혁신을 지속시키기 위해 사람을 좀더 혁신하도록 고무하는 분위기를 어떻게 만들어갈 것인가가 매우 어려운 문제인데, 이것을 고양이를 키우듯 갇힌 공간에서 훈련해야 한다고 생각하면 안된다는 지적입니다.

혁신을 하도록 사람을 끌어들이고 이들을 네트웍 속에 엮어두는 것은 고양이를 키우는 모델이 아니라 나비를 키우는 모델이라는 것입니다.
나비가 밖으로 날아가는 것을 막을 수가 없습니다. 나비가 자주 찾아오도록 좋은 정원을 가꾸는 것이 핵심적인 방법론이라는 주장입니다.

특히 우수하고 개인적 성향이 독특한 사람들로 구성된 조직에서 협업과 혁신으로 이끌어가는 것은 더더욱 나비를 모으는 정원의 은유를 관리의 지침으로 사용할 필요가 있다고 합니다.

관련 블로그 : Blogging Innovation - Managing Space to Foster Networks

기업에 혁신을 도입하는 것과 소셜 네트웍은 요즘 가장 큰 관심을 가지고 지켜보는 두 주제인데요. 나비 정원 모형은 비단 혁신을 확산하기 위해 기업의 공간 내에 혁신 교두보를 만드는 데에만 응용될 것은 아닙니다.

소셜 네트웍이란 사람들의 관계를 단순화한 모형 위에 쌓아올리는 새로운 사회이자, 실제 사회의 확장(augmentation)이라고 정의하고 있는데요. 이 소셜 네트웍에 사람을 모으는 것은 관계를 잘 정의하는 것으로 되지는 않습니다. 어떻게 사람을 모을 것인가, 또 서비스를 자연스럽게 받아들일 것인가 하는 것은 결국 서비스에서 제공하는 정원이 어떤 향기와 꿀을 나비들과 나누느냐에 달려있습니다.

정원은 향기와 꿀을 주는 꽃들을 많이 가꾸지만, 나비들은 꿀을 먹으면서 꽃술을 옮겨 꽃들을 열매맺게 해줍니다. 정원에서 꽃과 나비의 생태계인 셈이지요.

사회적 속성이 강한 사람의 존재를 나비 대신 대입해보면 정원에서 음료수나 앉아서 얘기할 테이블도 제공해준다면 많이 모이는 곳에서 대화도 많아지고, 새로운 인적 네트웍이 형성되어 나가겠지요. 그 네트웍을 관리해주는 정원이라야 하겠지요.

꼭 관계는 Friendship일 필요가 없고, 다른 어떤 관계라도 사람의 사교성과 관련을 줄 수 있다면 괜찮을 테고, 혹은 friendship 위에서 (즉, facebook과 같은 기존 소셜 플랫폼 위에서) 추가적인 관계를 만들어가는 모델도 나쁘지 않습니다.

P.S 얘기할 수 있는 테이블을 마련한다는 측면에서 보면 foursquare 같은 서비스는 별도의 친구 네트웍을 구성하지만, 테이블은 없는 좀 아쉬운 면이 있습니다.
자칫하면 facebook과 겹쳐버리니, 독자적인 위치 기반 정보를 활용한 테이블을 아직 생각해내지 못한 탓이겠죠? Twitter는 그런 측면에서는 조금 약합니다. 마주 보고 대화하는 것이 아니라 방송 채널처럼 골라 듣기 때문에...
Twitter를 활용하면 소식은 쉽게 전하지만 인적 교류를 하긴 어렵습니다.

금요일, 10월 15, 2010

이게 소셜 커머스의 원형이 아닐까요? 페이스북에서 친구 커피 사주기!

아래 기사는 Facebook용 스타벅스 App을 사용하면 온라인에서 친구의 스타벅스 기프트 카드를 충전할 수 있다는 내용입니다.
소셜 커머스. 물론 스타벅스는 Facebook friends 네트웍을 사용하지만, 소셜 네트웍과 밀접하게 결합된 형태의 상거래 중 하나가 아닐까요?

좀더 상거래에 적합한 네트웍의 등장과 더 다양한 형태의 소셜 커머스를 기대해봅니다.

Buy Your Friends Starbucks on Facebook

The generous types among us now have a convenient way to treat friends to Starbucks from afar. Facebook members can credit their friends’ Starbucks cards without ever leaving the site, thanks to an update added today to the Starbucks Card Facebook application.

목요일, 10월 14, 2010

지금 Social Commerce, Social Game이 정말 Social한가?

Social Commerce가 정말 Social한가?
Social Commerce에 대한 관심이 높다. Groupon이란 공동 구매 방식 상거래 서비스가 미국에서 상당한 성공을 거두자 국내에서 너도 나도 유사한 서비스를 오픈하면서 Social Commerce라는 이름을 붙이고 있다.

비즈니스 모델이 기존의 공동 구매와 크게 다르지 않은데 왜 Social이라는 이름을 붙였을까 하는 의문이 들었지만, 너도나도 Social Commerce라는 이름으로 비즈니스에 돌입하고 있다.

솔직히 Groupon은 Social과는 큰 관련이 없는 공동 구매 서비스이다. 공동 구매 할인을 받으려면 인원을 채워야 하는 서비스 모델이다.
인원을 채우기 위해 자신의 Social Network을 활용할 수도 있겠지만, 그저 사이트가 붐벼서 정원이 차기를 바라는 경우가 더 많을 것이다.
예를 들어 레스토랑이 30명을 정원으로 특정 일 특정 시에 공동 구매를 한다면, 친구들 다 불러모아 회식하지 않는 이상 Social Network을 활용할 일이 뭐가 있을까?

Social이라는 용어가 트렌드로 되고 있기 때문에 마케팅에 활용하는 게 아닐까 싶다. Facebook과 Twitter를 연동한다는 의미의 소셜 서비스 정도가 아닐까?
식당 예가 좀 적합하지 않았을 수는 있겠다. 어쨌든, 공동 구매는 새로운 상거래 모델은 아니다. Facebook과 연결하는 건 주 기능이라기보다는 부가 기능인데 이것이 의외로 효과적이라든지 Facebook Application으로서 활용 가치가 높다면 이해할 수 있겠다.
어쨌든 Social Commerce에서 Social 부분은 Facebook과의 결합을 뜻하는 것 같다. 진정으로 Social에 기반한 Commerce는 아니라고 느껴진다.

Social Game은 Social한가?
Social Game도 유사한 맥락에서 의구심을 준다. Facebook App으로서 Facebook의 friends 정보를 마케팅적으로 활용하고 추천하는 데 사용하는 온라인 다사용자 게임을 Social이라고 부르는 것 같다. 예를 들어 FarmVille 같은 게임.
Social이 이들 게임에 주는 역할은 무엇일까? 게임 추천하는 것 외에?

Social Networks와 Social Service
Facebook과 Twitter가 왜 Social Service인지에 대해서 Social Graph를 통해 설명한 적이 있다.
Facebook과 Twitter는 사람과 사람의 관계로 이루어지는 Society를 구축하는 서비스이다. Facebook은 friends 관계에 기반하고, Twitter는 subscription(follows) 관계에 기반하는 큰 차이가 있지만, 이들 관계 네트웍에 기반하여 서비스가 구성되고, 또 이 네트웍의 노드로 참여하는 각 사람들이 이 네트웍을 스스로 성장시켜 나간다는 특성이 있다.
즉, Social Network Service의 가장 큰 특성은 사람 관계에 기반한 네트웍 구조와 사람에 의한 네트웍의 자발적 성장이라고 요약할 수 있다.
이러한 관점에서 보면 Groupon과 같은 Commerce 서비스는 일시적으로 사람들을 모을 뿐 이들이 결합하고 자라나는 사회를 구성하지 않는다.
FarmVille 같은 게임의 경우는 게임을 실행하는 동안만 한시적으로 그래프가 형성되는 것처럼 보인다.

새로운 사회 관계망을 구축하지 않더라도 사람들이 하는 일은 다 사회적인 것이 아니냐고 반문할 수도 있겠다. 이 말은 온라인에 형성되는 소셜 네트웍이 핵심이 아니라 오프라인을 포함한 기반 사회를 활용하면 사회적이라고 하는 말로 들린다.
Social의 의미가 사람이 하는 일이면 모두 다 해당되는 뜻이 되어버린다.

Facebook을 활용하면 소셜이 아니냐고 묻는다면, 분명 그런 측면도 있다고 할 수 있다. 하지만, Groupon 서비스가 Facebook 활용이 핵심인 서비스인지 물어보면 그렇지 않다고 생각된다.

그런 의미에서 진정한 Social Commerce는 아직 출발도 하지 못했다고 생각한다. Social Game의 경우는 FarmVille과 같은 형태도 Social 성격을 많이 가지지만, 앞에서 언급한 데로 아직 완전한 소셜 그래프를 구성하는 데로 발전하진 못했다고 생각된다.

진정한 Social은?
진정한 Social Commerce가 수익성이 높은 상거래냐고 묻는다면 솔직히 자신이 없다.

생각나는 대로 간단한 예를 들어보면 SNS를 이용한 가장 쉬운 상거래란 인류 경제의 초창기 형태인 물물교환 형태일 것이다. 즉, 벼룩시장이나 장터가 Social Network과 밀접하게 결합한 형태의 상거래일 것이다.
물론 오프라인뿐만 아니라 온라인에서 위치에 상관없이 벼룩시장과 장터가 소셜로 가능할 것이다.
벼룩시장과 장터에서 공공의 관심사를 통해 또다른 네트웍 그래프를 형성할 수 있을 것이다. Facebook이 friends 관계 그래프 뿐 아니라 그룹이나 페이지 관계도 제공하는 것처럼 또다른 social graph를 만들 수 있는 여지가 있다.

Social Game의 경우도 마찬가지이다. 게임을 같이 하는 사람들을 통해서도 또다른 네트웍을 형성하고, 새로운 게임을 함께 하거나 다른 형태의 교류를 할 수 있는 방법을 게임 서비스가 제공해준다면 좀더 Social의 원칙에 가까이 가는 게임이 될 것이다.

Growing Social Network, 이것이 소셜에 열광하는 이유가 아닌가? 사람 관계가 다양해지는 것이 소셜의 핵심 매력이 되지 않을까? 오프라인 실세계의 사람 관계가 여러 단계로 그래프를 구성하듯, 이 관계를 활용하면서도 또다른 관계를 맺어 사람들에 의해 스스로 성장시키는 게 소셜 네트웍 서비스의 핵심일 것이다.

소셜의 수익성은 소셜 네트웍의 lock-in 적 성격이 어느 정도 보장해주지 않을까?

책 소개 : Programming Collective Intelligence

social, mobile 시대를 맞아 개발자들이 알아야 할 두 가지 큰 기술 영역으로 분산 컴퓨팅 관련 기술인 클라우드 컴퓨팅 영역과 Artificial Intelligence 관련된 영역이 있다.
이 중 Web 2.0에서 많이 사용되는 Intelligence 기법들을 실용적으로 설명한 책이 있어 소개한다.


O'Reilly 에서 2007년 8월에 출간되었으며 제목은 Programming Collective Intelligence (Tob Segaran 지음), 부제목이 Building Smart Web 2.0 Applications이다.

Intelligence 관련한 지식이 거의 없어 고민하면서, 짧은 시간 안에 활용할 수 있는 교재를 찾고 있었는데 이 책은 핵심 알고리즘들에 대한 개괄적으로 소개하고 web 2.0 환경에 맞춘 실 예제를 python 언어로 작성된 코드와 함께 설명하고 있다.

책을 읽으면서 어려운 부분이 있긴 했지만, 너무 장황해지지 않은 수준에서 (307페이지) 책을 작성하기 위해서는 어쩔 수 없는 선택이었던 것 같다. wikipedia에서 검색하면 모자라는 설명들을 어느 정도 메울 수 있다.
책에서 소개하는 내용들은 Bayesian Classifier, Decision Tree Classifier, Neural Networks, Support Vector Machines(SVM), k-Nearest Neighbors(KNN), Hierarchical Clustering, K-Means Clustering, Non-Negative Matrix Factorization(NMF), Simulated Annealing, Genetic Algorithms 등이다.

기본 설명과 활용 예제로 빠르게 내용이 전개된다.

깊이 있는 부분은 훨씬 더 두꺼운 교재나 논문, 강의 동영상 등을 참고해야 할 것 같다.
스탠포드 대학교에서 Machine Learning 관련 강의를 공개하고 있으므로 참고하길.

Standford Computer Science Lecture : The Motivation & Applications of Machine Learning

화요일, 10월 12, 2010

Facebook Group 모델과 Twitter List 모델 비교

Facebook의 기본 소셜 관계는 friend이지만, Group과 Page라는 또다른 관계가 존재합니다.
이 소셜 관계들을 그래프로 표현해보면 friend 관계는 하나의 선(edge)으로 표현되고, 각 사람들이 노드(node)를 구성합니다.
Group과 Page 역시 node로 나타나지만, 사람과는 조금 다른 관계입니다.
즉, Facebook에서 사람과 사람의 관계를 나타내는 선은 "friends with"이고 사람과 그룹의 관계를 나타내는 선은 "member of"입니다.
"friends with" 관계는 상호 친구 관계이기 때문에 방향이 없습니다. (무방향 혹은 양방향이라고 생각할 수 있습니다.)
"member of" 관계는 항상 사람이 그룹의 구성원이 되기 때문에 단방향 화살표가 됩니다.
Page 역시 그룹과 마찬가지로 단방향인데 관계를 표현하는 stereotype은 "likes"라고 보면 됩니다.

Facebook Group을 표현한 소셜 그래프
이외에 Group의 Creator와 같은 관계가 있지만 소셜 그래프의 일부라고 보기엔 별로 중요하지 않은 개념이므로 무시해도 될 것 같습니다. Facebook의 새 Group은 Group의 구성원들과 특별한 관계를 유지하면서 notification을 준다거나 개인 timeline에 group posting 내용이 포함되는 방식으로 표현합니다.
Group은 현재로서는 그래프에서 leaf node 형태로 존재합니다.

Subscription 기반의 소셜 그래프를 표현하는 Twitter에도 Group과 유사한 기능인 List가 있습니다. 이 list는 Facebook의 group과 달리 Twitter의 기본 소셜 관계인 follows 를 그대로 사용할 수 있습니다. (follows는 Facebook의 friend와 달리 항상 방향이 있습니다.) 즉, 개인이 리스트를 follow할 수도 있고 리스트가 개인을 follow할 수도 있습니다.

Twitter List를 표현한 소셜 그래프
Twitter의 리스트는 공동체 혹은 소속이라는 개념이 매우 약합니다. 그저 분류상 묶어둔 개념이 강합니다.
Twitter의 소셜 그래프는 리스트를 포함하고도 원래의 그래프와 별 차이가 없습니다. 하지만 Facebook의 Group은 소셜 그래프의 기본 관계를 복잡하게 만들고 있습니다.

각 개인이 다양한 Group에 속하는 것은 매우 자연스러운 사회 관습입니다. Facebook이 그 사회 관습을 온라인에서 모델링하고 있습니다.
Facebook과 Twitter의 사회 관계 모델 기반이 다르기 때문에 Group이 적합하냐 List가 적합하냐 하는 물음은 무의미한 것 같습니다.
실제 사용해보니 가족 그룹에서 커뮤니티까지 모두 가능하면서도 기존 Timeline과 잘 통합되어 매우 편안합니다. 기존 모델과 통합하면서 개인의 Timeline 중심으로 그룹이 표현되도록 통합한 것은 매우 재미있는 발상입니다. 기존의 그룹은 Page처럼 별도 페이지로 표현되었고 개인의 Timeline과는 별개였습니다.

온라인 까페들에게 잠재적인 위협이 되지 않을까 싶네요.

P.S Facebook friends에도 list가 있지만 이 리스트는 단순히 친구들을 그룹핑하기 위한 것일 뿐 소셜 네트웍에는 영향을 주지 않으므로 twitter의 리스트와는 전혀 다릅니다.

일요일, 10월 10, 2010

REST가 SOAP을 밀어내고 Web API의 실질적 표준으로

아래 그림은 New Job Requirement: Experience Building RESTful APIs 라는 기사에서 인용해온 것입니다.

출처 : New Job Requirement: Experience Building RESTful APIs

Web API로 제공되는 프로토콜의 추세를 보여주는 그림으로 이미 2008년에도 REST가 SOAP의 두 배 이상을 제공하고 있었지나 지금은 다섯 배에 가까운 비중을 차지하므로, 대부분의 신규 웹 API들은 REST 기반이라고 읽을 수 있습니다.
SAAS(Software as a Service)의 대명사라고 할 수 있는 Salesforce.com은 SOAP API 기반의 웹서비스로 구축되어 있었는데 최근에 REST API를 제공하기로 결정했다고 합니다.

개인적으로는  2003년부터 SOAP을 직접 XML 파싱하여 처리하면서 성능이나 효율을 높이기 위해 고심을 했었는데, 결과적으로 스펙이 처리 성능을 전혀 고려하지 않았다는 심증을 굳히곤 했습니다.

SOAP은 불필요한 envelope을 원본 데이터 XML 위를 감싸고 또 뜯어내는 처리를 필요로 합니다. 대부분의 경우 별도의 의미를 갖지 않음에도 불구하고 만들어진 XML 문서를 다시 envelope의 body 부에 끼워넣고 또 발라내는 작업을 해야 합니다. API 호출 빈도가 높아질수록 가벼운 API가 점점 더 성능의 한계로 다가오게 됩니다.

개인적으로는 XML도 성능 관점에서 선호하지 않는 편인데요, 특히 namespace 덕분에 프로세싱에 부담을 주는 XML의 발전 방식은 불필요한 무거움 자체입니다. ns 표준을 프로세싱을 전혀 신경 안쓰고 정하는 것이 맞을까?

API들은 분산 환경에도 불구하고 상당히 상세한 수준에서 open되어 하나의 기능을 위해 매우 많이 호출되는 경우도 많습니다. 전통적으로 원격 통신을 하는 방법은 상위 수준의 API만 노출하고 빈번하게 호출될 가능성이 높은 하위 수준의 세세한 API는 공개하지 않거나 사용을 줄일 수 있도록 다른 방법을 제공하게 되는 편인데, 최근의 Web API는 하나의 클라이언트 로직에서 빈번하게 호출되는 경우도 발생하는 것 같습니다.
이런 경우에 별다른 semantic을 갖지 않은 soap envelope과 xml namespace 형식 자체가 가지는 오버헤드는 불필요한 낭비일 뿐입니다.

물론 payload로부터 meta data를 분리 표현하기 위한 soap header와 문서의 scope을 지정하기 위한 namespace가 전혀 의미가 없지는 않겠지만, 대부분의 soap header 는 아래 http와 같은 transport layer의 binding으로도 처리할 수 있지 않을까 생각해봅니다.

xml namespace도 prefix를 element 이름 앞에 ':'을 사용하여 붙일 것이 아니라 별도의 attribute로 처리했으면 훨씬 XML 파싱과 노드 처리가 효율적이 되지 않았을까 생각해봅니다.
그외에도 XML 문서를 표현하는 DOM 표준에 사용된 자료 구조가 단순 트리 구조라서 노드 검색이 매우 비효율적인 부분도 많이 아쉬웠습니다. getElementById 를 제외하면 노드에 random access를 제공하는 API가 없고, 각 자식 노드 이름들을 일일이 비교해서 찾아야 하는데요. 게다가 getElementById조차도 namespace 표준에서는 xml:id를 특별하게 취급해도록 정의하고 있지요.

전통적인 WS-* 스펙에서 SOAP과 xml namespace는 계속 의미를 가지겠지만, 여전히 제한적일테고 기업 환경에 WS-* 스펙 도입이 주는 효과 역시 계속 한계가 있을 것입니다. 기존의 RPC 패러다임을 WS-* 스펙으로 대체하고 난 다음에 구현에 따라 각 기업이 지불해야 할 하드웨어 비용이 열 배 이상 되는 경우를 가끔 봅니다.

하드웨어는 끊임없이 가격이 싸지고, 처리 용량이 늘어나지만, 소프트웨어가 처리해야 할 정보 양 또한 폭발적으로 늘어납니다.
논리 모델은 이상적으로 정의하더라도 구체적인 표준 정의는 처리 성능도 고려해야 하지 않을까요?



수요일, 10월 06, 2010

NHN의 성공 비밀일까? 혁신의 재정의-이해진 NHN 창업자

임원기의 인터넷 인사이드 : 혁신의 재정의-이해진 NHN 창업자

NHN의 의사 결정에 관한 여러 가지 얘기를 들어서 문득 검색을 해보았습니다.
올해 2월에 이해진 창업자의 혁신에 관한 연설을 요약해둔 블로그네요.

핵심은 다음과 같이 요약됩니다.

NHN은 기술 회사가 아니라 서비스 회사이다.
사람들의 본질적인 욕구는 쉽게 바뀌지 않는다.
욕구(니즈)를 확실하게 해결해주는 것이 혁신이다.
혁신을 위해선 크리에이티브가 문제가 아니라 오히려 Discipline이 필요하다.

동의할 수 있는 부분은 많지 않지만, NHN을 이해하는 데 큰 도움이 되네요.
구글과 NHN은 정반대에 서있는 회사라고 볼 수 있습니다. 구글은 NHN과 달리 소비자는 잘 모르고, 기술은 잘 아는 회사이지요.
이해진 창업자는 구글 어스를 보고 기술로 경쟁하는 것에 대해 좌절했다고 합니다.

하지만, 제가 보기엔 NHN은 한국 소비자를 잡는 방법에 성공했을 뿐입니다.
물론 그것도 엄청난 성과이지만, 혁신은 일어나지 않습니다.
욕구라는 것을 이해한다는 것은 Problem을 이해하는 것과 같습니다.
욕구를 제대로 해결해주는 것은 Problem Solving을 하는 과정과 동일합니다.

문제는 Creative Problem Solving을 하느냐 못하느냐에 따라 Innovating Company냐 아니냐를 얘기할 수 있습니다.
사용자의 Needs만 따라가서는 혁신을 한다거나 패러다임을 만들거나 할 수는 없습니다.
Needs가 출발점이 될 수는 있습니다만 Needs의 본질적인 요구를 개념화하고, 기술의 발명, 발전과 조우하는 메커니즘 없이는 새로운 10년을 앞서가기는 어려울 것입니다.
패러다임이 변화하는 시기에는 영역의 상호 침투가 많이 발생합니다.
혁신적인 Problem Solving은 문제의 범위를 고도화하면서, 확대합니다.
결국 고정된 패러다임에 도전하게 되고, 새로운 패러다임을 만들기도 합니다.

혁신적인 회사가 되려면 제약없이 Innovation 을 위해 일정 수익을 과감히 재투자하는 회사가 되어야 합니다.
성공한 회사의 창업자의 혁신론을 반박하니 좀 우습군요. 하지만, 적어도 그건 혁신은 아닙니다.
시장 변화에 뒤처지지 않기 위해 지키는 것이지요.

P.S. 창의적 혁신은 경험을 통해 확신을 가질 수 있는 것 같습니다. 작은 경험이 혁신적 기업이나 조직을 관리하거나 지도하는 이에게 무엇보다 필요합니다. 혁신은 전염성이 강하므로 그 경험을 이어가면 혁신 기업 경영에 대한 확신을 전파할 수 있겠죠.

The End of Management 21세기 창의적 기업은?

The End of Management - WSJ.com

혁신을 기술 부분에만 적용할 것이 아니라 경영관리에도 적용해야 한다는 월스트리트저널의 글입니다.
결론을 제시한다기보다는 이슈업이라고 봐야겠습니다.

20세기 경영은 끝이 났다. 21세기 경영관리는 혁신을 가능하게 하는 구조여야 한다.
직원들이 관리 대상이 아니라 파트너처럼 참여할 수 있는 구조가 필요하다.
군중의 지혜를 최대한 활용할 수 있는 구조여야 한다.
직원들의 창의를 최대한 활용하기 위한 구조를 위해 관료화된 기업 상하 조직 체계를 전면 부정하여 새로운 수평 체계를 도입하라.

예로 든 새로운 관리 방법이 업무의 20%를 정규 업무가 아닌 자유로운 프로젝트에 소비할 수 있게 하는 구글의 시도입니다.
모바일 컴퓨팅 시대의 도래로 근무 환경 자체도 많이 바뀌고 있는데, 기업이란 것 자체의 정의부터 바꾸어서 급변하는 시장에 적응할 수 있는 조직을 만들어보라고 하네요.

창의적 기업 문화. 그리고 형식이 아니라 내용적으로 변화를 따라잡을 수 있는 생각하는 개인들의 공동체로서의 기업.

기업에 있으면서 직원들 기술 교육, 생각하는 법 교육 등 여러 가지가 필요했는데 기업이란 틀을 활용해서 무엇을 할 것인가 하는 질문을 던져보게 됩니다. 많은 기업 직원들은 퇴근하기 위해 출근하기도 하고, 창의적인 직원들은 회사를 흔들 수 있는 아이디어를 내놓기도 하고, 또 어떤 직원은 묵묵히 버티는 데 필요한 일을 하는데 이들을 어떻게 차별화하며 인센티브를 주며 기업을 성장시킬 수 있을까 하는 생각을 해봅니다.

위 기사 내용을 번역한 블로그도 있습니다.

20세기 관리경영의 종말, 파괴적 혁신과 신경영이론

월요일, 10월 04, 2010

단순화시켜 본 Facebook과 Twitter의 Social Platform Model

Facebook과 Twitter 서비스 모델을 간략화해서 그림으로 그려보았습니다.


Facebook Service Model

Facebook과 Twitter의 Service Model을 비교해보면, 사용자가 직접 만나게 되는 외형은 매우 다른 형태이지만, 논리적인 모델은 매우 유사한 구조입니다.


Twitter Service Model


사람과의 관계
먼저 두 서비스 모두 핵심 기반이 사람들 간의 관계를 반영한 것이라는 점입니다. Social Network Service이므로 당연한 것이기도 합니다.
Facebook은 현실 세계에서 가장 흔히 볼 수 있는 friend 관계를 준용했습니다. 서구의 friend가 동양의 friend보다 더 광범위하고, 또 상하보다는 수평 관계에 기반하고 있으므로 서구에서 사람 관계 서비스를 생각할 때 가장 먼저 고려할 수 있는 관계가 아니었나 생각됩니다
반면, Twitter는 구독(subscription) 개념이 강한 followship 관계를 가져왔습니다. 최근 트위터가 우리는 소셜 플랫폼이 아니라 새로운 미디어 플랫폼이라고 얘기하는 것도 일리가 있습니다.
Facebook은 현실 세계에서 친구 관계가 확산되는 걸 온라인에 가져옴으로써 좀더 빠르게 확산되는 효과를 보는데 친구의 친구가 지인인 경우도 있지만, 친구의 관계를 엿볼 수 있음으로써 새로운 친구를 만들 기회를 만들어주는 특성 때문이기도 합니다.
Twitter의 구독 관계도 유사한 확산 메커니즘이 있는데 바로 RT(Retweet)입니다. RT를 통해 원 컨텐츠의 author가 전달되고 그 컨텐츠에 공감하는 사람들이 구독을 하게 되는 효과이지요. 기존에 보면 책 같은 저작물에서의 인용하는 행위를 아주 작은 저작물인 twitter에 적용한 것으로 볼 수 있습니다. 이런 측면에서 보면 Facebook은 현실 세계 모델을 거의 그대로 온라인으로 적용한 반면 Twitter의 RT는 새로운 발명이라고 볼 수 있는 게 아닌가 싶습니다.
Facebook의 관계가 양방향 그래프이고, Twitter의 관계가 단방향 그래프인 점도 지적할 만한 차이입니다.

Social Platform과 확장
Facebook과 Twitter는 모두 사용자별 사회 관계와 Timeline을 API를 통해 제공하고 있습니다. 사회 관계 그래프가 만들어지고 성장하는 것은 해당 플랫폼인 Facebook과 Twitter에서만 가능하지만, 이 자산을 활용하여 확장하는 것은 API를 통해 누구나 할 수 있다는 개념입니다.

끊임없이 변화하는 관계 그래프가 핵심이므로, 이 그래프를 다른 서비스에 제공함으로써 글로벌 소셜 플랫폼으로서의 지위를 강화하고, 또 그 서비스 이용자들이 다시 사회 관계 속에 편입되는 몇 배의 효과를 누리는 전략입니다.

Facebook의 경우는 자체로 애플리케이션 플랫폼을 제공하기도 합니다. 실제로 Facebook 사용자들이 상당한 시간을 Facebook App인 Zynga 사의 포커 게임을 하는 데 소비한다고 합니다.
Facebook은 이를 통해 사용자들의 Facebook 체류 시간을 엄청나게 증가시키고 있습니다. 현재 모양을 보면 비즈니스 관련된 것은 Facebook으로 하기에는 어렵지만, 그외에는 다 Facebook에서 즐겨라 하는 형태입니다.
Authoring 부분은 Facebook과 Twitter 모두 다양한 형태의 저작을 제공하게 될 것입니다. Facebook은 지금도 microblog에 photo, video 저작 서비스를 제공하고 있습니다. Twitter도 photo와 video를 포함한 멀티미디어 저작을 필연적으로 핵심 서비스 내에 포함할 것입니다.
멀티미디어 저작은 새로운 미디어 플랫폼이라는 Twitter에게 훨씬 더 중요한 서비스가 되어야 할 것 같네요.

확장은 사회 관계 특성과 관련
두 회사 모두 Open API를 통해 관계 그래프와 timeline을 제공하지만, 이를 이용해 소셜 기반의 서비스를 만드는 기업들은 서비스 성격에 따라 어느쪽 사회관계를 이용할지를 판단할 것입니다.
친구들 간에 필요한 서비스인가, 아니면 미디어적 권위와 관련된 부분이 있는가?

그러고 보면, foursquare 같은 서비스는 평등한 지인 관계를 이용하는 Facebook의 사회 관계가 훨씬 편한 조합입니다. 단방향 관계인 twitter follower들에게 추천하기는 어려울 듯합니다.
반면 slideshare나 구글 검색과 같은 미디어 서비스는 twitter 사회관계 망도 괜찮습니다. Facebook 사회관계 망은 보편성이 큰 friend 관계이므로 적용하기 어려운 서비스가 별로 없는 장점이 있네요.

사회 관계 서비스 역시 현실 세계의 관계를 재창조
소셜 플랫폼 서비스이든 모바일 위치 기반 서비스이든 현실 세계를 옮겨놓는다는 것은 필연적입니다.
소셜이라는 것이 사람 관계를 뜻하고, 위치 기반이라는 것이 사람의 위치를 나타내기 때문입니다.
현실 세계의 관계를 어떻게 바라보고, 또 온라인과 모바일로 이동하면서 어떻게 새로운 경험을 함께 전달할 것인가가 핵심입니다.

Facebook과 Twitter의 성공만 부러워할 것이 아니라 작은 성공의 기회가 많이 있을 것 같습니다. 엄청난 현실 세계 자체가 자산이고 온라인 세상은 아직 충분한 경험이 없습니다. 퇴근 길에 테니스를 치고, 소줏잔을 부딪히는 일상 속에도 온라인으로 연결된 소셜 세계의 훌륭한 아이디어가 나올 수 있을 것 같습니다.

일요일, 10월 03, 2010

네이버 소셜 전략(NHN Social Strategy)에 대한 짧은 생각

Facebook, Twitter는 Relationship (그래프로 보면 edge 혹은 arrow) 을 중심에 두고 그 연결 수단을 제공하는 플랫폼이다.
Facebook의 friend, Twitter의 followship이 그런 거라고 볼 수 있다.

Google은 현재로서는 직접 그 연결 수단을 제공하는 서비스보다는 그 연결고리를 쫓아서 기존 핵심 서비스의 정보를 좀더 개선하는 데 중점을 두고 있는 듯하다. 물론 연결 플랫폼이 되려는 노력을 중단했다고 보기는 어렵겠지만.

Apple은 Ping 서비스로 음악 사회관계를 자산화하려고 하고 있다.


그런데 네이버의 소셜 전략은 Relationship을 관리하기 보다는 각 노드 즉, 사람을 관리하는 데 포커스를 둔 것 같다. 네이버가 생각하는 소셜 네트웍 서비스는 기존의 까페, 블로그, 미투데이, 그리고 소셜앱스라는 이름으로 만들어지는 앱들이다.

이 전략의 핵심은 서비스를 통해 사람을 묶어두고, 네이버 서비스 사용자들이 좀더 많은 네이버 서비스들과 친해지도록 하겠다는 것이다.
관계를 통한 연결 확대, 그리고 순수한 소셜 연결의 확대는 관심 대상이 아니다. 특정 서비스 사용자를 더 유치하는 게 목적이라고 봐야 한다.

어떻게 보면 Social Platform이 되길 포기했다고 생각할 수도 있다. 기존 서비스 사용자들을 더 잘 붙들어도 국내 1위 업체인 네이버의 성장은 충분하다고 판단하지 않았을까.
Google처럼 기존 서비스에 소셜을 고려한 새로운 기술들이 결합하는 것도 아니다.

1위가 되기 위해 도전하는 회사를 운영하는 방식과 1위가 되고 난 다음의 회사를 운영하는 방식은 완전히 바뀌어야 한다고 한다. 하지만, 너무 수비적이고 안정적인 형태의 투자만 하는 건 아닌가 싶다. 자금 여력이 있을 때 과감한 투자를 하는 게 맞지 않을까? 다음은 자금 여력이 많지 않은데도 2위 업체이기 때문에 끊임없이 작은 새로운 시도를 하고 있다.

NHN의 현 모습은 삼성과 유사한 fast-follower 전략을 고집하는 것 같다. 선도 주자가 부딪힌 후 시장이 형성되면 안정적으로 기존 자산을 이용해 밀어붙이는 전략. 하지만 패러다임이 변화할 때는 기존 자산이 아무런 도움이 되지 않을 수도 있다. 지키는 전략도 좋지만, 도전을 뚫고 갈 수 있는 긴 전략이 받쳐주지 않으면 수성 노력에만 급급하다가 예기치 못한 부분에서 균열을 발견할 수도 있다.