기억 - Universal Search

한국 과제 이름 : kPrism

by 개발자 정채상

오래 전부터 구글 검색 결과 페이지는 10 blue links 로 알려져 있었다. 오랜 세월이 지난 지금에도 뭔가 마땅한 결과를 못 보여 주면 전통적인 양식을 따른다. 전통적인 web result UI 에도 여러 가지 의미들이 있지만, 이 단조로운 결과를 여러 의미로 다채롭게 만들기 위해서 오랫동안 노력들을 해 왔고, 구글에 조인했던 2007년 즈음은 이것의 한창이었던 시기였었다. 가까운 경쟁자인 네이버 검색 결과 페이지를 보면 다양한 조각들로 되어 있고, 한편의 삐딱한 시각으로는 사용자가 뭘 좋아할 지 몰라서 다 준비해 본다. 라는 시각도 있어서 최선을 다한 것이었냐 라는 논란이 일기도 했던 시기였다.


이전의 모바일, 임베디드의 때를 싹 지우고 새 마음으로 구글에 조인해서 맡게 된 첫번째 과제였고, 과제 이름은 kPrism. Prism 은 무지개처럼 펼쳐지는 그거 맞고, k 가 야심차게 붙어 있는데, Korea 의 K 맞다. 8명이서 나눠서 하던 나름 큰 규모의 과제였었고, 여기서 다양한 결과들을 모으고 붙이는 universal search, 한국어로도 유니버설 검색 과제가 있었더랬다.

image.png 2008 년 1월 런치된 한국형 유니버설 검색


챌린지들


참고로 당시에는 software engineer 들이 닥치는 대로 풀어야 하는 문제들을 풀어 나가던 시기였기에 뭐든 했더랬다. 지금으로 치면 frontend 와 backend가 나누어져 있는 구조인데, backend 에서 랭킹을 포함해서 보여 주고 싶은 결과의 구조를 다 만들어 주고, frontend는 주어진 구조를 잘 표현해서 화면에 배치하고 사용자의 행동을 담아 내는 역할을 했다. 프론트엔드부터 챙겨 보자면, 당시 크롬이 있기 전이었기에 툴툴거리면서 Internet Explorer 와 Firefox 를 켜며 한땀한땀 다루었었고, 아직 진지한 Javascript가 쓰이기 전이어서HTML/CSS의 기본에 충실한 접근들을 했더랬다.


그 이외의 모든 고민은 백엔드에서 한다. 결과들을 tree 형태로 묶어 보여 주기로 하는 result group 이 도입되었고, 각각의 vertical 들의 사정에 맞는 정보들이 담기게 된다. 그룹들 사이에는 누가 더 나은지 비교하게 되고, vertical 간의 ranking , vertical 내에서 결과들 사이의 ranking 들이 이슈가 된다. 각 vertical 들을 별도의 resource 들을 운영하면서 진행해야 하는지 기존의 web 에 묻어 갈 것인지가 가장 큰 고민이었다. 하나의 쿼리에 뉴스와 이미지 등이 웹과 싸우게 되고, 억지로 그룹을 지으면 blog@2 과 image@1 는 제대로 비교하고 있는지..? 화면에서 group 을 굳이 매겨서 여기까지는 skip 하시오.. 라는 걸 어떻게까지 대비해야하는지..? 그룹처럼 보이려면 3개는 묶어야 할텐데.. 진짜..?


kPrism의 필요에 의해 result group에 앞서서 참가를 하였고, result group 에 대한 기여, 과제 런치와 함께 여러 좋은 일들이 생겼다. 버티컬들이 따로 옮겨다니진 않았지만, 지금까지 아주 오랫동안 result group 이 쓰이고 있었고, 이 당시부터 오른쪽 영역은 광고보다 다른 데 쓰자 했었더랬다. 이후 지금의 answer block, knowledge panel 의 토대가 되었으며, 클릭 가능한 건 뭐든지 result click 으로 간주되었고, 분석하는 pipeline 에서는 click credit 을 분배해 나갔더랬다. 자연스럽게 이 모든 것들은 web 의 index 로 통일되어 관리되었다.



블로그를 위한 노력들


