철수네 소프트웨어 세상 [본점]

소프트웨어와 관련이 있다면 뭐든지 – I no longer work for Microsoft.

Archive for 1월 2013

그리고 페이스북 그래프 검색, 문을 열었다.

leave a comment »

역사상 기술의 발전이 펜듈럼(Pendulum)처럼 왔다 갔다하는 예들은 수없이 많다. 어느쪽으로 흐르는 듯 하더니 이내 다시 저쪽으로 흐른다. 더 작아지기 위한 경쟁을 하더니 더 커지기 위한 경쟁을 한다. 풀파워 PC가 대세인가 했더니 스마트폰에 다 들어있는 모바일 컴퓨팅이 대세다. 스토리지 디바이스들이 편해지면서 데이타가 안방으로 들어오는듯 하더니 다시 클라우드란다. 디렉토리형의 포털이 최강이라고 야후가 뜨더니 검색이 최강이라고 구글이 눌러버린다. 왔다 갔다, 흐름을 잘 파악하는 놈들이 항상 최고가 된다.

하지만, 근래에는 이 펜듈럼이 너무 빨라 더이상 펜듈럼이라고 부를 수가 없을 정도가 된 것 같다. 작아지는 속도도 커지는 속도도 서로 우리가 다음 단계라고 외치면서 IT역사가 쓰여지고 있다. 큰 것이 목표이면 더 크게 작은 것이 목표이면 더 작게, 둘의 밸런스가 목표이면 끝장나는 엔지니어링으로, 세상의 문제들을 풀어나간다. 커지다 못해 작은 것을 엮어서 크게 만들고, 작아지다 못해 나노 크기의 로봇을 만든다. 펜듈럼이라고 하기 힘든 이유 중 하나가 그 중간 지점의 disruption이 여기저기서 동시다발적으로 일어나는 이유도 있고, 크건 작건 서로 convergence 현상이 두드러지기 때문에도 그럴 것이다. 뭐 당연히 이런 현상의 기저에는 인터넷의 역할이 지대했을 것이다. 커지는 트렌드면 작아지는 놈이 묻혔고, 작아지는 트렌드면 커지는 놈이 묻혔지만, 인터넷은 더이상 트렌드를 이렇게 한쪽으로 놔두지 않을 네트웍을 만들었다. 다를 것 같은 두 노드에 링크가 생기면서 단순히 노드에 링크가 생기는 것 뿐만아니라 두 노드가 속한 다른 네트웍이 합쳐지게 된다. 새로운 트렌드에 의해서 새로운 연구가 생겨나고, 새로운 연구는 생각치 못한 결합으로 이전과 다른 방법으로 발전해간다.

현대의 기술에서 개인이라는 것이 더 부각되는 것은 이런 이유에서일 것이다. 이전의 나는 거시적으로 항상 통계의 일부일 뿐이었다. 세일즈 데이타에서 +1이었을 뿐이고, 웹사이트에 수십만 클릭 중에서 하나의 클릭이고, 어떤 트렌드에 리트윗 하나더였고, 게시판에 불평을 하나 올린 한 글쪼가리였었다. 하지만, 이제는 다르다. 개인과 통계의 사이는 더이상 펜듈럼 관계가 아니다. 개인이 부각되는 정도는 이전보다 커졌고, 통계를 움직일 수 있는 요소로 개인이 더 중요한 위치가 되었다. 10년 아니 20년전부터 개인화(Personalization/Customization)를 위한 기술이 뜰 것이라고 떠들어댔지만, 정작 개인화 서비스는 그것을 전면에 내세운 경우 제대로 뜬 것이 “한가지도” 없다. 하지만, 지금 여기에 와서 드디어 개인을 개인 데이타를 가진 한 개체가 아닌 네트웍 상에서 영향을 미치며 살아가는 개체로서 개인화라는 것이 말이 된다는 것이 보이고 있다. 즉 개인을 붕 떠있는 숫자가 달린 개체가 아니라 에너지를 발산하고 받는 전체 안에서의 존재로서 인정하는 기술로 변모하고 있다는 이야기다.

