위클리비즈

[Tech] 충무김밥을 검색했다… ① 수집하고 ② 언어를 색인하고 ③ 순서를(검색 모델링) 정한다

Trend 이윤식·네이버 검색본부장(이사)
입력 2011.08.20 03:11

검색엔진의 메커니즘 검색 소프트웨어는 알고리즘 연결된 거미줄… 하루 1억6000만건 소화 '일본戰 골' 검색했는데 '일본 전골' 나오면 실망 소녀시대 문서만 74만건… 어떤 것을 상단에 놓나 모델링 통해 순서 정해

이윤식·네이버 검색본부장(이사)
기술 용어도 비유인 경우가 많다. '검색엔진'도 그 중 하나다. 검색엔진은 사실 검색기능을 수행하는 소프트웨어다. 배기통도 없고 시동을 걸 때(키워드를 입력할 때) '부르릉' 소리가 나지도 않는다. 하지만 '엔진'이라는 비유는 이 소프트웨어에 잘 어울린다. 인터넷은 수많은 볼거리가 펼쳐진 광활한 공간이다. 검색창에 키워드를 입력하고 엔터 키를 누를 때마다 사람들은 멋진 검색결과를 기대한다. 멋진 스포츠카 운전석에 앉아 시동을 걸고 어디론가 가고 싶은 꿈과 비슷하다. 이런 기대감을 만족시키려면 검색 소프트웨어는 성능 좋은 '엔진'처럼 움직여야 한다.

검색엔진은 수천만 줄의 컴퓨터 언어로 만들어진 소프트웨어다. 가까이에서 보면 스포츠카 엔진처럼 깔끔하지 않다. 수천 마리의 거미가 수십, 수백년 동안 짜놓은 거미줄처럼 어지럽다. 다만 이 거미줄들은 '알고리즘(algorithm)'이라는 논리적 연산들로 연결돼 각자 필요한 기능을 수행한다. 검색엔진을 구성하는 소프트웨어들의 기능은 다양하다. 하지만 크게 보면 세 가지 기능, '수집'·'색인'·'검색 모델링(랭킹)' 가운데 일부를 담당한다고 볼 수 있다.

검색엔진의 첫 번째 기능은 웹 문서를 '수집'하는 것이다. 수집은 단번에 끝나지 않고 수시로 꾸준히 이뤄진다. 웹 문서의 양이 방대하기도 하지만 계속 바뀌기 때문이다. 좋은 검색결과를 내기 위해서는 문서의 수정 내용이 검색결과에 바로 반영되어야 한다. 네이버 서버 안의 문서는 변화가 생기면 자동으로 업데이트가 되지만 외부 문서의 경우 로봇이라고 불리는 수집 프로그램이 돌아다니며 확인해야 한다. 물론 자주 방문하면 변화 내용을 빨리 알 수 있다. 그러나 너무 자주 방문하면 해당 사이트에 장애가 생길 수도 있다(누군가 계속 집 초인종을 누르는 것과 비슷하다). 또 '수집하지 마라'고 닫아 놓은 사이트도 적지 않다. 좋은 수집 프로그램은 인터넷 구석구석까지 찾지만 상대방에게 부담을 주지 않으면서 에티켓도 잘 따르도록 설계해야 한다.

두 번째 '색인(index)'기능은 언어 처리와 관련된 영역이다. 가령 '개봉 영화'라는 검색어를 입력했을 때 '개봉동 영화아파트'라는 결과가 나온다면 실망할 것이다. 그럼 '충무김밥'은 어떨까? 김밥의 한 종류인 '충무김밥' 관련 내용이 나가야 할까? 충무에 있는 김밥집이 나오면 틀린 것일까? 이 과정을 논리적으로 푸는 단계가 바로 색인이다. 특히 우리말은 음절로 자르느냐 형태소로 자르느냐, 띄어쓰기를 인식하느냐 마느냐 등에 따라 엄청난 차이가 생긴다.

