비전공자도 이해할 수 있는 AI지식19 -구글이 셀 수없이 많은 문서를 모두 수집한 비결-

1. 300조개가 넘는 문서를 수집하다

 

구글은 엄청난 수익뿐만 아니라 엄청난 문서를 색인하고 있는 것으로도 유명합니다.

 

검색엔진이 인터넷에 있는 문서를 수집하여 검색에 적합하도록 보관하고 있는 것을 색인(index)이라고 합니다.

 

구글은 2013년에만 무려 30조 개의 문서 색인을 마쳤습니다. 

 

불과 3년 후인 2016년에는 100조 개가 더 늘어났다고 밝혔습니다. 불과 3년만에 3배의 성과를 올렸습니다.

 

모두 합해 2016년에만 총 130조개의 문서 색인을 갖췄죠. 이후 더 공개하지는 않았지만, 아마 2020년 기준으로 300조 개가 훨씬 넘는 문서를 색인하고 있을 것으로 추정됩니다.

 

이렇게 많은 문서를 대체 어디에 보관하고 있을까요?

 

구글은 엄청난 양의 문서를 고가의 컴퓨터 몇대에 저장하는 게 아니라, 일반 PC처럼 저렴한 컴퓨터 수백, 수천 대에 나눠서 저장하는 방식을 택했습니다.

 

이를 위해 구글 파일 시스템(GFS, Google File System)이라는 효율적인 분산 파일 시스템을 만들어냈고 덕분에 아무리 큰 파일도 여러 대의 서버에 나누어 저렴한 비용으로 저장할 수 있게 됐죠.

 

이 방식은 또한 초기 빅데이터 플랫폼의 원형이 되어 이후에 본격적인 빅데이터 플랫폼이 등장하고, 나아가 인공지능의 시대가 열리는 계기가 됩니다.

 

사실상 지금의 빅데이터와 인공지능 분야는 구글이 기반을 닦았다고 할 수 있으며 지금도 구글은 방대한 데이터를 기반으로 한 세계 최대의 빅데이터 회사이자, 세계 최고의 인공지능 연구기관입니다.

 

구글에서 발표하는 인공지능 플랫폼과 연구들은 전 세계 인공지능 업계를 주도하고 있다고 해도 과언이 아니죠.

 

구글은 이처럼 빅데이터 플랫폼을 구축해 엄청나게 많은 문서를 저장해두고 있습니다. 

 

 

2. 엄청난 문서 수집 능력때문에 차단 당한 구글

 

그런데 놀라운 사실은 사용자가 쿼리를 입력하면 수많은 문서 중에서 딱 맞는 문서 10개를 정확하게 찾아낸다는 점이죠.

 

그리고 사용자는 92% 확률로 10개 중 하나를 클릭합니다. 여기까지 걸리는 시간은 0.5초가 채 걸리지 않죠.

 

검색엔진은 어떻게 이런 엄청난 일을 해내고 있을까요? 

 

검색을 하기 위해 가장 먼저 필요한 것은 문서를 수집하는 일입니다. 당연히 문서가 많으면 많을수록 좋겠죠.

 

그러기 위해서는 방대한 문서를 담을 수 있는 플랫폼이 필요합니다.

 

그래서 구글은 수백 조 개가 넘는 방대한 문서를 담을 수 있도록 앞서 얘기한 거대한 분산파일 시스템인 구글 파일 시스템을 구축했죠.

 

엄청난 검색능력 뒤에는 이처럼 방대한 데이터 처리 능력이 뒷받침하고 있었던 셈입니다.

 

문서를 수집하기 위해서는 웹 사이트를 구석구석 돌아다녀야 합니다.

 

웹은 말 그대로 링크로 연결된 거미줄과 유사한 형태를 띠고 있기 때문에 웹 사이트에서 정보를 수집하는 로봇도 스파이더라고 부릅니다.

 

웹 페이지를 갈고리처럼 긁어온다고 해서 크롤러라고도 부르죠.

 

크롤러는 웹 페이지를 방문할때마다 특수한 데이터베이스인 '색인'에 정보를 추가합니다.

 

앞서 설명한 것처럼 색인은 문서를 검색에 적합하도록 보관하여 나중에 검색을 빠르게 수행하는 역할을 합니다.

 

먼저 크롤러에게는 방문할 사이트 목록이 필요합니다.

 