내가 하나의 숫자라면, 그 숫자는 무엇에 의해서 정해질까. IQ라면 얼마, 키라면 얼마. 이 숫자는 상대적으로 봐야할 숫자들이다. 나를 독방에 있는 한 사람으로 생각하고 “개인화”를 하면, 그게 얼마나 개인화된 것일까. 오늘 IQ를 재고 좀 더 지나고 나서 IQ를 또 재면 같게 나올까? 대상을 2명으로 늘려보자. 2명을 두고 둘의 숫자에 맞춰서 다른 서비스를 하는 것이 “개인화”이다. 하지만, 이 둘을 상대적으로 바라보면 또 다른 숫자이다. 단순히 이 둘의 숫자 각각으로 각각 다른 서비스를 제공하는 것이 아니라, 둘의 상대성으로 서비스를 하는 것이다. 예를들어 A와 B 둘이라고 하자. A가 키가 커서 큰키에 맞춘 서비스를 했다고 하자. B는 A보다 수치적으로 크다고 수집했다. “개인화”서비스라면 둘다 “같은” 큰키 서비스을 받을 것이다. 하지만, 상대적인 키를 생각하면 A는 큰키 서비스, B는 더 큰키 서비스를 제공한 것이 제대로된 “개인화”가 아닐까. (굳이 키를 예로 든 것은 매우 랜덤하다. 정말.) 이것이 둘이 아니고 셋, 스물, 백삼십, 이렇게 늘어났다고 상상해보면 그 속에서 나의 상대성, 그리고 나의 영향력이 이전보다 커졌음을 생각해볼 수 있다. 홀로 독방에서 산다면 상대성이 필요없겠지만, 현실은 그렇지 않다. 난 친구들 그룹에 따라 크기도 하고 작기도 하다. 어떤 서비스를 하기 위해서는 그 개인에 촛점을 맞추는 것은 그 상대성을 가져야되는데, 이는 쉽지 않다. 그것이 “개인화”였다.

대충 15년전 페이지랭크 한가지 신호를 가지고 구글은 검색엔진을 만들고 사람들에게 효과적이라는 호응을 얻었다. 물론 “개인”이라는 요소보다는 “링크” 즉 “페이지”를 주체로 하는 패러다임이었지만, 개인의 신호가 통계적으로 묻어있는 그 신호를 잘 활용하는 것으로 이런 상대성이 얼마나 효과적인 것인가를 증명했다. 그리고, 지금의 검색 엔진은 “페이지”나 “클릭”같은 기계적인 신호 수백가지를 가지고 더 나은 결과를 보여주기 위해서 열심히 삽질중이다. 물론 이런 검색엔진도 수없이 “개인화”를 시도했다. 위에서 언급한대로 개인의 정보를 사회적인 개인이 아니라 독립된 한 개인의 정보로 취급하는 방식으로. 모든 인간이 각자 자기 섬에서 살고 있는 것으로 가정한 방식으로. 이 사람은 이런 검색을 많이 했으니 이런 결과가 더 효율적이겠지식으로. 하지만, 이는 역시나 인과관계에서 결과를 바탕으로 유추한 기계적인 신호이다. 하다못해 엄청난 양의 데이타를 수집하는 구글 애널리틱스도 광고를 기준으로 하는 기계적인 정보를 수집하는 도구였다. 이를 토대로 개인을 분석하고 유추하지만, 여전히 기계적인 신호이다.

이렇게 사용자의 의도를 캐내서 그에 맞는 결과를 제공하는 서비스들에게 있어서 가장 중요한 것은 “문맥”이다. 이 문맥(분야에 따라 다르게 부르기도 한다)은 다양한 신호로 계산하여 추정하거나 유추된다. 하지만, 어떤 답을 추정하는 것과 사용자가 제공하는 것의 차이는 극명하다. 그것도 사용자의 동의 없이 수집했다가는 큰일난다. 똑똑한 구글이 이를 눈치 못챌리가 없지만, (당연히) 기존의 것을 버릴 수는 없었고 갑자기 사용자들에게 스탠스를 바꿀 수도 없었다. 그러는 새에 페이스북은 그런 데이타를 처음부터 수집할 요량으로 이를 꽉깨물고 마구 수집해갔고, 구글은 도저히 안되겠다! 구글에 뭘 좀 더하자(구글+) 생각한 것이 아니겠는가.

