3. RustFS Bronze 레이어에 원본 데이터를 보존¶
- 상태: 승인됨
- 날짜: 2026-04-06
맥락¶
스크래핑한 데이터를 파싱하여 DB에 저장하는 과정에서, 원본 HTML을 어떻게 처리할지 결정해야 한다. 오늘도하오 프로젝트에서는 이미 RustFS를 사용한 Bronze → Silver 데이터 레이크 패턴을 운영 중이다.
결정¶
파싱 전 원본 HTML과 파싱 직후 JSON을 RustFS Bronze 레이어에 보존한다.
data/bronze/trend/source=daum/20260407/134455/raw.html ← 원본
data/bronze/trend/source=daum/20260407/134455/parsed.json ← 파싱 결과
근거¶
- 재파싱 가능: 스크래핑 대상 사이트의 HTML 구조가 변경되면 파서를 수정해야 한다. 원본이 보존되어 있으면 과거 데이터를 새 파서로 재처리할 수 있다.
- 디버깅 용이: 파싱 오류 발생 시 원본 HTML을 직접 확인할 수 있다.
- 감사 추적: 어떤 데이터를 언제 수집했는지 원본 레벨에서 추적 가능하다.
- 기존 패턴 활용: 오늘도하오 HSK 파이프라인과 동일한 Bronze 패턴이므로, RustFS 버킷/설정을 그대로 재사용한다.
검토한 대안¶
| 대안 | 장점 | 선택하지 않은 이유 |
|---|---|---|
| 원본 저장하지 않음 (DB만) | 스토리지 절약 | 재파싱 불가, 디버깅 어려움 |
| 로컬 파일 시스템 | 간단 | 서버 장애 시 유실, 여러 서버에서 접근 불가 |
| DB BLOB에 저장 | 한 곳에서 관리 | DB 용량 비효율적, 쿼리 성능 저하 |
결과¶
- 파이프라인은 Step 1(Scrape) → Step 2(Bronze 저장) → Step 3(DB 저장) 순서로 실행한다.
- Bronze 저장 실패 시에도 DB 저장은 계속 진행한다 (Bronze는 선택적).
- 오늘도하오와 같은 RustFS 버킷(
haotoday)을 공유하되, prefix(data/bronze/trend/)로 분리한다.