
디지털 환경이 신속하게 확장되면서 웹은 방대한 데이터와 정보를 공유하고 활용하는 중심 허브로 자리 잡고 있습니다. 하지만 이러한 발전 뒤에는 웹 스크래핑과 크롤링을 통해 데이터를 무단으로 수집하거나 악용하려는 시도가 끊이지 않고 있습니다. 스크래핑과 크롤링은 데이터 수집과 검색엔진 등 본래의 목적으로 올바르게 사용되기도 하지만, 저작권 침해, 개인정보 유출 그리고 데이터의 상업적 이용을 통한 서비스 도용 사례로 악용되는 사례 또한 빈번히 발생 중입니다.
특히 웹 기반의 서비스들이 늘어나는 현대의 디지털 환경에서 무분별한 데이터 수집은 단순히 기술적인 문제를 넘어 콘텐츠 보호와 사용자 신뢰를 훼손할 수 있는 심각한 보안 위협으로 꼽힙니다. 데이터 복제와 유출은 경제적 피해뿐만 아니라 웹 서비스 이용률과 고객 신뢰를 떨어뜨리며, 이와 같은 무단 데이터 수집 사례는 갈수록 증가하고 있습니다. 따라서 크롤링과 스크래핑 방지 대책은 콘텐츠 보안의 핵심 과제로 자리 잡고 있으며, 이를 해결하기 위해 기술적·법적 관점에서 체계적인 접근이 요구됩니다.
무분별한 데이터 수집이 일상화되고 있는 현재, 오늘 포스트에서는 웹 크롤링과 스크래핑의 특징과 방지책들을 살펴보고, 기존의 스크래핑/크롤링 방지 솔루션들이 가지는 한계점과 그 해결 방법에 대해 알아보겠습니다.
웹 크롤링 VS 스크래핑
우선 웹 크롤링과 스크래핑이 무엇이고 어떠한 특징을 가지는지 알아보겠습니다.


웹 크롤링이란 자동화된 봇(크롤러)을 이용하여 웹 웹상의 정보들을 탐색하고 수집하는 작업을 의미합니다. 웹에 존재하는 모든 정보들을 사람이 일일이 추출하는 것은 현실적으로 불가능하기 때문에 우리는 크롤러를 통해 자동으로 웹 페이지를 탐색하여 정보를 수집합니다. 크롤링은 단순히 스크래핑처럼 웹 페이지 내 특정 정보를 추출하는 작업이 아니라 정보를 수집하는 시스템 자체를 이야기합니다.
크롤러는 웹상에 존재하는 수만 개의 웹을 방문하여 페이지 내의 링크에 접속하고 페이지를 불러오는 과정을 반복적으로 수행합니다. 이 과정에서 크롤러 봇은 HTTP 요청을 통해 페이지의 HTML을 가져오고, 필요한 데이터를 추출하여 해당 데이터베이스에 저장합니다. 이는 주로 구글과 네이버와 같은 검색엔진이 웹 페이지를 인덱싱하여 검색 결과를 제공하는 것에 활용이 됩니다. 특정 키워드를 검색하면 다양한 웹 페이지의 링크와 본문의 내용이 사용자에게 제공되는 과정은 검색 엔진의 크롤링 알고리즘을 통해 실현됩니다.
* 크롤링에 대한 오해 : 우리는 흔히 ‘네이버 부동산 크롤링’, ‘뉴스 크롤링’, ‘쇼핑몰 가격 크롤링’처럼 특정 서비스의 데이터와 정보를 추출하는 방법을 알려주는 크롤링 관련 글들을 자주 볼 수 있습니다. 하지만 위 글들 대부분은 HTML 페이지의 CSS Selector를 통한 웹 스크래핑 방법을 제시하며, 이는 HTTP Request를 바탕으로 이뤄지는 일회성 수준의 웹 스크래핑에 불과합니다.
웹 스크래핑은 특정 웹 페이지에서 필요한 정보를 추출하여 저장하는 과정을 이야기합니다. 스크래퍼는 HTTP 요청을 통해 페이지를 불러오고, 해당 웹 페이지의 HTML 구조를 분석하여 특정 데이터를 추출하여 데이터베이스에 저장합니다. 스크래핑은 크롤링에 비해 좁은 범위의 데이터 수집에 사용된다는 차이점이 있습니다. 예를 들어 뉴스 사이트의 특정한 뉴스 정보를 추출하거나 주식과 부동산 사이트에서 원하는 투자 정보를 자동으로 수집하기 위해 사용되기도 합니다.
웹 스크래핑과 크롤링은 데이터를 수집하기 위한 대표적인 기술로, 데이터 탐색과 추출 과정에서 DOM(Document Object Model)을 활용한다는 점에서 공통점을 가집니다. DOM은 HTML, CSS, JavaScript를 기반으로 브라우저에서 제공하는 문서 구조로, 웹페이지의 콘텐츠를 계층적으로 표현할 수 있어 웹 스크래핑과 크롤링의 기반을 제공합니다.