페이스북에는 자발적인 문맥 신호들로 가득하다. 내 나이나 생일, 내가 갔던 곳, 내 친구들 등 explicit한 정보에서부터, 내가 좋아하는 것들, 내 사진속 묻힌 정보들,  내 친구들이 들은 음악들 중에서 선호하는 것들등의 정보를 사용자가 “마구” (반)자발적으로 제공한다 – 구글은 수집에 익숙해있지만, 페북은 사용자들이 자발적으로 “제공”하도록 하는데에 익숙하다. 이들은 기계적인 신호가 아니다. 위에서 예를 든 A와 B처럼 개개인의 상대성과 비슷한 신호이다. 소셜이라는 기술적인 요소는 단순히 한 개인이 소셜한 활동을 할 수 있다는(혹은 있도록 enable한다는) 의미가 아니라, 개인을 독방에서 사는 개인이 아니라 소셜한 개인으로 보고 서비스를 한다는 의미가 있다. 개인이 이전보다 더 소셜해진 것이 주가 아니라, 개인은 이미 소셜했는데 그런 요소는 개인을 파악하는데에 사용하지 못하고(혹은 안하고 혹은 할 생각 조차 못하고 ) 있었다는 것이다. (아직도 많은 “소셜”서비스가 개인을 홀로 독거하는 사람으로밖에 취급하지 않은 경우가 많다.)

페이스북에 왜 검색기능이 없는가에 대한 이야기는 오래전부터 나왔다. 검색엔진에서 수집도 못하고, 검색서비스를 제공하지도 않고. 옛날에 무슨무슨 포스팅을 했었는데, 기억이 가물가물하네…페북의 대답은, 그냥 잊어라…혹은 타임라인에서 하루종일 찾아보든가. 가까운 미래에 추가될 수 있겠지만, 여전히 그 기능은 없다. 페북에서 웹검색? 빙(Bing)검색 결과를 보여주겠다. 혹은 그냥 Bing의 소셜기능이나 구글을 써라. 하지만, 구글이 기존의 검색 방식에 발목이 잡혀있는동안 대신 우리는 이런거 만들었다: 그래프 검색.

그래프 검색은 기존처럼 페이지나 쿼리 기반의 가중치를 둔 검색 서비스가 아니고, 자발적으로 제공된 (그리고 이를 통해 연결된) 그래프 데이타를 기반으로 만든 특정 신호 검색이다. 일단 페북에서 검색을 한다는 자체가 전혀 다른 문맥이라는 점을 캐치한 것이기도 하다. 네이버처럼 올인원을 원하는 것이 아니라면 – 그것이 모바일로 넘어갈때 아이덴티티가 흔들리는 문제로 이어지는 것일 수도 있다 – 굳이 페북에 일반 검색같은 결과를 보여주는 것이 얼마나 효과가 있을까. 기존 검색과 직접적으로 경쟁하는 것이 아니라 공존하는 기능이다. 어차피 “내 (페북)친구가 좋아하는 레스토랑은?”이라는 검색은 검색엔진에서 답을 주지 못하는 섹터이다. 페북 그래프 검색은 처음에는 4가지 종류의 결과를 제공한다고 한다: People, Photo, Places, Interest. 4가지밖에 안된다고 하지만, 이 4가지가 얼마나 큰 것들인지는 어렵지 않게 알 수 있다. 사람/장소/좋아요 검색은 이미 단순 이름 매칭으로 맨위의 검색창에서 일부 가능했고, 사진은 인스타그램을 인수한 페북이니 중요한 한 축이다. 이 기존의 방식에 날개를 단 격이다.

