본문 바로가기

IT이야기

구글과 트위터 - 통합하고 융합하면

0. 구글과 트위터, 통합서비스
인터넷 검색의 강자는 구글이다. 소셜 네트워크의 강자는 떠오르는 트위터다. 이 둘을 지켜보며 재밌는 생각을 한다. 구글과 트위터를 통합하면 어떤 서비스가 될까? 이 글은 구글과 트위터, 그리고 통합-융합 가능한 서비스를 어려운 기술이야기를 빼고 이야기하려 합니다. 비전공인 의학적인 이야기가 있는데, 그러려니 하고 읽어주세요. (잘못된 부분은 알려주시면 공부 더 하겠습니다.)

1. 구글
구글은 스탠포드에 다니던 레리 페이지와 세르게이가 만든 검색엔진이고, 서비스입니다. 여러 출판물에 따르면, 구글 창업자들이 처음부터 구글을 개발하지 않았고, 어쩔 수 없이 구글을 창업할 수 밖에 없었다고 합니다. 두 사람중에 한 사람의 전공이 데이터 마이닝이었는데, 엄청나게 많은 데이터에서 의미있는 정보를 찾아내는 일이죠. 방대한 논문을 바탕으로 데이터 마이닝을 하던 중, 논문을 판단하는 중요한 기준에 "인용"이라는 점을 발견합니다. 좋은 논문일수록 다른 논문에서 "인용"한다는 것을 발견하고, 프로그램을 개발합니다. (제 7의 감각 : 전략적 직관이라는 책에 자세한 내용이 있으니 읽어들 보세요.) 이 알고리즘을 인터넷에 적용한 것이 바로 구글 검색엔진입니다. 논문이 인터넷의 자원이고, 인용이 링크로 확장하는 거죠. 이 알고리즘을 악용하면 악의적인 내용을 구글 검색 결과 1등을 만들 수 있는데, 구글 폭탄이라고 부릅니다. 유명한 'miserable failure'을 찾아보세요. 구글이 탐색한 인터넷 자원의 내용-의미를 파악하지 않고, 연결된 형식적 속성만을 분석한다는 것을 알 수 있습니다.

구글은 자신들의 알고리즘을 구현하고, 전세계에 서비스하기 위해 필요한 것을 모두다 만드는 NIH(Not Invent Here) 방식을 사용합니다. 그들이 구현하려고 했던 프로그램이나 서비스가 전에 없었던 독창적인 것들이기 때문이지요. 구글은 자신들이 개발한 독창성을 논문으로 공개해버립니다. 아마도 쫓아오려면 쫓아와봐라는 자만심이 느껴진다라고 할까. 페이지 랭크 알고리즘은 누구나 쉽게 구현할 수 있습니다. 집단지성 프로그램이란 책을 보면 거의 충실하게 구현할 수 있습니다. 문제는 규모입니다. 구글이 저장하고 있다는 약 10억개의 문서량을 전체를 상호 교차색인해서 페이지랭크를 만들려면 컴퓨팅 능력과 저장공간이 상상 이상으로 필요하게 됩니다. 메모리가 충분히 큰 슈퍼컴퓨터와 엄청나게 큰 하드디스크가 필요하게 되지요. 비용이 막대하게 지불되게 됩니다. 구글은 이 문제를 Map Reduce와 BigTable, GFS를 통해서 해결합니다. 전세계에 같은 내용을 서비스하기 위해서 CDN, 네임서버를 개발합니다. (니시다 케이스케의 구글을 지탱하는 기술을 참고하세요.) 구글이 환경과 전력에 지대한 관심을 갖는 이유는 막대한 전기요금때문입니다. 구글이 사용하는 전력을 줄이면, 구글의 수익이 늘어날 수 밖에 없지요. 구글은 대략 50만대 정도의 서버를 운영하는 것으로 알려졌고, 10억개의 문서를 페이지랭크하는데 4시간 정도 걸린다고 알려져 있습니다.