가령 한·일 축구 경기 다음날이면 많이 입력되는 '일본전 골'이라는 질의를 예로 들어보자. 이를 형태소로 자르면 '일본'·'전'·'골'로 분류되지만 '음절'로 분류하면 '일·일본·본·본전·전·전골·골'로 추출된다. 이 경우 음절 단위 색인 추출을 하면 '일본전 골'에 엉뚱하게 '일본'의 '전골' 요리를 설명하는 문서가 나올 수도 있다. 이런 색인작업은 빠른 검색을 위해서도 필요하다. 각 웹 문서가 어떤 내용과 단어를 포함하고 있는지 정리해놓지 않고 검색어가 들어올 때마다 전체 문서를 돌아다닌다면 검색시간이 길어질 수밖에 없다.

수집·색인이 잘 됐을 경우 남은 문제는 '어떤 문서가 검색결과 상단에 가야 하느냐'이다. 현재 네이버 블로그에서 걸그룹 '소녀시대'라는 색인을 갖고 있는 문서는 약 74만건이다. 이 문서 중 사람들이 가장 원하는 문서가 무엇인지 결정하는 게 '검색 모델링'이다. 검색 서비스 초기에는 질의가 포함된 문서(즉 유사도가 높은 문서)를 찾는 것이 모델링이었다. 가령 '소녀시대'라는 질의가 오면 '소녀시대'라는 단어를 많이 포함한 문서를 보여주는 식이다. 하지만 웹 문서가 급증하면서 질의를 많이 포함한다고 해서 만족스러운 문서가 될 가능성은 점차 낮아졌다. 오히려 질의가 너무 많이 포함된 경우 문서 질이 떨어지는 경우도 있었다. 이제는 해당 질의가 문서 앞에 있는지 뒤에 있는지, 문서 전체에 얼마나 골고루 퍼져 있는지 등을 살피는 등 보다 정교한 모델을 사용한다.

유사도와 별개로 문서 자체의 고유한 특성을 반영하기도 한다. 가령 다른 문서와 많이 링크된 문서는 품질이 좋다고 판단하고 뉴스 문서의 경우 최신 뉴스인지 여부를 평가 요소로 고려한다. 최근에는 해당 웹 문서가 얼마나 많은 클릭을 받았고 이용자들이 얼마나 오래 머물렀는지 같은 이용자 피드백도 반영하고 있다.

마지막으로 각 질의 종류별로 다양한 요소들을 어떤 비율로 조합할지 고려해야 하는데, 만약 고유의 특성 값을 너무 높게 설정해 버리면 질의와 동떨어진 검색결과가 나올 수도 있기 때문이다.

검색엔진은 이처럼 수집·색인·모델링(랭킹) 기능을 하는 소프트웨어의 집합체이다. 하지만 이 소프트웨어가 장애 없이 돌아가기 위해서는 다른 요소들도 필요하다. 검색어 입력 후 1초 이내에 결과를 내놓기 위해서는 앞서 설명한 소프트웨어가 담긴 수만 대의 서버가 쉴 새 없이 돌아가야 하는데, 이를 위해서는 안정적인 대용량 데이터 처리 시스템이 뒷받침돼야 한다. 그렇지 않으면 한 번의 검색결과를 내놓을 수 있을지는 모르나 하루 약 1억6000만건(연간 580억건)의 질의에 안정적으로 답할 수 없기 때문이다.

화제의 Trend 뉴스

모든 억압 깨고 가치 소비 중시하는 MZ세대를 주목하라
양손을 책상 위에 놓고 의자에 앉았다 일어나기… '오피스 워크아웃' 美 직장인에 선풍
고객은 드릴이 아니라 구멍 뚫는 도구를 원한다
당신의 기업에 다시 밝은 태양을 떠오르게 할 방법 5가지
中 "7월 화성 탐사선, 하반기 달 착륙선 발사"

오늘의 WEEKLY BIZ

알립니다
아들을 죽여 人肉 맛보게한 신하를 중용한 임금, 훗날…
'암흑의 숲'으로 들어가고 있는 미국과 중국
유럽 기업 빈부격차 줄이려면 '범유럽 주식형 펀드' 만들어야 한다
미국인들이 코로나 위험 무릅쓰고 직장에 복귀할까