금융 뉴스 자동 수집 (RAG)
이 튜토리얼은 GenD 의 파일·문서 수집 허브(웹 크롤링 소스)로 금융 뉴스 사이트의 본문을 정기 크롤링하여 GenD 의 RAG / AI Chat 코퍼스에 자동 적재하는 방법을 안내합니다.
⚠️ 이 흐름은 Iceberg 정형 테이블 적재가 아닙니다. 웹 크롤링 → SeaweedFS → Vector DB (Weaviate) + Document Store (Arango) 로 가는 검색·RAG 코퍼스용 흐름입니다. 뉴스를 정형 컬럼으로 다루려면
financial-news-iceberg튜토리얼을 참고하세요.
ℹ️ 아래 스크린샷은 구 화면 기준이라 현재 파일·문서 수집 허브 UI 와 다를 수 있습니다 (재캡처 캠페인에서 일괄 갱신 예정).
사전 준비
- 권한: 파이프라인 등록에는 관리자 권한이 필요합니다 (조회는 일반 사용자도 가능).
- 대상 URL: 뉴스 RSS / list 페이지 / 사이트맵 URL. robots.txt 와 사이트 약관 준수 필수.
- 컬렉션 이름: 같은 뉴스 그룹은 동일 collection 으로 묶어 RAG / AI Chat 에서 검색 단위가 되게 함 (예:
finance-news).
1단계 — 파일·문서 수집 허브 진입
사이드바 → 데이터 엔지니어링 → 파일·문서 수집 (/ingestion) 을 클릭합니다. 또는 사이드바 → 데이터 엔지니어링 → 데이터 가져오기 (/get-data) 의 파일·문서 수집 카드로도 진입할 수 있습니다.
화면은 파이프라인 / 실행 / 문서 3개 탭으로 구성됩니다. 처음 접속하면 파이프라인 탭이 빈 상태입니다.

| 탭 | 내용 |
|---|---|
| 파이프라인 | 수집 파이프라인 목록 + 새 파이프라인 등록 |
| 실행 | 파이프라인 실행(Run) 이력, 진행률·단계별 상태, 실패 재시도 |
| 문서 | 수집·업로드된 문서 목록 및 상태 |
2단계 — 새 파이프라인 → 웹 크롤링 선택
파이프라인 탭에서 [+ 새 파이프라인] 버튼을 누르면 6단계 다이얼로그(소스 → 파서 → 청킹 → 적재 → 스케줄 → 확인)가 열립니다.

소스 단계에서 소스 타입 9종 중 웹 크롤링 을 선택합니다.
| 유형 | 용도 |
|---|---|
| S3 / SFTP / SMB / NFS / SharePoint / 범용 파일시스템 | 파일 시스템 / 클라우드 스토리지 |
| REST API | 임의 REST API |
| 이메일 (IMAP) | 이메일 첨부 |
| 웹 크롤링 | 웹페이지 수집 (이번 사례) |
컬렉션 이름에 finance-news 를 입력합니다 — RAG / AI Chat 검색 단위가 되며, 동일 collection 의 문서가 함께 검색됩니다.

3단계 — 웹 크롤링 설정
URL / 깊이 / 페이지 수 / 허용 도메인 4개 필드를 입력합니다.