2. 트위터
트위터는 처음에 소셜 네트워크 서비스(SNS)를 지금 처럼 거대하게 만들 생각은 아니었던 거 같습니다. Ruby와 Rails를 사용하여 140자 단문을 주고 받을 수 있는 사이트를 개발하였는데, 어찌하다 보니 현재까지 이르게 되었습니다. 자세한 기술적인 내용은 Scaling Twitter: Making Twitter 10000 Percent Faster  을 참고하세요. 트위터는 실시간 정보(트윗)를 네트워크에 전달하는 문제에 봉착하고 있는데, 전형적인 n이나 n^2의 문제가 아닌 n^m 의 문제로 접어든 것 같습니다. 트위터에 보면 팔로우 제한에 걸렸다는 이야기가 나오는데, 팔로우를 엮는 추상적인 관계 문제가 아닌, 실제 팔로우에게 트윗을 전파해야 되는 물리적인 시스템의 문제인 것이지요. 트위터와는 다른 방식을 사용하는 facebook은 팔로우를 5000명으로로 제한하는 것으로 알려져 있습니다(Why are Facebook, Digg, and Twitter so hard to scale?). 우리나라의 싸이가 상호적인 일촌이라는 관계라면, 트위터는 일방의 구독시스템입니다. 그런데 결국에는 팔로워-팔로잉이라는 양방향이 생기지요. 트위터는 엄청나게 많은 트윗을 저장하는 문제보다는 전달하는 방식을 위해서 거대한 백엔드 전달 시스템을 가지고 있으며 하드디스크보다는 메모리를 사용하는 시스템을 사용합니다. 자세한 기술적인 내용은 참고 사이트를 보세요.

3. 둘이 통합-융합해서 뭘?
구글과 트위터에 관심을 갖는 이뉴는 생각주머니인 뇌와 매우 유사한 방식을 가지고 있기 때문입니다. 생각주머니 뇌는 외부 정보를 수용하고, 적절한 기관에서 정보를 처리하고, 필요한 정보는 저장해두고, 정보 처리에 따라 적절한 행동(반응)을 합니다. 트위터는 외부 정보를 수용하고 처리하는 뉴런과 비슷해보이고, 정보 중에 유용한 것을 저장하는 단기정보와 비슷합니다. 구글은 단기정보를 장기기억으로 저장하고 색인해두는 방식과 유사해보입니다. (얇은 지식이지만, 수집한 단기정보는 잠자는 동안에 엄청나게 많은 작업을 통해서 장기기억으로 전환되어 저장된다고 합니다. 이때 새로운 라우팅 경로들이 만들어진다고 합니다. 간단하게 예를 들면 낮에 3*4=12, 6*2=12 라는 정보를 기억했다면, 아마도 밤에는 12는 3*4, 6*2 라는 역참조하는 라우팅 경로까지 만들어내지 않을까 싶네요.)

트위터는 현재 약 10억개의 트윗이 있다고 합니다. 그리고 다양한 서비스로 확장할 수 있는 API를 제공합니다. 통계에 따르면 웹으로 트위터를 사용하는 비율은 10%정도이고 나머지는 대부분 API라고 합니다. 트위터 API를 사용하여 개발되는 새로운 서비스들은 다양합니다. 사진, 위치, 투표, 만남, 게시판, 모임, 화상회의 등에 연결되었고, 계속해서 새로운 API 서비스들이 만들어지고 있지요. 트위터 API가 참 멋집니다. 다른 서비스들의 API는 한정되고 지정된 서비스를 이용하는 것이었던 반면에 트위터는 140자와 팔로우 관계만을 제공하고, 실제 서비스의 알맹이는 API에서 구현하도록 하고 있습니다. 비유하자면 트위터는 뉴런들간 정보를 전달하는 역할만 하고, 외부와 연결과 정보 수용과 처리는 각각의 서비스들이 담당하는 거죠. 좀 더 나아간다면 외부 API 서비스들은 눈, 귀, 피부, 혀, 코와 같은 접촉 기관(Interface)로 생각해볼 수 있겠죠. 아직 초기이니, 많은 서비스들이 API로 만들어지고 있으니, 어떤 서비스가 살아남아서 기관이 될지 모릅니다. 그렇게 될지는 그냥 추정일 뿐이고요.