웹 스크래핑과 크롤링은 자동화된 봇을 사용해 웹 데이터를 효율적으로 수집할 수 있다는 특징이 있으며, 두 개념들은 자주 혼용되어 사용되기도 합니다. 하지만 스크래핑과 크롤링은 목적과 방식에 분명한 차이가 있습니다. 웹 크롤링은 웹사이트의 링크를 따라 탐색하며 구조를 분석하고, 데이터를 색인화하여 검색엔진이나 데이터베이스를 구축하는 데 초점을 두고 있습니다. 반면, 웹 스크래핑은 특정 웹페이지에서 필요한 데이터를 추출하는 데 중점을 두며, 주로 제품 정보나 가격 데이터를 수집해 분석에 활용됩니다. 크롤링은 광범위한 데이터를 탐색하는 과정이고, 스크래핑은 명확한 목표 데이터를 추출하는 과정으로 이해할 수 있습니다.
스크래핑/크롤링 방법
웹 페이지는 콘텐츠 로딩 방식에 따라 두 가지 유형으로 구분되는데, 정적 웹 페이지는 화면에 보이는 페이지가 서버로부터 완성되어 한 번에 전달되는 반면, 동적 웹 페이지는 콘텐츠가 클라이언트에서 실시간으로 생성된다는 특성이 있습니다. 이에 따라 웹 페이지의 유형에 따라 스크래핑/크롤링 방식도 달라집니다.


웹 스크래핑과 크롤링 모두 간단한 원리를 통해 동작합니다. 웹 페이지는 HTML 문서를 기반으로 콘텐츠가 제공되는데, 웹 스크래핑/크롤링은 서버 또는 브라우저에 HTTP 요청을 보내 HTML 페이지를 받아오는 과정을 통해 이뤄집니다. 그리고 HTML 내의 DOM을 분석하여 데이터를 수집하여 특정 데이터를 추출(스크래핑)하거나 데이터를 구조화된 형태로 인덱싱하여 저장(크롤링) 합니다.
정적 웹 페이지는 해당 웹의 HTML이 서버로부터 클라이언트로 전달되기 전에 이미 완성된 콘텐츠 형태를 유지하고 있기 때문에, 단순 URL 접속만으로 손쉽게 HTML 콘텐츠 접근이 가능합니다. 정적 스크래핑/크롤링은URL을 통해 HTML을 불러오고 requests와 BeautifulSoup과 같은 라이브러리를 통해 필요한 데이터를 추출하는 작업을 말합니다. 이 과정에서 파싱을 통해 사용자가 원하는 특정 데이터를 추출할 수 있도록 HTML 페이지를 구조화하는 것이 가능하여 이를 통해 필요한 텍스트, 이미지, 미디어 등의 데이터를 추출할 수 있습니다.
동적 웹 페이지는 사용자에게 보이는 페이지가 클라이언트에서 실시간 생성된다는 특성을 가집니다. 단순한 URL을 통한 접근만으로는 동적으로 생성되는 데이터들을 수집할 수 없는 웹 페이지들이 이에 해당되는데, 데이터들이 지속적으로 변경되는 특성을 가진 웹 페이지에서 서버의 부담을 줄이기 위한 방법으로 많이 사용됩니다. 이에 따라 동적 스크래핑/크롤링은 동적으로 생성되는 페이지를 다루기 위한 셀레니움(Selenium)이나 퓨펫티어(Puppeteer) 같은 웹브라우저 자동화 라이브러리를 통해 웹 브라우저처럼 상호작용하는 방식으로 이뤄져야 합니다. 웹브라우저 자동화 라이브러리는 제어하고자 하는 브라우저의 하위 레벨 드라이버를 통해 HTML 상의 객체를 지정하여 동작을 제어하거나 자바스크립트를 처리하여 웹 페이지의 정보를 추출하거나 수집할 수 있습니다. 또한 웹 브라우저의 개발자 도구(네트워크 탭)를 통해 동적 페이지를 생성하기 위해 제공되는 웹 서버의 API 형태를 분석한 후, 이를 데이터 추출 프로그램의 입력으로 사용할 수도 있습니다.
합법과 불법의 경계선 : 스크래핑/크롤링은 합법일까 불법일까?
데이터가 곧 자산이 되는 시대, 누구나 웹 데이터를 손쉽게 수집할 수 있는 다양한 툴들과 기술들이 시중에 공개되고 있습니다. 특히 Chat GPT와 같은 기술의 발전은 웹 스크래핑과 크롤링을 더 간편하고 강력하게 만들고 있으며, 이를 통해 누구나 공개된 데이터를 활용을 할 수 있습니다. 하지만 무분별한 스크래핑과 크롤링은 기업의 데이터 자산을 위협하고 있습니다. 그렇다면 무분별하게 실시되는 스크래핑과 크롤링, 이를 방지하기 위한 법적 조치가 가능할까요?


