웹 크롤러(web crawler)? 웹 스파이더(web spider)? 도대체 뭘까요?

시작하기

웹 크롤러(web crawler) 아니면 웹 스파이더(web spider)라고 불리는 것은 통칭 엔진 봇이라고 말하는 프로그램입니다. 일명 방대한 네트워크를 말하는 WWW(World Wide Web), 즉 웹을 돌아다니면서 데이터를 수집하고 색인하는 임무를 수행합니다. 웹 크롤러와 관련된 내용을 검색해보면 크롤링, 스크래핑이라는 단어도 연관되어서 나오는데 크롤링은 앞서 말한 웹 클롤러가 하는 임무를 정의하는 말이지만 스크래핑은 다른 성격을 지는 내용입니다. 크롤링(crawling)은 정해진 규칙을 지키면서 웹 문서를 수집하고 색인하는 작업이고 스크래핑(scraping)은 웹 공간에 있는 특정 목적을 가지고 취득해 사용하는 방법을 말합니다. 분명히 크롤링과 스크래핑은 엄연히 목적을 지니고 다른 작업을 수행합니다.

그런데 웹 크롤러는 왜 필요한 거죠?

도입 부분에서 우리는 웹 크롤러가 무슨 일을 하는지 간단하게 알아보았습니다. 그런데 근본적인 질문을 하나 던져본다면 무엇 때문에 웹 문서를 수집하고 색인하는 작업이 필요한지 알아볼 필요가 있습니다.

WWW (World Wide Web)

웹이라는 공간을 거미줄을 이용해서 표현하면 이미지처럼 얽히고설켜 있는 모습을 볼 수가 있습니다. 하나의 거미줄은 하나의 서버라고 생각하시면 좋습니다. 예를 들면 하나의 거미줄은 구글, 네이버, 다음과 같은 하나 포털사이트와 같습니다. 이렇게 복잡하게 얽혀있는 웹이라는 곳에서 우리는 어떻게 검색을 통해 다른 서버에 있는 데이터를 찾을 수 있는 걸까요?

크롤러들이 크롤링을 하고 있어요!

바로 크롤러들이 다른 서버에 있는 정보들을 열심히 크롤링해서 구글이나 네이버의 검색 엔진이 쉽게 데이터를 찾을 수 있도록 정리해놓기 때문에 우리는 검색을 통해 다른 서버의 데이터를 찾을 수 있는 것입니다. 여기서 데이터를 쉽게 찾을 수 있도록 정리해두는 것이 바로 색인화입니다. 어렵게 느껴지신다면 책이 찾기 쉽게 잘 정리 정돈된 도서관 이미지를 떠올리시면 이해하기가 한결 쉬워집니다.

여기서 한 가지 더 알 수 있는 재미있는 점은 크롤러를 스파이더라고 부르는 이유가 크롤러가 웹을 돌아다니는 모습이 위의 그림처럼 거미와 유사하기 때문에 입니다.

크롤러 크롤링 크리고 색인

즉 크롤러가 데이터를 수집해서 색인화를 시키는 작업을 하지 않는다면 우리는 지금처럼 쉽게 정보를 찾고 유용하게 사용하기가 어렵다는 말과 같습니다. 이러한 이유로 인해 구글, 네이버, 다음, Bing의 검색 엔진들은 크롤러를 사용해 항상 웹 데이터를 수집하고 색인을 해두었다가 사용자가 검색을 할 때 검색 결과로 보여줍니다.

 

다시 한번 정리해본다면 웹 크롤러는 정리되지 않은 웹의 데이터들을 수집 및 검토하고 색인을 구성함으로써 도서관을 찾는 사람이 필요한 정보를 쉽고 빠르게 찾을 수 있도록 해주는 역할을 합니다. 이 과정에서 크롤러는 데이터들을 정리할 때 주제별로 분류하고 정렬할 수 있도록, 제목, 요약 그리고 본문 중 일부를 읽어서 무엇에 대한 데이터인지 확인합니다. 더불어 수집한 데이터에 다른 하이퍼 텍스트 링크가 연결되어 있다면 연결된 하이퍼 텍스트 링크를 따라가고, 또 거기에서 다른 하이퍼 텍스트 링크가 있다면 다시 따라가는 형태로 일련의 데이터 수집과 색인을 반복합니다. 이때 색인은 화면에서 보이는 텍스트와 보이지 않는 페이지에 대한 메타 데이터를 중점으로 진행됩니다.

구체적인 동작 원리

일반적으로 웹 크롤러는 데이터를 수집하고 처리하는 과정에서 3가지 정도의 척도를 가지고 지속적인 크롤링을 합니다. 웹의 데이터는 너무 방대하고 양이 많기 때문에 정말 필요한 정보를 찾아낼 수 있기 위한 기준이 필요하고 데이터의 가치를 판단할 수 있는 척도가 필요합니다.

 

웹페이지의 상대적 중요성: 대부분의 웹 크롤러는 웹 데이터의 양이 많기 때문에 전체를 크롤링하지 않으며, 그렇게 하려고 하지 않습니다. 대신 수집하려는 페이지를 링크하고 있는 다른 페이지의 수, 페이지의 방문자 수 등의 요소를 기준으로 수집 우선순위를 판단합니다. 그렇기 때문에 다른 웹 페이지에서 많이 언급되고 방문객이 많을수록 좋은 품질의 데이터가 있을 가능성이 높다고 판단하고 측정합니다.

 

웹페이지 재방문: 웹에 있는 데이터는 지속적으로 변경 사항(수정, 삭제, 이동)이 발생하기 때문에 웹 크롤러는 정기적으로 페이지를 다시 방문해 최신의 데이터를 색인화합니다.

 

Robots.txt: 웹 크롤러는 Robots.txt 프로토콜을 기반으로 크롤링할 기준을 판단합니다. Robots.txt 파일은 호스팅 된 웹사이트 또는 애플리케이션에 접근하는 모든 봇에 대한 규칙을 정의하는 텍스트 파일입니다. 특정 경로의 접근 제한이나 가져갈 수 있는 데이터를 정의할 수 있기 때문에 불필요한 데이터의 수집이나 사적인 정보를 보호할 수 있습니다.

정리하기

인터넷을 통해 데이터를 검색하고 유용하게 활용하는 것은 사용자의 몫이지만 그런 검색을 쉽게 할 수 있게 데이터를 수집해주는 것은 바로 웹 크롤러입니다. 큰 고민 없이 구글이나 네이버, 다음 같은 포털 사이트를 이용해 자료를 검색하는 것도 좋지만 그 과정 속에 무엇들이 있고 어떤 일들이 일어나는지 알아본다면 조금 더 재미있게 그리고 잘 검색을 활용할 수 있을 것 같습니다.

반응형

댓글(29)

Designed by JB FACTORY