웹 크롤링의 의미와 문제점
합법적으로 '웹 크롤링'하는 방법 (上)
빅데이터 분석이 점차 강조됨에 따라 많은 기업과 학생들이 데이터 확보에 열을 올리고 있습니다. 하지만 기업 입장에서는 비즈니스를 진행하며 자연스럽게 데이터가 쌓이는 경우가 많지만, 학생이나 일반 개인 입장에서는 그렇지 않습니다. 그렇기 때문에 많은 사람들이 실행하는 것이 바로 웹 크롤링(Web Crawling)입니다. 웹 크롤링을 통해 원하는 데이터를 직접 수집하여, 그 데이터를 바탕으로 분석을 해 인사이트를 도출하거나 머신러닝을 진행합니다.
물론 일반 개인이 아니라 기업 입장에서도 웹 상에 존재하는 데이터는 중요합니다. 고객 한 사람 한 사람의 의견을 직접적으로 파악할 수 있으며, SNS나 커뮤니티에 존재하는 데이터는 트렌드를 파악하는데 가장 중요한 역할을 하기도 합니다. 이러한 데이터를 수집하기 위해 기업 역시 웹 크롤링을 진행합니다. 하지만 웹 크롤링은 명확한 장점이 있는 반면 많은 사고를 일으키기도 합니다. 이번 시간에는 웹 크롤링이 무엇인지, 웹 크롤링을 함부로 수행할 시 일어나는 위험에는 어떤 것이 있는지 알아보도록 하겠습니다.
웹 크롤링의 정의
웹 상의 데이터를 자동으로 수집하는 웹 크롤링
웹 크롤링(Web Crawling)이란 기본적으로 웹 상에 존재하는 데이터를 자동적으로 탐색하는 행위를 의미합니다. 여기서 말하는 ‘웹’은 흔히 알고 있는 World Wide Web의 그 웹입니다. 결국 조금 더 쉽게 표현하자면, 인터넷 상에 존재하는 데이터를 자동적으로 탐색하는 행위를 웹 크롤링이라고 합니다. 가끔 웹 크롤링이 아니라 스파이더링(Spidering)이라는 단어를 사용할 때도 있습니다. 여기서 웹 크롤링과 스파이더링은 완전한 동의어라고 이해해도 좋습니다. 관련해서 웹 크롤러(Web Crawler)라는 단어도 있습니다. 영어 단어를 살펴보면 er이라는 단어가 들어가 있는 형태입니다. 이름에서도 알 수 있듯 웹 크롤러는 웹 크롤링을 실행하는 하나의 프로그램을 의미합니다. 종합해보면 웹 상의 존재하는 데이터를 자동적으로 탐색할 수 있도록 특별한 시스템을 구축한 것이 웹 크롤러, 그러한 웹 크롤러를 통해 실제로 탐색 행위를 실천하는 것이 웹 크롤링입니다.
사전적인 의미 상 웹 크롤링은 단순히 데이터를 탐색하는 행위만을 의미합니다. 하지만 실제로 많은 개발자, 분석가, 데이터 과학자들이 웹 크롤링을 수행하는 것은 단순 탐색을 위한 것이 아닙니다. 웹 크롤링은 데이터를 탐색, 원하는 조건에 맞는 데이터를 직접 수집하고 저장까지 하기 위한 목적이 큽니다. 그렇기에 웹 크롤링이라고 일반적으로 말하는 것은 데이터의 저장까지의 과정을 모두 포함합니다. 정확한 사전적 의미와 실질적 의미에 어느 정도 차이가 있다고 볼 수 있습니다.
웹 크롤링 vs 웹 스크래핑
인터넷에 ‘웹 크롤링’을 검색해보면 연관어로 자주 나오는 단어 중 하나가 웹 스크래핑입니다. 웹 스크래핑(Web Scraping)이란 웹 사이트 상에서 원하는 정보를 추출하는 방법을 의미합니다. 아무래도 웹 크롤링과 웹 스크래핑은 기본적으로 유사한 의미를 지니다 보니 혼용되어 많이 쓰이기도 하고 어떤 단어를 써야 하는가에 대해서 논란을 야기하기도 합니다. 사실 엄격히 말하면 웹 크롤링과 웹 스크래핑은 명확히 구분 지어 사용해야 하는 단어입니다. 원칙적으로 웹 크롤링은 탐색에만 그 기능이 제한되어 의미를 함양하고 있는 반면, 웹 스크래핑은 정보 추출에 초점을 맞추고 있기 때문입니다. 이러한 미묘한 의미 차이 때문에 어떤 사람들은 스크래핑이라는 단어가 크롤링보다 더 큰 개념이라고 이야기하는 사람도 있고, 애초에 아예 다른 개념이다라고 이야기를 하는 사람도 있습니다.
실제로 일반 개인이나 학생이 웹 상의 데이터를 수집하는 과정을 보면, 프로그램에게 자동적으로 브라우저를 탐색하게 하고, 그 중 원하는 정보만을 따로 추출하도록 프로세스를 구성합니다. 웹 크롤링의 요소도 포함하고 웹 스크래핑의 요소도 포함한다고 볼 수 있습니다. 그렇기에 사실상 웹 상의 데이터를 탐색하고 수집하는 것 자체는 웹 크롤링이나 웹 스크래핑 중 어떤 단어를 써도 무조건 틀린 단어 선택이라고는 볼 수 없습니다. 일반적으로 웹 스크래핑보다는 웹 크롤링이라는 단어를 더 자주 쓰는 경향이 있기에, 이번 시간에는 웹 크롤링으로 용어를 통일해서 관련된 이야기를 이어 나가보도록 하겠습니다.
웹 크롤링이 문제가 되는 경우
앞서 이야기했듯 웹 크롤링은 웹 상에 존재하는 데이터를 내가 원하는 내용으로, 원하는 수량만큼 수집할 수 있다는 점에서 큰 장점을 지니고 있습니다. 그래서 많은 데이터 분석가나 데이터 과학자들이 웹 크롤링을 시도하고 있습니다. 하지만 웹 크롤링 수행이 문제가 되는 경우가 있습니다. 경우에 따라서 웹 크롤링 수행이 불법으로 간주되는 경우가 있기 때문입니다. 사실 모든 케이스를 일일이 따져가며 특정 경우에 웹 크롤링이 불법인가 아닌가에 대해 따져보는 것은 어려운 일입니다. 하지만 웹 크롤링이 문제가 되는 경우를 판가름하는 몇 가지의 기준이 있고 이를 정확히 인지한다면 법을 잘 지키면서도 윤리적으로 웹 크롤링을 이용할 수 있습니다.
기본적으로 웹 크롤링이라는 행위 자체는 불법이 아닙니다. 웹 크롤링의 수행 프로세스를 실제로 보면, 브라우저를 자동적으로 조정하여 데이터를 웹 사이트에 요청하고 요청 내용에 해당하는 데이터를 웹 사이트로부터 내려받는 것이 전부입니다. 우리가 일반적으로 웹 사이트를 이용하는 것과 기본적인 프로세스는 같기 때문에 웹 크롤링이라는 행위 자체가 불법이라고는 볼 수 없습니다. 하지만 실제 판례를 살펴보면 웹 크롤링을 불법으로 규정한 경우가 있습니다. 대표적인 사례로 숙박업체들 간의 DB 무단 수집 사건(https://www.etnews.com/20200211000365)이 있습니다.
해당 사례를 간단히 요약하자면, 특정 숙박 업체가 크롤링을 통해 경쟁사의 데이터를 수집하였다는 내용입니다. 무단으로 경쟁사의 데이터를 수집하여 이를 자사의 데이터로 복제를 하였고, 그 과정에서 경쟁사 서버에 부담을 주는 행위가 있었습니다. 이 사례를 통해 웹 크롤링이 문제가 되는 대표적인 경우를 모두 알아볼 수 있습니다.
1. 수집한 데이터를 상업적으로 이용하는 경우
앞서 웹 크롤링이라는 행동 자체는 불법적인 요소가 없다고 했습니다. 위 사례에서는 해당 데이터를 활용함에 있어 문제가 있었습니다. 경쟁사의 데이터를 수집한 것만 아니라 그것을 그대로 복제해 본인의 비즈니스에 활용했습니다. 일반적으로 수집한 데이터를 상업적으로 이용하지 않으면 문제가 될 것이 없다고 말을 하곤 합니다. 결국 수집한 데이터를 비즈니스 자체에 이용한다거나, 데이터 자체를 판매하는 등 웹 크롤링을 통해 수집한 데이터를 금전적 이익을 목적으로 사용한다면 문제가 됩니다.
상업적 이용이 아닌 웹 크롤링의 사례로는 학술적 목적의 웹 크롤링 이용이 있습니다. 많은 학자와 학생들이 특정 현상을 분석하기 위해 웹 상의 데이터를 수집하고, 이를 분석하여 연구를 진행합니다. 만약 해당 데이터를 이용하여 연구 논문을 작성했다면, 이것이 대표적인 학술적 목적의 웹 크롤링이라 볼 수 있습니다. 그렇다고 물론 상업적 목적이 아닌 웹 크롤링이라고 모두 문제가 되지 않는 것은 아닙니다. 웹 크롤링 행위 자체가 또 다른 문제를 일으킬 경우에는 금전적 이익이 목적이 아니었다고 할지라도 웹 크롤링이 불법이 될 수 있습니다.
2. 웹 크롤링을 통해 상대 서버에 문제를 일으킨 경우
웹 크롤링이 문제가 되는 두 번째 경우는 웹 크롤링 행위가 상대방의 서버에 문제를 일으키는 경우입니다. 이 역시 숙박업체 간 불법 크롤링 사례에서 드러난 문제점입니다. 기본적으로 웹 크롤링은 자동화한 프로그램을 통해 정보를 요청하기 때문에 데이터를 너무 많이 요청하게 되면, 서버 부하를 일으킬 수 있습니다. 보통은 너무 많은 요청이 들어올 경우, 웹 사이트에서 자동적으로 요청을 중단시킵니다. 하지만 악의적인 목적으로 이를 회피하는 알고리즘을 만들어, 끊임없이 서버에 부하를 일으키는 것도 충분히 가능한 일입니다. 웹 크롤링을 통해 데이터를 수집할 때, 데이터가 쌓이고 저장되는 속도가 너무 느리다고 판단하여, 고의적으로 서버에 부하를 줄 정도로 웹 크롤링 알고리즘을 조작하는 것은 반드시 피해야 하는 행위입니다.
웹 크롤링도 안전하게 할 수 있습니다.
종합했을 때, 무턱대고 바로 웹 크롤링을 시도하기에는 사전에 고려해야 할 요소가 있다고 볼 수 있습니다. 하지만 원하는 데이터를 마음껏 수집할 수 있다는 점에서 웹 크롤링은 엄청난 장점을 지니고 있습니다. 이 때문에 웹 크롤링을 진행하기 전, 웹 크롤링을 통해 행하고자 하는 작업이 어떤 목적을 지니고 있는지, 나의 웹 크롤링 행위가 상대방 서버에 영향을 미치지는 않을지를 잘 고려해야 합니다. 하지만 생각해보면 분명 각 웹 사이트마다 크롤링 자체를 허용하는 정도가 분명히 다를 것입니다. 이는 결국 단순 몇 가지의 기준만으로는 크롤링의 합법성을 엄밀히 따지기는 힘들다는 것을 의미합니다. 이를 잘 인지하고 있다면 데이터를 수집하는 입장에서 최대한의 데이터를 수집할 수 있습니다. 어떤 방법을 통해 해당 내용을 정확히 알고, 합법적으로 웹 크롤링을 진행할 수 있는지는 다음 편에서 알아보도록 하겠습니다.