웹 스크래핑과 크롤링은 데이터를 자동으로 수집하는 데 매우 유용한 기술이지만, 실행 전 반드시 윤리적 및 법적 문제를 고려해야합니다.
기본적으로 데이터 수집의 목적은 정당하고 합법적이어야 합니다. 악의적이거나 비윤리적인 방식으로 데이터를 활용해서는 안되며, 수집한 데이터를 상업적으로 이용하기 위해서는 저작권을 침해하지 않는지 살펴봐야 합니다. 또한Robots.txt(Robots Exclusion Standard) 규정 준수도 필수적입니다. robots.txt 파일은 웹 페이지의 소유자가 봇에 대한 액세스 권한을 명시한 프로토콜로 크롤링 허용 여부를 알려주고 있습니다. 그렇기 때문에 스크래핑과 크롤링 이전에 웹페이지의 robots.txt을 확인하여 해당 규정을 준수해야합니다.
하지만 윤리적, 법적 고려사항에도 불구하고 공개된 데이터에 대한 스크래핑과 크롤링이 합법인지 불법인지에 대한 명확한 법적 기준은 없습니다.
그럼 실제 법적 분쟁을 통해 스크래핑/크롤링의 합법 여부에 대해 알아보겠습니다.
최근 A사와 부동산 중개 플랫폼인 B사 간의 소송은 크롤링의 법적 복잡성을 잘 보여줍니다. B사는 A사에 게시된 매물 정보를 크롤링 하여 자사 플랫폼에 노출시켜 상업적으로 A사의 데이터를 사용하였습니다. 이에 대해 A사는 B사의 행위가 자사의 데이터 베이스권을 침해했다고 주장하며 소송을 제기했습니다. 국내 법원은 A사의 손을 들어주며, B사가 A사의 데이터베이스 제작자로서의 권리를 침해했다고 판단했습니다.[1]
반대로 일부 판례에서는 공개된 정보의 크롤링이 합법으로 인정되기도 했습니다. 예를 들어, 미국의 링크드인과 hiQ 간의 소송에서는 링크드인의 공개 프로필 정보를 수집한 행위가 합법으로 판단되어, 공개된 데이터에 대한 데이터 수집 행위는 허용된다는 해외 사례 또한 존재합니다. [2] 이처럼 데이터 수집 행위의 합법성과 불법성의 경계가 상황에 따라 달라질 수 있음을 보여줍니다.
이처럼 스크래핑/크롤링의 합법 /불법 여부는 법률을 적용하는 국가나 지역에 따라, 또는 사건을 심의/변호하는 법조인의 시각에 따라 다르게 판결될 수 있어, 서비스 사업자 입장에서는 스크래핑과/크롤링 행위에 대한 법적인 사후조치에 의존하기보다는 기술적인 보호 조치에 중점을 두는 경향이 두드러지고 있습니다.
기존 웹 스크래핑/크롤링 방지 조치의 한계
무단 스크래핑과 크롤링을 방지하기 위해 기업들은 다양한 기술적 방어책을 도입하고 있지만, 기술적 조치 또한 각각의 우회 방법이 존재하기 때문에 데이터 무단 수집 행위를 막기에는 역부족입니다. 다음은 주요 스크래핑/크롤링 방지 기술들과 그 한계점에 대해 살펴보겠습니다.

위의 기술들은 스크래핑/크롤링 방지에 효과적일 수 있으나, 각각의 방법에 대해 우회 가능한 보안 취약점이 존재합니다. 따라서 스크래핑과 크롤링을 방지하기 위해서는 더욱 근본적인 해결책이 필요합니다.
제로 트러스트 기반의 웹 스크래핑/크롤링 방지


