robots.txt (크롤링, 합법, 저작권)
크롤링이 합법인지 묻는 질문에 "robots.txt만 지키면 된다"는 식의 답이 인터넷에 너무 흔하다. 그런데 실제로는 robots.txt를 어겨도 형사 처벌이 안 되는 경우가 있고, robots.txt를 지켰는데도 손해배상으로 끌려간 케이스가 있다. 본 글은 4학년 비정형 데이터 처리 수업에서 BeautifulSoup로 quotes.toscrape.com을 처음 긁으면서 "이건 합법인가"가 헷갈렸던 본인 경험을 출발점으로, robots.txt의 표준 정의, 한국 법(정보통신망법·저작권법)에서의 크롤링 합법성, 그리고 실무에서 쓰는 7개 체크리스트를 정리한다(출처: Google 검색 센터 robots.txt 가이드). 제가 처음 robots.txt를 열어 봤을 때 가장 당황스러웠던 게 "이게 법적 효력이 있는 건지, 그냥 권고인지" 답이 안 나온다는 점이었고, 지금 보면 그 헷갈림이 사실 핵심 포인트였다.

robots.txt가 알려주는 것 (그리고 안 알려주는 것)
robots.txt란 사이트 운영자가 웹 크롤러에게 허용·차단 경로를 알려 주는 표준 텍스트 파일이며, 항상 도메인 루트(/robots.txt)에 위치한다. 2022년에는 그동안 사실상의 표준이었던 이 파일이 IETF의 정식 표준 RFC 9309로 승격되었다(출처: IETF RFC 9309). 여기서 RFC란 인터넷 표준 문서의 한 형식으로, 통신 프로토콜이나 형식의 공식 사양을 정의하는 문서를 가리킨다.
가장 단순한 robots.txt는 다음과 같은 모습이다.
User-agent: *
Disallow: /admin/
Disallow: /api/private/
Allow: /api/public/
Crawl-delay: 2
Sitemap: https://example.com/sitemap.xml
각 줄을 풀어 보면, User-agent는 이 규칙이 적용되는 크롤러를 가리키고(*은 전체), Disallow는 접근을 막는 경로, Allow는 명시적으로 허용하는 경로, Crawl-delay는 요청 간 권장 대기 시간(초), Sitemap은 크롤러가 효율적으로 사이트 구조를 파악할 수 있도록 안내하는 사이트맵 위치다.
여기서 가장 자주 오해되는 부분이 robots.txt의 법적 효력이다. 핵심만 말하면, robots.txt는 기술 표준이고 법은 아니다. 즉 크롤러가 robots.txt를 무시해도 그 자체로는 위법이 성립하지 않는다. RFC 9309 본문에도 "이 파일은 advisory(권고)이며 enforcement(강제)는 서버측 차단으로 별도 수행되어야 한다"고 명시되어 있다. 솔직히 제 경험상 입문 단계에서 가장 헷갈리는 게 이 지점인데, "robots.txt = 법"이라는 인상이 인터넷 글마다 너무 강하게 박혀 있어서 그렇다.
다만 robots.txt 위반이 법적 책임의 정황 증거가 될 수는 있다. 한국 법원은 크롤링 분쟁에서 "운영자가 robots.txt로 명시적으로 차단한 경로를 우회한 사실"을 부당한 데이터베이스 침해의 한 근거로 채택해 왔다. 즉 robots.txt 위반이 그 자체로 범죄는 아니지만, 다른 법 위반과 결합하면 가중 사유로 작동한다는 의미다.
한국 법에서 본 크롤링 (합법성, 정보통신망법, 저작권)
한국에서 크롤링 합법성을 판단할 때 동시에 보아야 할 법이 셋 있다. 첫째는 정보통신망법, 둘째는 저작권법(특히 데이터베이스 제작자 권리), 셋째는 부정경쟁방지법이다.
정보통신망법 제48조 1항은 "정당한 접근 권한 없이 정보통신망에 침입하는 행위"를 금지하고 있다(출처: 국가법령정보센터 정보통신망법). 여기서 자주 인용되는 판례가 2017년의 이른바 "여기어때 vs 야놀자" 사건인데, 경쟁사가 상대방 사이트의 숙박 매물 정보를 자동 수집해 자사 서비스에 그대로 노출한 행위에 대해 법원은 "서버 보안 조치(접근 제한 ID·페이지 단위 차단)를 우회한 부분"을 핵심 위법 요소로 봤다. 즉 robots.txt 한 줄이 아니라 실제 차단 조치를 우회했는지가 형사 책임의 갈림길이다.
저작권법 측면에서는 데이터베이스 제작자의 권리(저작권법 제93조)가 가장 자주 충돌한다. 단순한 사실 정보 한두 건은 저작권 보호 대상이 아니지만, 그것이 체계적으로 정리·축적된 데이터베이스 전체나 상당 부분을 무단 복제하면 침해가 성립한다(출처: 한국저작권위원회). 부동산·채용·상품 정보처럼 "수집·정리에 노력과 투자가 들어간 데이터"가 표적이면 위험 신호다.
부정경쟁방지법 제2조 1호 카목(2018년 신설)은 "타인의 상당한 투자나 노력으로 만들어진 성과 등을 공정한 거래 질서에 반하는 방법으로 무단 사용하는 행위"를 부정경쟁행위로 규정한다. 이 조항은 저작권에도, 정보통신망법에도 정확히 안 걸리는 회색 지대를 포착하기 위해 만들어진 조항으로, 최근 크롤링 분쟁에서 가장 많이 인용된다. 솔직히 이 조항은 시험엔 자주 안 나오지만 실무에서는 가장 무서운 칼이다.
여기서 흔한 오해 하나를 짚으면, "공개된 정보니까 가져와도 된다"는 통념이 있다. 그러나 법원은 일관되게 "공개 여부"보다 "수집·이용 방식의 정당성"을 본다. 같은 공개 데이터라도 일반 사용자처럼 브라우저로 본 것과, 자동화 스크립트로 분당 수백 건씩 긁어 상업적으로 재배포한 것은 전혀 다른 행위로 평가된다.
안전하게 크롤링하기 위한 7가지 체크리스트 (저작권, 윤리, 실무)
본인이 학교 수업·동아리 프로젝트·개인 학습용으로 크롤링을 돌릴 때 실제로 통과해 두는 체크리스트는 다음 7개다. 이 7개를 다 통과하면 적어도 형사 책임 수준의 리스크는 거의 0에 가깝다고 본다.
첫째, robots.txt를 먼저 열어 본다(도메인/robots.txt). 차단 경로가 명시되어 있으면 그 경로는 건드리지 않는다. RFC 9309는 권고지만 운영자의 명시적 의사 표현이므로 어기면 모든 위험이 가산된다.
둘째, 이용 약관(Terms of Service)을 검색한다. 사이트 푸터의 "이용약관" 페이지에 자동 수집 금지가 명시되어 있다면, robots.txt를 떠나 계약적 책임이 발생할 수 있다. 검색은 Ctrl+F로 "수집"·"자동"·"crawl"·"scrap" 키워드 4개면 충분하다.
셋째, User-Agent를 정직하게 보낸다. 본인의 크롤러임을 헤더에 밝히는 것은 표준 예절이며, "정상 사용자처럼 위장"하는 행위는 부정경쟁법 카목 적용을 강하게 받는다.
headers = {"User-Agent": "edu-crawler-gachon/1.0 (contact: my@email.com)"}
넷째, 요청 간 지연(sleep)을 둔다. 일반적으로 1~3초가 표준이며, 트래픽 큰 사이트도 0.5초 미만은 위험하다. 이건 서버에 부담을 주지 않으려는 윤리 + 형사 책임 회피의 두 측면이 다 걸려 있다.
다섯째, 데이터의 상업적 재배포는 피한다. 학습·연구·개인 사용은 매우 넓게 허용되지만, 그 데이터를 자기 서비스에 통째로 노출하면 즉시 부정경쟁법·저작권 사정권에 들어간다.
여섯째, 개인정보가 섞이지 않는지 본다. 이름·연락처·주민번호 형식 문자열이 포함된 페이지를 자동 수집해 저장하는 것은 개인정보보호법 위반 가능성이 높다(출처: 개인정보보호위원회). 회원만 보이는 글·게시판은 사실상 무조건 회피 대상이다.
일곱째, 수집 목적과 범위를 기록해 둔다. 학습용·연구용·블로그 작성용 등 분명한 목적이 있고, 수집 양이 그 목적에 비례한다면 분쟁 발생 시에도 방어가 가능하다. 솔직히 제 경험상 학교 수업 프로젝트로 quotes.toscrape.com 같은 명시적 실습용 사이트에서 1~2회 긁는 수준은 거의 모든 체크박스를 자동으로 통과하지만, "실제 서비스 데이터"를 만지는 순간 이 7개를 매번 다시 본다.
크롤링은 도구일 뿐 그 자체로 선악이 없다. 다만 잘못 쓰면 가장 빠르게 법정에 갈 수 있는 도구이기도 하다. robots.txt·이용약관·한국 법 3개 축에서 균형을 잡으면, 크롤링은 정보처리기사 시험 너머의 실무 자산이 된다.