일종의 지도 출발지와 같죠. 크롤러가 해당 URL을 방문하면 사이트 내 웹 페이지의 모든 링크를 식별하고, 방문할 URL을 큐라는 목록에 계속해서 추가합니다.

 

그러면서 크롤러는 방문한 웹 페이지에서 필요한 내용을 추출하여 저장하는 작업을 병행합니다.

 

원래 웹 페이지를 해석하는 것은 브라우저의 몫이지만, 크롤러가 웹 페이지에서 정보를 제대로 추출하기 위해서는, 크롤러도 브라우저만큼이나 고도화할 필요가 있습니다.

 

가능하면 웹 페이지를 만드는 개발자들이 규칙을 잘 지켜서 사이트를 만들면 좋겠지만, 그렇지 않더라도 크롤러는 사람만큼이나 웹 페이지의 내용을 잘 이해할 수 있어야 하죠.

 

그래서 검색의 첫번째 작업을 담당하는 크롤러는 매우 정교해야합니다.

 

크롤러는 스토리지에 웹 페이지에서 추출한 정보를 차곡차곡 저장합니다.

 

제목이나 본문 같은 텍스트는 물론, 본문의 주제와 문서 길이 같은 메타 데이터도 추출하여 저장하죠.

 

또한 이미 방문한 사이트는 다시 방문할 필요가 없겠죠? 한번 방문한 사이트는 일정 시간 재방문하지 않는 정책이 필요합니다.

 

스케줄러가 이런 정책을 관리하죠. 엄청나게 많은 웹 페이지 URL 중에서 어떤 페이지를 먼저 방문할 것인가는 좋은 연구 주제이기도 합니다.

 

이를 선택정책(Selection policy) 연구라고 합니다.

 

스케줄러와 선택정책 연구는 사이트 운영자들에게도 매우 민감한 이슈입니다.

 

무분별하게 웹상의 데이터를 끌어모으면 과도한 트래픽이 생겨 서비스에 피해를 줄 수도 있기 때문입니다.

 

국내 진출 초기에 구글은 지나친 크롤러 성능 때문에 한동안 국내의 많은 웹사이트에서 차단당하기도 했죠

 

웹 사이트 관리자를 대상으로 '더 나은 웹'이라는 세미나를 열어 전국을 돌며 차단을 해제해달라고 요청해야할 정도였습니다.

 

크롤러 입장에서는 많이, 자주 방문할수록 좋습니다. 

 

하지만 구글 크롤러가 열심히 하려고 너무 자주 방문하려다 보니 사이트 운영자 입장에서는 트래픽이 적잖이 부담이 되었죠

 

특히 과거 웹 호스팅은 일별 접속 횟수로 요금을 책정하고 접속 횟수를 제한했는데, 그걸 구글 크롤러가 대부분 소모해버리니 운영자 입장에서는 황당한 일이었습니다.

 

접속 횟수 초과로 사이트가 차단되면 비용을 추가로 지불하거나 아예 더 비싼 요금제를 택해야 하니 사이트 운영자의 고충도 상당했죠

 

무엇보다 크롤러는 사람보다 훨씬 더 빠르고 자주 방문하며, 구석구석 데이터를 찾아다니기 때문에 사이트의 성능에 심각한 영향을 끼칠 수 있습니다.

 

크롤러가 초당 여러 번 요청을 수행하거나 대용량 파일을 다운로드하는 경우, 서버는 크롤러의 부담스러운 요청을 처리하는데 어려움을 겪겠죠.

 

구글에서도 자사의 크롤러를 차단하는 사이트가 점점 늘어나 골머리를 앓았고, 이를 해제해달라고 적극적인 캠페인까지 벌여야 했습니다.

 

크롤러의 본래 목표는 색인을 만드는 것입니다.

 

색인은 문서를 검색에 적합하도록 만들어 검색을 빠르게 수행하는 역할을 한다고 했죠.

 

그런데 크롤러의 뛰어난 성능 덕분에 여러 분야에서 크롤러를 활용하고 있습니다.

 

- 가격 비교 사이트에서 여러 제품에 대한 가격 정보를 제공할 수 있도록 데이터를 수집

 

- 데이터 마이닝에 활용할 수 있도록 공개된 회사 메일 또는 주소를 수집

 

- 웹 분석 도구가 분석할 수 있도록 조회 수나 링크 정보 같은 웹 페이지의 다양한 메타 정보를 수집

 

- 정보 허브에 뉴스 사이트 등의 데이터를 수집하여 제공

 

 

 

 

 

 

TAGS.

Comments