스크래핑/크롤링 방지를 위한 기술적 조치들은 데이터 보호를 위해 다양한 접근법을 활용하지만, 각각의 우회 방법과 보안 취약점들이 존재합니다. 그렇다면 웹 스크래핑과 크롤링을 방지하기 위해서는 근본적으로 어떠한 기술적 보호 조치가 선행되어야 할까요?
기존 방지 방법들이 대부분 웹 브라우저 내부에 존재하는 데이터 접근 제어이고 이에 대한 우회 방법 또는 기술적으로 어렵지 않다 보니, 결국 해커가 웹 브라우저의 DOM 영역에 접근하는 경우에는 데이터에 대한 추출 방지가 불가능하게 됩니다. 기존의 웹 서비스는 웹 브라우저를 안전한 영역으로 취급하였습니다. 따라서 웹 서버로부터 웹 브라우저 내부까지 데이터를 전달하는 과정, 즉 구간(E2E, End-To-End) 보안에만 집중을 하였기 때문에, 웹 브라우저 내부 영역(DOM, Document Object Model) 영역으로부터 데이터를 추출해 갈 수 있는 가능성에 대해서는 간과한 측면이 있습니다.
따라서 제로 트러스트 기반의 보안 개념을 도입하여, 웹 브라우저 내부의 DOM 영역에서도 해당 데이터를 열람하는 사용자를 신뢰하지 않고, 인증을 통과하지 못하는 경우 데이터가 난독화 또는 암호화된 상태로 존재하도록 하여야 합니다. 오직 웹 브라우저만이 특정 URL에서 특정 기간 동안에만 열람이 가능하도록 인증 과정을 거침으로써 웹 기반 서비스의 데이터는 웹 스크래핑 또는 크롤링 공격으로부터 안전해질 수 있습니다.
웹 스크래핑과 크롤링을 근본적으로 방지하기 위해서는 DOM에 대한 보호가 필요합니다. 또한 웹 브라우저 특성상 DOM 영역의 데이터는 평문으로 존재하기 때문에 스크래퍼/크롤러는 원본 리소스에 접근 가능하며, 이를 무분별하게 수집할 수 있습니다. 그렇기 때문에 DOM 영역의 데이터들은 암호화 및 난독화를 통해 지속적인 데이터 보안이 가능해야 합니다. 또한 데이터 난독화를 통해 임의로 추출된 DOM데이터는 해석이 불가능해야 합니다.
이는 정적 스크래핑이 HTML에서 데이터를 직접 추출하는 경우와 동적 크롤링에서 자바스크립트로 생성된 DOM 구조를 분석할 때 모두 적용될 수 있어 정적, 웹페이지에 대한 스크래핑과 크롤링을 방지할 수 있습니다.
개발자 도구 방지는 API 및 네트워크 요청 정보와 DOM 구조 분석을 통한 스크래핑/크롤링을 차단에 초점을 맞춥니다. 기존의 단순 브라우저 접근 제어는 크롤러가 Header 정보나 사용자 에이전트를 조작함으로써 손쉽게 우회될 수 있어 정적·동적 크롤링을 방지하기에는 역부족이었습니다. 그렇기 때문에 개발자 도구 접근을 통한 네트워크 요청 분석과 HTML 구조 분석 자체를 원천적으로 차단하는 방식이 필요합니다. 또한 불특정 브라우저 및 OS에서의 개발자 도구 사용을 방지하기 위해 모든 브라우저와 운영체제에서 동작하는 개발자 도구의 접근을 차단할 수 있어야합니다.
디지털 환경이 발전함에 따라, 웹 스크래핑과 크롤링은 데이터 활용과 동시에 보안 위협을 야기하는 중요한 보안 과제로 떠올랐습니다. 기존의 웹 스크래핑/크롤링 방지 조치들은 각각의 효과를 가지고 있지만, 이들 모두 접근 통제 방식으로 각각 우회가 가능하다는 보안적 취약점이 존재하여 스크래핑과 크롤링을 원천적으로 차단하지는 못했습니다. 결국 웹 시스템을 스크래핑과 크롤링으로부터 보호하기 위해서는 보다 근본적인 웹 스크래핑/크롤링 방지를 위한 기술적 조치가 필요합니다.
그러므로 웹 스크래핑/크롤링의 근본적인 방지를 위해서는 제로 트러스트 기반의 웹 브라우저 데이터 보호 방식의 도입이 반드시 필요합니다. 이는 웹 브라우저 내부의 DOM 영역을 난독화하여 데이터를 보호할 수 있어야 하며, 개발자 도구 방지를 통해 네트워크 요청 분석과 HTML 구조 분석 자체를 원천적으로 차단하는 방식으로 스크래핑과 크롤링을 방지할 수 있어야 합니다.
제로 트러스트 기반의 웹 보안은 단순히 데이터 보호를 넘어, 기업의 콘텐츠와 데이터를 안전하게 보호하고 서비스 신뢰도를 유지할 수 있는 핵심 전략으로 자리 잡았습니다. Web-X DRM을 통한 제로 트러스트 기반의 웹 스크래핑/크롤링 방지로 디지털 환경에서 데이터 보안을 강화하고, 기업이 보다 안전하고 신뢰할 수 있는 웹 서비스를 제공할 수 있는 기반이 될 것입니다.
자료 출처:
[1] 손지혜, 전자신문, "부동산 매물 크롤링 공방, 네이버가 이겼다…서울지법, 다윈에 배상 판결", 2024.10.08, https://www.etnews.com/20241007000224
[2] 김윤희, ZDNET Korea, "美 법원 '웹사이트 공개 데이터 스크랩, 불법 아니다'", 2019.09.10, https://zdnet.co.kr/view/?no=20190910101800