한국에서는 당시 네이버 안에 자료들이 가두어져 있어 이걸 풀려는 노력들을 많이 했었고, 그 일환으로 일정 요건을 갖춘 페이지들을 블로그라 부르며 별도의 섹션으로 놓아 특별한 대우들을 하려 했었다. 지금에야 한풀 꺾였다지만, 당시 블로그라는 게 대세 중 하나이기도 했었고, 한국의 웹이 구글 크롤러들에게 잘 보여지는가 체크하는 것부터, 뉴스를 copy 한 것들을 어디까지 인정해 주어야 하는가 등의 authority 관련 이슈들, 당시에도 만연하던 기계가 만들어 내는 자료들을 어찌할 것인가에 대한 이슈들까지..


당연하게 어디까지가 블로그냐에 대해 '한국에서만' 의 가치를 두다 보니 잘 안 되었더랬다. 웹의 일부로 치면서 site level cluster를 운영할 건지, 별도의 crawl / index 를 꾸릴 것인지를 고민했었다. 구글 검색 결과에서는 별도의 blog 블럭이 있으면 웹이랑 다르게 불러야 하나 말아야 하나 등의 고민들이 있었더랬다. blogger, textcube 등을 사서 어떻게 할 건지 등도 같이 고민했었고, 그 마무리 지점 즈음에는 구글판 지식인을 꿈꾸었던 놀(KNOL, https://en.wikipedia.org/wiki/Knol)이 있다. 하지만, 네이버가 지식인과 블로그를 중심으로 꿋꿋하게 잘 버텼기에 구글 시각에서는 잘 안 되었고, 이후 모바일 세상과 유튜브 세상이 올 때까지 패배를 인정할 수밖에 없었다. 적군이었지만 박수를 보내는 한편, 요즘 소버린 시국을 맞이해서 조금 더 역할을 맡아 주면 하는 개인적인 바램도 있다.

image.png KNOL


App 에서의 노력


이후 모바일 세상이 왔고, 모바일 세상에서 저 결과들이 섞여서 보여지려 한다면 등에 대해 비슷한 노력들이 필요했다. 새로운 vertical 이 만들어지고 사라지고 하는 게 그 자체가 지니는 난이도가 있고, 야기하는 사용자의 편의성과 임팩트 등이 고민이 많게 된다. 여기서 양대 산맥으로 나누어 졌던 모바일 세상에 여지가 생겼다. 안드로이드와 아이폰에서 ‘게임’을 찾는다면 ? 스타크래프트는 아니잖아 ? 안드로이드 폰에서 ‘네이버’를 검색하면 네이버 앱이 다운로드 될 수 있게 해야 하지 않을까 ?


별도의 vertical 이 필요할까? 라는 질문에는 의외로 쉽게 접근을 했다. 안드로이드에서는 플레이스토어, 아이폰에서는 앱스토어. 초기에 제3의 마켓들이 있었다지만, 법적 검토로는 무시해도 될만한 수준이었더랬다. 모바일에서는 상대 스토어들을 안 보이게 하는 것만으로 꽤 좋은 결과가 나왔었다. 전통적인 검색과 모바일 시장의 자연스런 결합이었고, 특정 사이트를 + 해 주는 거면 불편한데, 어차피 도움 되지 않는 사이트를 빼 주는 형태로 자연스레 구현이 되었더랬다. 의외로 이걸 '앱' or '어플' , or 'App' or 'Application' 이름 정하는 데 꽤 고민을 했더랬다. 당시에는 은근히 Chrome extension 도 Chrome app 이라 부르고 있던 시절이었고, app/application 이라는 말을 생각보다 광범위하게 쓰인다.


Ranking 은 언제나 물음표였다. 예를 들면 '게임'이라는 쿼리에 구글의 결과와 플레이스토어 결과가 같아야 하느냐 ? 라는 질문은 언제나 단골 질문이었고, 이후에도 많은 질문들이 생겨났으며, 이를 풀기 위해서는 모바일 친화적인 여러 과제들이 아래의 질문들을 이어 받아 진행하게 된다. 유니버설 검색은 여기까지...

- 공식 사이트를 구하는 만큼 공식 앱을 구하는 노력은 어떻게 되어야 할까 ?

- 앱을 다운로드한 사용자한테는 다르게 보여 주어야 하지 않을까?

- 사용자가 앱을 지우면 구글 검색은 어떻게 알지 ?

- 구글 로그인 안 한 사용자들한테는 어떻게 ?

- 기계가 두 개면 ? 한 기계에 여러 사용자가 들어오는 거면 ?




매거진의 이전글Sawzall