페북 그래프 검색은 사용자들이 자신들의 신호를 더 정제하는 것에 잇점을 제공하는 서비스이다. 알지 못하는 사람의 레스토랑 리뷰와 아는 사람의 레스토랑 리뷰의 차이랄까. 기존의 검색 엔진들은 전자를 (수집해서) 제공했고, 페이스북과 빙의 결합은 후자를 제공하게된다. 검색 엔진은 문서와 링크를 타고 다니면서 정보를 수집하고 문맥을 유추한다. 지식그래프 검색은 사람들이 제공한 정보를 타고 문맥을 제공한다. 소셜 서비스내에서의 검색로써는 분명 정보의 신뢰성에 차이가 있을 것이다. 게다가 명사/동사 기반의 오픈 그래프의 확장도 생각할 일이다. 사람이 키워드, 아이콘, 브랜드, 프로필사진, 등등 하나의 대표성으로 생각하는 경향도 장점으로 작용한다. 검색된 문서 결과가 수천만 혹은 수억 페이지면 뭐하나. 이걸 다 볼건 아니지않나.

물론 문제는 산재해 있다. 영어 자연어 검색이니 다른 언어는 어떻게 될런지도 모르고, 또 개인정보의 공개 비공개의 이슈가 또 있고, 거기에 이를 모네타이즈하게될 것이 뻔한데 그에 대한 걱정도 있다. 그래프검색 SEO도 나올 것이고, 검색 결과에 광고가 뜨면 일반 검색결과 페이지보다 흉(?)할 수 있다. 개인정보 속에 광고가 들어가는 것은 더 민감할 수 있는 사안일 것이다. 개인적으로 타임라인에 Sponsored 포스트가 나오는 것에 대해 굉장히 불만이 많기도 한데 여기도 마찬가지일 것 같다. 어떤 사람들에게는 좋아요를 누르지 않았는데 누른 것처럼 나오는 경우도 많다고 하고, 또 사망한 사람이 좋아요를 누를 경우도 있다고 하는데, 이런 노이즈 신호들은 더 정확한 결과를 보여줘야하는 이 검색 서비스에서 더 증폭될 가능성이 크다. 더불어, 여기서 검색되는 데이타가 엄청나게 크지만, 모두 페북 내의 데이타라는 점도 단점이 될 수 있다. 유행이 지나서 페북을 덜 쓰게 된다면 데이타의 신뢰도는 시간축 신호로 인해서 낮아질 수도 있는 일이다.

마지막으로, 아마존 같은 서비스를 생각해본다. 아마존은 강력한 컨텐트를 가지고 있다. 제품의 팩트와 함께 제품 리뷰와 구매정보 그리고 선호 데이타이다. 하지만, 간단히 내 친구의 제품 리뷰로의 연결은 쉽지않다. 추천하거나 선물하거나 혹은 목록을 만들어서 공유하는 등은 할 수 있지만, 페북과 같은 서비스가 쉽지 않다. 아직도 개인은 독방에서 살고 있고, 옆방의 개인과는 벽을 통해서 간간히 이야기를 할 수 있다. 하지만, 그래프 검색과 같은 서비스가 좀 더 확장될 수 있다면, 이런 정보에 날개가 달릴 날은 멀지 않은 것 같다. 또다른 disruption을 기대해본다. 어차피 내 정보를 가져갈 것이면 기왕이면 제대로 활용 좀 해주라.

Advertisements

Written by charlz

2013년 1월 16일 at 오후 6:34

Uncategorized에 게시됨

R.I.P Aaron Swartz

leave a comment »

하루에 약 150,000. 십오만명이 사망한다. 이 중에서 50,000명이 나이때문이 아닌 이유로 사망한다.

그리고, 이 중에서 100명이 – 아쉽게도 우리나라에서 가장 많이 – 스스로 목숨을 끊는다.

이들 죽음 모두가 슬픈 일이며, 어떤 상황이었건간에 소중한 한 목숨이었으며, 어떤 경우이건간에 스토리를 가지고 있고 무언가에 의한 희생이다.

하지만, 우리는 매일 100이라는 큰 수의 소중한 이야기에 귀를 귀울일 수 있는 방법이 없고, 알고자해도 알 수가 없다. 단지 그 전체를 대변하여 부각되는 우리의 귀에 들어오는 소식을 통해 슬퍼한다.