컴퓨터가 등장하면서 인공적인 뇌 또는 생각하는 기계라는 표현을 사용해왔습니다. 터미네이터 같은 공상과학에서는 생각하는 기계들이 인류를 공격한다는 이야기들을 퍼뜨려왔고요. 현재까지 인공지능이 구현되지 않은 원인은 구현을 못한게 아니라 범주의 문제가 달랐다고 보입니다. 인공지능을 구현하려면 학습능력, 처리능력, 방대한 정보가 있어야 하고, 적절한 휴리스틱과 바이어스를 가져야 한다고 생각합니다. 대부분의 인공지능은 컴퓨터 데스크탑 한대나 슈퍼컴퓨터 한대의 문제로 범주를 잡았는데, 이를 고쳐야 합니다. 물론 공상과학에는 스카이넷 같은 네트워크 컴퓨터도 등장하기도 합니다. 규모의 문제에서 현재 수준의 구글 시스템을 노트북 크기만하게 구현해야 합니다. 구글에 번역, 음성인식 등 같은 학습 알고리즘을 적용하는 서비스들이 있는데, 학습능력이 학습하는 능력으로까지 발달해야 겠죠. 기관이 발달하기 위해서는 컴포넌트를 스스로 만드는 능력도 있어야죠. DNA, 단백질, RNA를 통해서 필요한 신체기관을 만들고 전달하듯이 아주 단순한 시스템의 구성요소에서 출발해 다양한 기능들을 담당하는 개별 구성요소(컴포넌트)를 만드는 방법을 만들어야겠죠. 지금까지는 입력 - 처리 기관만을 이야기했는데, 출력기관도 있어야 되겠죠. 움직이는 근육, 뼈등을 담당할 그런 것들. 그러면 움직이는 생각하는 기계가 만들어지겠네요.

4. 그냥 생각나서
구글과 트위터를 바라보다 보니 인공 생명체로 관심이 연결되었네요. 오감으로 얻은 정보를 처리하고, 달리고 뛰고, 일하고, 생각하는 사람이 소비하는 에너지가 겨우 하루 밥 세공기라는 점, 참 효율적이라는 생각도 해봅니다. 구글은 IDC하나를 위해 화력발전소를 하나를 전용으로 사용할 정도로 막대한 전기를 사용해서 검색 서비스밖에 제공하지 못하는데, 밥 세 공기로 많은 일들을 하네요. 인류를 공격하는 스카이넷을 만들 수 있을까? 시간이 걸리겠지만, 가능하다고 보여집니다. 구글을 노트북 수준으로 운영하고, 트위터의 API 서비스들도 그 안에 통합되는 수준이라면. 무어의 법칙, 황의 법칙등이 깨어지는 그 시점에서 새로운 방식의 컴퓨팅으로 전환되면 구글도 노트북 정도로 가능해지겠죠. 

구글은 편하게 유용하게 잘 사용하는 서비스지만, 트위터는 좋아하지 않습니다. 외부의 정보를 처리하기 위해서 대부분 흘려보내는 휴리스틱을 사용합니다. 위협적이고 위험한 정보를 본능적으로 반응하고 처리하고, 중요한 정보를 단기기억으로 저장하는데, 트위터는 많은 반응시간과 생각할 시간을 가지게 하는 듯 합니다. 그래서 피곤하기도 하고요. 그러나 트위터가 이룩한 기술적 성과는 긍정적으로 평가받아야겠죠.