[문과생을 위한 IT 수업] 검색의 원리 1: 색인

안녕하세요? 오늘은 카카오의 웹사전 기획자 정철의 책 <검색, 사전을 삼키다>를 함께 읽으며 기초적인 IT 지식을 쌓아볼까 합니다. 문과 출신, 혹은 이과를 나왔어도 IT를 사용할 줄만 알지 그 원리에 대해서는 잘 몰랐던 분들을 위해 '순결한 문과인'인 제가 이 책을 한번 읽어보겠습니다.
지질학과 나온 웹사전 기획자 정철
검색은 도대체 어떻게 가능한 것일까요? 어떻게 검색어를 입력하자마자 어마어마한 양의 검색 결과가 나올 수 있는 것일까요? 아무리 실력 있는 중국집이어도 볶음밥을 볶을 때 어느 정도 시간이 걸리는데 말이죠. 그 시간을 줄이기 위해서는 미리 만들어둔 볶음밥을 전자레인지에 데워서 가져오거나 아니면 식지 않게 온도를 계속 유지해줘야 할 텐데요. 알고 보니 그 생각이 맞았습니다. 검색은 미리 만들어서 온도를 유지해둔 볶음밥을 내놓는 방식으로 이루어지기 때문에 엄청난 속도를 낼 수 있는 것입니다.

일단 볶음밥의 조리 방식을 알아보죠. 먼저 재료 수집 단계. 이 단계는 크롤링crawling이라고 하는데, 벌레가 기어 다니면서 뭔가를 주워 담듯이 문서를 수집하기 때문에 크롤러라는 이름이 붙었습니다. 크롤러는 문서에 딸린 링크를 따라다니며 문서를 주워 담습니다. 그러니까 웹상에서 한 번도 다른 문서에 링크된 적이 없는 문서라면 기본적으로 수집 대상이 되지 않겠죠. 수집하는 문서의 개수는 수억 건 이상입니다. 어마어마한 양의 문서를 수집하기 때문에 그것을 적절히 쌓아두는 일 자체가 꽤나 버거운 작업입니다.

재료를 수집했으니 볶아 먹으려면 야채 껍질 정도는 벗겨야겠죠? 이것을 파싱parsing이라고 하는데, 수집한 문서에서 제목, 본문, 주제어 등 필요한 요소만을 추출하고 나머지 노이즈를 제거합니다. 본문에 링크나 이미지가 있으면 따로 정리하며, 개인 정보라고 할 만한 것들이 있으면 노출되지 않도록 감춥니다. 파싱은 정보 가공 과정의 온갖 잡일을 다 포함하는 말입니다. 컴퓨터는 예외를 잘 못 참는 기계라 입력과 출력의 형식이 조금이라도 어긋나면 바로 '에러error'를 내놓는답니다. 에러를 줄이기 위해서는 정말 열심히 파싱을 해야죠. 솔직히 정말 지겨운 일이라 많은 이들이 기피하지만, 정보 검색에서 파싱을 소홀히 하면 반드시 후환을 만나게 되니 반드시 제대로 해야 하는 과정입니다.

 
이것을 이렇게 기준을 바꿔 정리하는 것입니다.
즉 어떤 단어가 어디에 있는지 위치 값을 기록해두는 것입니다. 이러한 색인 과정 역시 문서가 수억 건, 검색어가 수백만 건이므로 어마어마한 DB 작업이 필요한 일입니다. 하지만 이건 연봉 높은 프로그래머들이 해주니까 우리는 그냥 다 되어 있겠거니~ 생각하죠. ^^

이제 사용자가 검색어를 입력하면 중국집에서 주문을 받는 것과 같습니다. 주문이 들어오면 미리 볶아서 따뜻하게 만들어둔 재료를 꺼내놓습니다. 주문은 a1입니다. 주방에서 곧바로 준비된 a1을 꺼내옵니다.
"A/1번에 있습니다."

검색어를 두 개 입력하는 경우도 있습니다. 주문이 a1, b1로 들어오면 준비된 a1과 b1을 조합해 A문서만을 내줍니다. B문서는 b1이 있지만 a1이 없으므로 조합해도 결과가 나오지 않습니다. 즉 색인 과정에서 시간이 많이 걸리는 계산은 미리 다 끝내놨기 때문에 우리가 검색어를 넣자마자 결과가 나오는 것입니다.

자, 여기까지의 과정을 보고 나니 뭔가 익숙하지 않은가요? 어디서 들어본 듯하지 않나요? 이 원리는 바로 책 뒤에 붙어 있는 '색인' 혹은 '찾아보기'가 확장된 것입니다. 색인은 단행본 끝부분이라는 물리적인 틀 안에 갇혀 있을 때는 그리 강력한 효과를 발휘하지 않았지만, 웹에서 수억 건의 문서를 대량으로 색인하기 시작하자 질적 변화가 뒤따랐습니다. 모든 책의 색인을 하나로 모아놓고 클릭 한 번에 해당 책의 페이지를 바로 열어볼 수 있게 된 것이죠. 이제 검색은 말 그대로 모든 것이 들어 있는 상자가 되었습니다. 그것이 판도라의 상자라 할지라도 무엇이든 들어만 있다면 사람들은 호기심에 차서 그것을 열어볼 수밖에 없을 것입니다.

* 이 글은 <검색, 사전을 삼키다> 144~147쪽을 재편집한 것입니다.
 
 
 
 
검색, 사전을 삼키다
저자 정철
출판 사계절
발매 2016.05.27.