오늘도 내가 잘 모르는 한 사람이 그런 선택을 했다는 소식이 인터넷상에 울려퍼진다. 이야기꾼이 전한 글에 관심을 갖지 않을 수 없었다. 그는 그의 죽음으로 본적도 없는 나에게 한마디를 던진 것이고, 나는 이 사람 그리고 다른 모든 죽음에 잠시나마 시간을 멈추고 슬퍼한다. 듣지 못한 다른 이야기들을 애도하며, 들리는 이야기에 귀를 귀울인다.

이 사람은 이렇게 죽음으로 이야기를 전하려한 수많은 사람들의 이야기를 듣지 못하게 하려는 사람들에 대한 저항을 한 사람이었고 이것이 아마 그의 메시지였을 것이다.

죽음 이전에 그가 한 일에 작은 경의를 표한다.

모두 R.I.P.

Written by charlz

2013년 1월 12일 at 오후 6:01

Uncategorized에 게시됨

야근의 고리

with 6 comments

뒤늦게 제니퍼소프트 이야기들을 읽는다. 여러가지 다양한 (신기한) 복지들을 보면서 이들은 이 회사의 고유한 것들이라는 생각을 하지만, 7시간 근무에 대한 사람들의 열광적인(?) 부러움(?)이랄까…이 부분은 제니퍼소프트만이 가능한 것이 아니란 생각을 했다.

7시간은 커녕 8시간도 모자라 야근하는 환경. 마치 서울의 야경이 우리나라의 야근환경의 오마주처럼 회자되는 농담을 하는 것을 보면서, 씁쓸한 생각에 그 원인이 무엇일까에 대해 생각해본다. 야근은 끝내야할 업무를 끝내지 못하고 시간 외로 일을 하는 것이겠지. 물론, 야근 수당때문에 남는 사람도 있고, 고과를 위해 마지못해 남는 사람도 있고, 상사가 퇴근하지 않아서 퇴근하지 못하는 사람도 있을 것이겠지만, 이는 개발자들이 야근을 많아하는 것으로 생기는 불만과 조금 거리가 멀 것이라 생각된다.

지속적인 야근이란 잘못된 업무 대비 시간 estimate(추정?산정?) 방식의 답습에서 오는 문제가 아닐까 하는 생각을 해봤다. 내가 근무하는 이곳에도 야근은 당연히 있지만, 지속적인 어떤 일상이라기 보다는 자신의 잘못된 estimate으로 인한 페널티로 다음에는 제대로 할 수 있는 배움이기도 하고, 혹은 자신이 선택해서 하는 야근이 대부분이다.

대개의 estimate은 다음과 같이 이뤄지지 않을까:

  1. “언제까지 이거이거해 해” – 기간이 주어지고 업무가 주어진다. 선택이 없다.
  2. “이거이거 언제까지 할 수 있나” – 업무가 주어지고 기간을 정한다.
  3. “이때이때까지 얼만큼 할 수 있나” – 기간이 주어지고 업무를 조율한다.

야근개발자의 뿌리를 근절하기 위해서는 1이 계속 반복되어서는 안된다. 하지만, 우리나라의 상황은 2와 3을 키우기 많이 힘든 것 같다. 애초에 감각이 있어서 이를 빨리 캐치할 수 있다면야 모를까, 그 능력을 키우기위한 환경이 아니기에 빨리 습득할 수 있을리가 없다. 아쉽게도 1이 많고 2와 3의 능력을 기르지 못하는 한에는 야근은 반복되기 쉽다. 시간내에 할 수 있는 능력치를 자신도 모르고, 우격다짐으로 늦게까지 – 혹은 밤새 – 일하게 되기 때문이다. 결국 희생되는 것은 개발자 개인 뿐만아니라 제품의 품질이다. 다시말해 기간과 업무를 제어할 수 없다면 남은 것은 품질과 개인의 희생이라는 것이다.

1의 상황이라도 2와 3을 최소한 생각하고 그걸 바탕으로 소위 영어로 “Commitment”(해당 기간내에 해당하는 만큼을 하겠다는 공언 혹은 개인의 다짐)를 하는 연습을 해야된다. 지키면, 다음에는 그만큼 일을 할 수 있다는 것을 배우고, 못지키면 다음에는 그만큼을 할 능력을 키우거나 그것보다 덜 할당하는 것이 적합하다는 것을 알게 된다. 틀려도 발전하면 된다는 것이겠다.

