개념 및 정의
자료 긁어내기(資料 긁어내기, 영어: data scraping 또는 web scraping)는 웹사이트, 온라인 데이터베이스, 애플리케이션 프로그래밍 인터페이스(API) 등에서 공개 혹은 비공개로 제공되는 정보를 자동화된 프로그램(스크립트, 봇, 크롤러 등)을 이용해 체계적으로 추출하고 구조화하는 기술 및 행위를 말한다. 일반적으로는 HTML, XML, JSON, CSV 등과 같은 문서 형식에서 원하는 데이터를 파싱(parsing)하고, 이를 데이터베이스, 스프레드시트, 파일 등으로 저장한다.
어원 및 용어 형성
- 자료(資料): '데이터' 혹은 '정보'를 의미하는 일반 Korean 명사.
- 긁어내다: 손이나 도구로 표면에 붙은 것을 한 번에 벗겨내듯, 필요한 부분만 골라서 뽑아낸다는 의미의 동사.
두 단어를 결합한 ‘자료 긁어내기’는 원래 일상 언어에서 “표면에 붙어 있는 정보를 긁어 모은다”는 직관적 이미지에서 차용된 IT 용어이며, 2000년대 초반부터 인터넷·검색 엔진 기술이 보편화되면서 널리 사용되기 시작했다.
주요 구성 요소
| 요소 | 설명 |
|---|---|
| 대상 | 웹 페이지(URL), RESTful API, 모바일 앱, 클라우드 스토리지 등 |
| 접근 방식 | 1. HTML 파싱: DOM 구조를 분석해 원하는 태그·속성 추출 2. DOM 렌더링: JavaScript 실행 후 생성된 동적 콘텐츠 수집 (Headless 브라우저 활용) 3. API 호출: 공식·비공식 API 응답을 직접 파싱 |
| 툴·프레임워크 | Python‑BeautifulSoup, Scrapy, Selenium, Puppeteer, Playwright, Node.js‑Cheerio 등 |
| 저장 포맷 | CSV, JSON, XML, SQL DB, NoSQL(DB), 엑셀 등 |
| 자동화 | 스케줄러(Crontab), 워크플로우 엔진(Airflow), 서버리스(Function) 등과 연동 |
적용 분야
- 시장 조사·가격 비교: 전자상거래 사이트의 상품·가격 데이터를 수집해 가격 비교 서비스 구축
- 학술·연구: 공개된 논문·통계 자료를 대량 수집해 메타 분석 수행
- 금융·투자: 주식·암호화폐 거래소의 실시간 시세 데이터를 확보해 자동 매매 알고리즘 개발
- 언론·감시: 정부·기업·기관의 공시·보고서 데이터를 모니터링해 보도·감시 활동 지원
- AI·머신러닝: 대규모 텍스트·이미지·음성 데이터셋 구축을 위한 사전 처리 단계
법적·윤리적 이슈
-
저작권법
- 한국 저작권법 제23조(복제권)·제24조(공중송신권)는 웹 페이지 자체의 구조·디자인·본문을 복제·전송하는 행위를 저작권 침해로 본다. 단, ‘공정 이용(공정 사용)’ 요건을 충족하거나 명시적 허가가 있는 경우는 예외.
-
개인정보보호법
개인정보 보호법및정보통신망 이용촉진 및 정보보호 등에 관한 법률에 따라, 개인식별이 가능한 정보(예: 주민등록번호, 전화번호, 이메일 등)를 수집·보관·이용하려면 사전 동의가 필요하다. 무단 수집은 형사·민사 책임을 초래한다.
-
서비스 약관(이용규정)
- 대부분의 웹 서비스는 이용약관에 ‘자동화된 접근·스크래핑 금지’를 명시한다. 이를 위반하면 계정 정지·접근 차단·소송 위험이 있다.
-
공정 경쟁·반독점
- 경쟁사 데이터베이스를 무단으로 긁어와 경쟁우위를 얻는 경우, 부당한 영업방해·불공정 거래 행위로 판단될 수 있다.
-
윤리적 고려
- 서버 부하·DDoS 위험을 최소화하기 위해
robots.txt지침을 준수하고, 요청 간에 적절한 지연(time delay)과 제한(rate limiting)을 적용한다. - 데이터 사용 목적이 투명하고, 수집한 자료가 개인에게 해를 끼치지 않도록 사전에 검토한다.
- 서버 부하·DDoS 위험을 최소화하기 위해
기술적 방어·대응 방법
| 방어 기술 | 구현 예시 |
|---|---|
| robots.txt | 웹 서버 루트에 User-agent: * Disallow: /private/ 등 명시 |
| CAPTCHA | 자동화된 봇 접근 차단을 위해 이미지·텍스트 CAPTCHA 적용 |
| IP 차단 / Rate Limiting | 동일 IP에서 일정 시간당 요청 수 제한 (예: 10초당 1회) |
| 동적 콘텐츠 난독화 | JavaScript를 활용해 데이터 구조를 변조하거나 토큰 기반 접근 요구 |
| API 인증 | OAuth, API 키, JWT 등을 요구해 인증된 사용자만 데이터 접근 허용 |
주요 사례
- 네이버 쇼핑 가격 비교: 초기에는 여러 쇼핑몰의 가격 정보를 웹 스크래핑으로 수집해 자체 가격 비교 서비스를 제공했으나, 2010년대 중반부터 각 쇼핑몰이 API 제공 및 스크래핑 차단 정책을 강화하면서 서비스 구조가 변모함.
- 한국은행 경제통계: 한국은행은 공개 API를 통한 데이터 제공을 진행 중이며, 과거에는 웹 스크래핑으로 데이터를 수집한 연구자들이 많았다. 현재는 API 호출을 권장하고 있다.
- 대선 후보 공약 모니터링: 시민단체가 선거기간 동안 후보 공약·언론 보도 자료를 스크래핑해 데이터베이스화, 공약 이행 여부를 추적하는 플랫폼을 운영 중. 이 과정에서 개인정보보호법에 위배되지 않도록 비식별화 작업을 수행하였다.
관련 용어
- 크롤링(Crawling): 웹 사이트 전체 또는 일부분을 방문해 URL·링크 구조를 탐색하는 행위.
- 스크래핑(Scraping): 크롤링 과정에서 수집한 페이지에서 특정 데이터를 추출하는 구체적 작업.
- ETL(Extract‑Transform‑Load): 데이터베이스·데이터 웨어하우스 구축을 위한 추출·변환·적재 과정, 스크래핑은
Extract단계에 해당. - 데이터 파이프라인(Data Pipeline): 원천 데이터 수집에서 최종 분석·시각화까지 일련의 자동화 흐름.
참고 문헌·출처
- 한국저작권위원회, 웹 콘텐츠 복제·전송에 관한 가이드라인 (2022).
- 개인정보보호위원회, 개인정보보호법 시행령 해설 (2023).
- Lee, J. & Kim, S. (2020). “Web Scraping Technologies and Their Legal Implications in Korea”. Journal of Information Law, 15(2), 45‑68.
- Python Software Foundation, BeautifulSoup Documentation (2024).
- Naver Developers, Open API 이용 가이드 (2024).
자료 긁어내기는 정보의 효율적 활용을 가능하게 하는 강력한 도구이지만, 법적·윤리적 경계를 명확히 인식하고 책임감 있게 수행하는 것이 필수적이다.