본문으로 건너뛰기

금융 뉴스 자동 수집 (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 예시)비고
시작 URLhttps://www.hankyung.com/feed/financeRSS / 사이트맵 / 카테고리 list 페이지 권장
최대 깊이20 = 시작 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-AgentGenD 는 기본 httpx UA — 사이트가 차단 시 collector 코드에 UA 화이트리스트 필요 (별도 enhancement)
robots / 약관 위반회사 법무 / 보안팀과 사전 합의
복합 사이트한 RSS 에 다양한 카테고리 섞이면 collection 을 분리해 검색 정밀도 ↑

다음 단계

참고

  • 코드: apps/api/src/gend_api/services/collectors/web_crawl_collector.py, apps/api/src/gend_api/services/collection_service.py
  • 관련 이슈: #614