로봇 사서들

질문을 입력하고 Enter 키를 누르면, 짠! 1초도 안 되어 답이 나타납니다. 마치 마법 같아요. 인터넷이 그저 여러분을 기다리고 있었던 것처럼 느껴지죠. 하지만 반전이 있어요. 검색 엔진은 여러분이 물어본 순간에 온 웹을 뒤지기 시작한 게 아니에요. 여러분이 오기 몇 주 전부터 이미 숙제를 다 해 두었답니다.

여러분이 질문하기 훨씬 전, 검색 엔진은 "크롤러"라고 불리는 작은 로봇 프로그램들을 내보냈어요. 이들을 지치지 않는 사서라고 생각해 보세요. 이 사서들은 온 인터넷을 돌아다니며 링크를 계속, 또 계속, 또 계속 눌러요. 페이지 하나를 방문해 읽고, 모든 링크를 따라 새 페이지로 가고, 그렇게 계속해요. 영원히, 밤낮없이요.

하지만 온 웹을 읽는 것만으로는 충분하지 않아요. 십억 권의 책의 모든 쪽마다 사실 하나씩을 적어 둔다 해도, 여전히 아무것도 찾을 수 없을 거예요. 그래서 크롤러들은 똑똑한 일을 해요. 바로 색인을 만드는 거예요. 색인이란 어떤 단어가 어떤 페이지에 나오는지 알려 주는 거대한 목록이에요. 교과서 맨 뒤에 있는 가나다순 찾아보기와 똑같지요.

모든 것을 빠르게 만드는 비밀은 바로 이거예요. "어떤 페이지에 고양이가 나오지?" 하고 모든 페이지를 읽어 확인하는 대신, 색인은 방식을 거꾸로 바꿔요. 색인에는 이미 "고양이" 서랍이 있고, 그 서랍 안에는 "고양이"라는 말이 나오는 모든 페이지의 목록이 미리 들어 있어요. 단어를 찾고, 목록을 꺼내면 끝이에요.

그래서 여러분이 "감기에 좋은 최고의 수프"라고 입력하면, 검색 엔진은 인터넷을 읽지 않아요. "수프" 서랍, "감기" 서랍, "최고" 서랍을 열고, 그 모든 서랍에 함께 나타나는 페이지들을 찾아요. 그러면 아마 몇천 개쯤 되는 페이지 목록이 나와요. 눈 깜짝할 사이에요. 이미 그 일을 해 두었기 때문이지요.

이제 새로운 문제가 생겨요. 맞는 페이지가 수천 개나 되면 너무 많잖아요. 어느 것이 맨 먼저 와야 할까요? 여기서 순위 매기기가 등장해요. 검색 엔진은 각 페이지에 점수를 매겨요. 이런 질문을 하면서요. 이 페이지는 여러분이 뜻한 대로 이 단어들을 쓰고 있나요? 믿을 만한 다른 페이지들이 많이 연결하고 있나요? 빠르고 읽기 쉬운가요? 가장 높은 점수를 받은 페이지가 맨 위로 떠오릅니다.

그리고 이 모든 일을 컴퓨터 한 대가 하는 것도 아니에요. 색인은 너무나 거대해서 잘게 나뉘어 데이터 센터라고 불리는 거대한 건물들 속 수천 대의 컴퓨터에 퍼져 있어요. 여러분이 검색하면, 그 컴퓨터들이 모두 동시에 여러분의 질문을 처리하고, 그런 다음 결과를 한데 모아 돌려보내요. 마치 커다란 주방에서 요리사 백 명이 각자 한 가지 요리를 동시에 준비하는 것처럼요.

그 모든 일, 찾아보고, 맞춰 보고, 순위를 매기고, 수천 대의 컴퓨터가 힘을 합치는 일이 1초보다도 짧은 시간에 일어나요. 눈을 깜빡이는 것보다 빠르게요. "와!"라고 말하는 것보다도 빠르게요.

그러니까 검색 엔진이 빠른 건 빨리 읽기 때문이 아니에요. 미리 읽어 두고, 모든 것을 가지런한 서랍에 정리해 두고, 어떤 서랍을 열어야 하는지 정말, 정말 잘 알게 되었기 때문이에요. 다음에 답이 눈 깜짝할 사이에 나타나면, 일찍 와서 일해 준 지치지 않는 로봇 사서들에게 살짝 고개를 끄덕여 주세요.