쥬니어 개발자들이 – 혹은 시니어 조차도 – 흔히 estimate을 요할때에 “변수가 많아서”라는 말로 산정을 못하는 경우가 많다.  이 말이 사실이기는 하지만, 업무 커뮤니케이션이 무한대의 시간을 가정하는 프로젝트는 없다. 게다가 솔직히 책임회피용으로 쓰는 변명일때도 많다. 어떤 일정 기간이 정해져있지만, 나는 거기에 Commitment를 한게 아니고, 누군가 정한 것에 따랐을 뿐이다라고. 현실적인 estimate을 제시하지 않으면 다시 1로 돌아갈 수 밖에 없다. 그리하여 또다시 담배피러 모여서 토로하는 토픽에 포함될 수 밖에 없다.

자신의 능력을 제대로 알고 그에 맞게 일을 하고 다음에는 더 효율적으로 할 수 있도록 발전시키는 것이 잘못된 것일리가 없다. 계속 1만 반복하면, 일에대한 애착도 줄어들고 자신의 능력을 측정하기 힘들어지고 또 그만큼 무리하게 일을 할 가능성이 커진다. 자신이 estimate을 제시할 상황이 되면, 두리뭉실한 측정치를 가지고 다시 1로 돌아가게된다. 업무량과 시간이 변수가 아닌 상황에서는 과학적으로 이들의 상관관계를 밝힐 수 없지 않나.

2와 3의 장점은 자기 발전과도 직접적으로 연관이 있다. 측정이라는 것은 그 데이타를 통해서 다음 방향을 정하기 위한 것이다. 내 시간관리와도 맞물릴 수 있고, 내 능력의 한계를 더 늘리기 위해서 그 한계를 알 수 있는 유일한 방법이다. 하지만, (우리나라서는) 무엇보다도 장기적으로 야근의 고리를 끊을 수 있는 단초가 된다는 의미가 이 글에서는 가장 크겠다.^^

1을 통해 비슷한 일을 반복적으로 오래하는 것으로 시니어(선임)가 되면 보통은 그 일에대해 리듬을 알고 공수를 찍어내듯이 습관처럼 추정할 수 있는 능력이 생긴다. 그런데, 이런 식이라면 그 능력이 다른 곳에는 잘 적용이 안된다. 사실은 그런 능력이 생긴 것이 아니라 그 특정 일을 잘 알게 되는 것일 가능성이 크기 때문이다. 그리고 야근하던 방식이었다면 그것이 그대로 유지가 된다. 그 일만 기차게 잘하고 그 일만 할 것이라면 크게 문제가 되지 않을 수 있겠다. 하지만, 후임은 또 야근의 고리를 끊지 못한다. 그것이 아니라면 꼭 연습해야하지 않을까.

그런 것이다. 이런건 장기적으로 천천히 구울수 밖에 없는 문화(culture)이다. 나만 바뀌어서는 좀처럼 바꾸기 힘든 문화. 협조을 못얻고 나혼자 튀는 일은 득보다는 실이 되는 문화에서 이렇게 변하는 것은 쉽지 않다. 하지만, 환경이 그렇다고 (후임이 커가는) 다음 세대에서는 그게 바뀌지 말아야된다는 법은 없다. 나는 야근하지만, 나중에 내가 어떤 팀을 리드하게 되면 우리팀은 야근하지 않도록 그 고리를 끊어야겠다는 생각이 있다면, 생각해봐야될 일이지 않을까. 지금 환경이 그러하니 어쩔 수 없다는 생각보다 그 다음을 생각하는 것이 필요하지 않을까. 근무시간을 채우기 위한 야근이라면 이런 이야기와는 상관이 없을지도 모르지만, 잘못 산정되는 업무강도로 인한 야근이라면 문화를 조금씩 바꾸는 것으로 좀 더 나은 미래가 있으리라 생각된다.

Written by charlz

2013년 1월 11일 at 오후 4:15

Uncategorized에 게시됨

%d 블로거가 이것을 좋아합니다: