1단계
크롤러 윤리 · 법적 경계
20 분
크롤러 윤리 · 법적 경계
기술은 쉬움 · 경계는 조심. 가장 큰 위험은 차단 · 소송이 아니라 "의도치 않은 타 사이트 장애".
1. robots.txt
사이트가 명시한 크롤러 정책.
# https://example.com/robots.txt
User-agent: *
Disallow: /admin/
Disallow: /api/
Crawl-delay: 10
- 법적 강제력 약함 (국가별 해석 차이)
- 그러나 무시하면 IP 차단 · 소송 리스크 ↑
- 내 크롤러 user-agent 명시 권장 (
MyBot/1.0 (+https://mysite.com/bot))
2. Rate limit 스스로 설정
서버에 요청 · 응답 시간 모니터링. 응답이 느려지면 속도 낮춤.
import time
await session.get(url)
await asyncio.sleep(1 + random.random()) # 평균 1.5s · 동시성 X
"초당 100 요청" 은 소규모 서버 DDoS 수준. 보통 초당 1 ~ 5 요청이 예의.
3. 이용약관 (Terms of Service)
- 많은 사이트가 "자동화 수집 금지" 명시
- 그러나 공공 데이터는 공개가 목적
- 공공기관 데이터 포털 (open API) 이 있으면 그쪽 사용이 안전
4. 개인정보 수집 금지
- 이메일 · 전화번호 · 이름 같은 식별정보 수집은 PIPA · GDPR 영역
- 심지어 공개된 정보여도 대량 수집 · 목적 외 사용은 위법
- 공공데이터 API 도 개인정보 항목은 제외됨
5. 저작권
- 전체 본문 복사 금지 · 요약 · 링크는 허용
- 이미지는 저작권 · 초상권 이중 주의
- DB 자체의 저작권 (
sui generisEU · 한국 저작권법 93조)
6. 차단 우회 금지
- CAPTCHA 우회 · IP rotation · 쿠키 조작 = 의도적 회피
- 적발 시 컴퓨터 무단 침입 죄 (한국 · 미국 CFAA)
- 학습 · MVP 라도 위험
7. 안전한 기본 규칙
- 공공데이터 포털 (data.go.kr) · 공공 API 우선
- robots.txt 준수
- 초당 1 ~ 5 요청
- user-agent 명시 · 연락처 포함
- 개인정보 수집 금지
- 저작권 있는 본문은 요약 + 출처 링크만
8. 크롤링 실수 시
서버에 장애를 일으켰다는 항의가 왔을 때:
- 즉시 중단
- 진심 어린 사과 + 원인 설명
- 재발 방지 조치 공유
- 필요 시 복구 비용 분담
대부분의 운영자는 선의의 실수에 관대. 부정직이 더 큰 문제.
9. 공공데이터 API 우선
| 영역 | 포털 |
|---|---|
| 한국 공공데이터 | data.go.kr |
| 미국 연방 | data.gov |
| 금융감독원 DART | opendart.fss.or.kr |
| 국민연금 | data.nps.or.kr |
| 건강보험심사평가원 | opendata.hira.or.kr |
API 가 있으면 크롤링보다 먼저 그쪽 확인. 안정성 · 합법성 우위.
10. 자주 걸리는 자리
- robots.txt 무시 — 발견 시 바로 차단
- 동시 요청 많이 — 사이트 다운 유발
- 개인정보 포함 — 법적 위험
- UA 가짜로 — 탐지되면 추가 법적 위험
하고픈 말
크롤링은 "내가 네 서버를 쓰고 있다" 는 사실 자체를 존중하는 게 기본. 속도 · 예의 · 출처 표시 세 가지면 90% 안전.
Next
- 02-static-vs-dynamic