# Phase 2 Job Catalog 이 문서는 Phase 2에서 구현할 배치 작업을 표준 이름, 입력, 출력, 실행 시점 기준으로 정리한 목록입니다. ## 1. 공통 필드 모든 job은 아래 공통 필드를 가져야 합니다. - `job_name` - `source` - `mode` - `run_id` - `started_at` - `ended_at` - `status` - `input_scope` - `output_counts` ## 2. Job 목록 ### 2.1 `sec_submissions_poll` **source**: sec **목적**: 신규 submissions JSON 수집 및 filing header 추출 **입력**: CIK 목록 **출력**: raw submissions, filing headers, documents upsert **권장 주기**: 평일 10~15분 간격 **mode 지원**: poll, backfill, replay(제한적) 예시: ```bash python -m apps.collector.sec_collector.main --job sec_submissions_poll --mode poll ``` ### 2.2 `sec_filing_fetch` **source**: sec **목적**: filing 본문, index, exhibit 다운로드 **입력**: accession 목록 **출력**: raw filing artifacts, artifact inventory **권장 주기**: submissions poll 후 즉시 **mode 지원**: poll, backfill, replay ### 2.3 `sec_xbrl_extract` **source**: sec **목적**: XBRL facts 추출 **입력**: accession 목록 또는 pending xbrl queue **출력**: xbrl_facts rows **권장 주기**: filing fetch 후 배치 **mode 지원**: poll, backfill, replay ### 2.4 `alpaca_daily_bars_backfill` **source**: alpaca **목적**: 일봉 수집/백필 **입력**: symbol list, date range **출력**: daily bars raw/staging/structured **권장 주기**: 장 종료 후 1회 + 필요 시 backfill **mode 지원**: poll, backfill, replay 예시: ```bash python -m apps.collector.alpaca_collector.main \ --job alpaca_daily_bars_backfill \ --mode backfill \ --symbols AAPL,MSFT \ --start-date 2026-01-01 \ --end-date 2026-01-31 ``` ### 2.5 `alpaca_intraday_bars_poll` **source**: alpaca **목적**: 분봉 수집 **입력**: symbol list, trading day **출력**: intraday bars raw/staging/structured **권장 주기**: 거래일 종료 후 또는 장중 5~15분 간격 **mode 지원**: poll, backfill, replay ### 2.6 `fred_series_sync` **source**: fred **목적**: 거시 시계열 수집 **입력**: series_id 목록 **출력**: series metadata, observation rows **권장 주기**: 일 1회 **mode 지원**: poll, backfill, replay 예시: ```bash python -m apps.collector.fred_collector.main \ --job fred_series_sync \ --mode poll ``` ### 2.7 `finra_short_volume_fetch` **source**: finra **목적**: 일별 short volume 파일 수집 **입력**: trade_date 또는 date range **출력**: raw file, parsed rows, structured rows **권장 주기**: 일 1회 **mode 지원**: poll, backfill, replay ### 2.8 `dq_validate_source_batch` **source**: internal **목적**: source별 데이터 품질 검증 **입력**: source, date range **출력**: quality result rows, warnings/errors **권장 주기**: 각 적재 후 후속 실행 **mode 지원**: poll, replay ### 2.9 `lineage_verify_batch` **source**: internal **목적**: raw/staging/structured lineage 검증 **입력**: source, run_id 또는 date range **출력**: lineage verification result **권장 주기**: 일 1회 또는 배포 후 1회 **mode 지원**: poll, replay ## 3. 우선순위 ### P0 (반드시 구현) - `sec_submissions_poll` - `sec_filing_fetch` - `alpaca_daily_bars_backfill` - `fred_series_sync` - `finra_short_volume_fetch` ### P1 (Phase 2 내 구현 권장) - `sec_xbrl_extract` - `alpaca_intraday_bars_poll` - `dq_validate_source_batch` ### P2 (필요 시) - `lineage_verify_batch` ## 4. 운영자가 자주 쓰는 조합 ### 시나리오 A: 평시 일일 배치 1. `sec_submissions_poll` 2. `sec_filing_fetch` 3. `sec_xbrl_extract` 4. `alpaca_daily_bars_backfill` (당일) 5. `fred_series_sync` 6. `finra_short_volume_fetch` 7. `dq_validate_source_batch` ### 시나리오 B: 과거 기간 백필 1. `alpaca_daily_bars_backfill` 2. `sec_submissions_poll` (범위 제한) 3. `sec_filing_fetch` 4. `sec_xbrl_extract` 5. `fred_series_sync` 6. `finra_short_volume_fetch` ### 시나리오 C: 버그 수정 후 재처리 1. `sec_filing_fetch --mode replay` 2. `sec_xbrl_extract --mode replay` 3. `dq_validate_source_batch` 4. `lineage_verify_batch` ## 5. 완료 기준 - 위 P0 job은 모두 실제 코드 entrypoint를 가져야 합니다. - 각 job은 문서에 나온 입력/출력/상태 규칙을 따라야 합니다. - 운영자는 job 이름만 보고 역할을 이해할 수 있어야 합니다.