codingstairs
노트에듀라이프연락
⌕검색⌘K
koen

Navigation

  • Intro
  • Blog
  • Life

연락하기

로그인 없이도 보낼 수 있어요. 답변이 필요하면 이메일을 함께 적어 주세요.

  • 익명 폼으로 의견 남기기 →
  • ✉ warragon112@gmail.com
  • 카카오톡 오픈채팅 ↗

© 2026 codingstairs

  • 노트
  • 에듀
  • 검색
  • 라이프
  • 연락
  • 약관
  • RSS
  • GitHub
에듀›공공데이터 크롤러 만들기›1단계

1단계

크롤러 윤리 · 법적 경계

0회 조회

크롤러 윤리 · 법적 경계

기술은 쉬움 · 경계는 조심. 가장 큰 위험은 차단 · 소송이 아니라 "의도치 않은 타 사이트 장애".

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 generis EU · 한국 저작권법 93조)

6. 차단 우회 금지

  • CAPTCHA 우회 · IP rotation · 쿠키 조작 = 의도적 회피
  • 적발 시 컴퓨터 무단 침입 죄 (한국 · 미국 CFAA)
  • 학습 · MVP 라도 위험

7. 안전한 기본 규칙

  • 공공데이터 포털 (data.go.kr) · 공공 API 우선
  • robots.txt 준수
  • 초당 1 ~ 5 요청
  • user-agent 명시 · 연락처 포함
  • 개인정보 수집 금지
  • 저작권 있는 본문은 요약 + 출처 링크만

8. 크롤링 실수 시

서버에 장애를 일으켰다는 항의가 왔을 때:

  1. 즉시 중단
  2. 진심 어린 사과 + 원인 설명
  3. 재발 방지 조치 공유
  4. 필요 시 복구 비용 분담

대부분의 운영자는 선의의 실수에 관대. 부정직이 더 큰 문제.

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

2단계 →

정적 vs 동적 — BS4 + Playwright