| 필드 | 권장값 (한경 RSS 예시) | 비고 |
|---|---|---|
| 시작 URL | https://www.hankyung.com/feed/finance | RSS / 사이트맵 / 카테고리 list 페이지 권장 |
| 최대 깊이 | 2 | 0 = 시작 URL 만, 1 = 시작 + 직접 링크, 2 = 한 단계 더 |
| 최대 페이지 수 | 50 | 한 회 크롤링당 상한 — 너무 크게 잡으면 차단 위험 |
| 허용 도메인 | www.hankyung.com | 외부 도메인 따라가기 차단. 쉼표로 다수 입력 가능 |
[연결 테스트] 버튼으로 시작 URL 의 응답을 미리 확인할 수 있습니다.
💡 사이트별 추천 시작 URL
- 한경:
https://www.hankyung.com/feed/finance(RSS)- 매일경제:
https://www.mk.co.kr/rss/40300001(RSS)- 블룸버그 마켓:
https://www.bloomberg.com/feeds/bbiz.rss(RSS)- 사내 IR / 공시 페이지의 list URL
파서 단계는 자동 (확장자 라우팅), 청킹 단계는 기본값(recursive)을 그대로 두면 됩니다. 적재 단계에서 벡터 스토어를 활성화(Weaviate)하고, 필요 시 그래프 스토어(ArangoDB)·자동 보강(LLM 요약/키워드)을 켭니다.
4단계 — 스케줄
수집 주기를 선택합니다. 뉴스는 게시 빈도에 맞춰 보통 매시간 정도가 적정합니다.

| 선택지 | cron | 권장 시나리오 |
|---|---|---|
| 수동 (Manual) | — | 일회성 캡처 / QA |
| 5분마다 | */5 * * * * | 속보 (페이지 부하 주의) |
| 매시간 | 0 * * * * | 일반 금융 뉴스 (이번 사례) |
| 6시간마다 | 0 */6 * * * | 시황 / 이슈 페이지 |
| 매일 | 0 0 * * * | 마감 후 정리 |
| Custom (cron) | — | 평일/장중만 등 세밀한 cron 직접 입력 |
재시도 횟수와 백오프(초) 로 실패 시 자동 재시도 정책을 지정할 수 있습니다.
5단계 — 확인 + 저장
마지막 확인 단계에서 소스→파서→청킹→적재→스케줄 선택이 요약되어 표시됩니다.

파이프라인 이름(예: 한경 금융 뉴스 RSS)을 입력하고 [저장] 또는 [저장&지금 실행] 을 누릅니다. 저장하면 sonner toast 로 성공 알림이 표시되고 파이프라인 탭 목록에 나타납니다.

파이프라인 행의 액션:
- [실행] — cron 을 기다리지 않고 즉시 1회 수집 (QA 권장)
- 활성/비활성 토글 — 스케줄 실행 일시 중지 (비활성 파이프라인은 수동 실행도 차단)
- 편집 / 삭제 — 설정 수정 / 영구 삭제
등록 후 — 실제 적재 흐름
실행 후 실행 탭에서 Run 의 진행률(parse / chunk / embed / vector / graph 단계 롤업)과 파일별 성공/실패를 확인하고, 실패 항목만 재시도할 수 있습니다. 적재가 끝나면 문서 탭에서 collection 을 finance-news 로 필터링해 적재된 문서를 직접 확인할 수 있습니다.
AI 어시스턴트(상단바 🤖 또는 사이드바 공통 핀 드로어)에서 다음과 같이 질문하면 등록한 뉴스 본문이 출처로 등장합니다.
"오늘 코스피 시황 요약해줘 — finance-news 컬렉션 기준"
운영 팁
| 항목 | 권장 |
|---|---|
| robots.txt 확인 | https://example.com/robots.txt 를 사전 체크 |
| 호출 빈도 | 매시간 이상 — 너무 잦으면 IP 차단 위험 |
| User-Agent | GenD 는 기본 httpx UA — 사이트가 차단 시 collector 코드에 UA 화이트리스트 필요 (별도 enhancement) |
| robots / 약관 위반 | 회사 법무 / 보안팀과 사전 합의 |
| 복합 사이트 | 한 RSS 에 다양한 카테고리 섞이면 collection 을 분리해 검색 정밀도 ↑ |
다음 단계
- 뉴스를 정형 데이터 로 적재해 SQL 분석 / 가격 데이터와 join 하고 싶다면 →
financial-news-iceberg튜토리얼 - 거래소 OHLCV 등록 →
financial-sources - 파일·문서 수집 일반 가이드 →
auto-collection
참고
- 코드:
apps/api/src/gend_api/services/collectors/web_crawl_collector.py,apps/api/src/gend_api/services/collection_service.py - 관련 이슈: #614