개시일 D-DAY · 2026-08-18
계약 개시일이 오늘인데 개통 스위치가 하나도 켜져 있지 않습니다. 켤 것은 4개이고, 그중 하나는 켜는 방식에 대한 결정이 남아 있습니다.
TODO.md T6은 이것을 「이중 스위치」라고 부르지만 그 문구는 낡았습니다. T4(어댑터)가 착지하기 전에 쓰인 것이고, 지금은 3·4번 없이는 AC-발행(⑧~⑫)이 흐르지 않습니다.
*/20 * * * *) · 커밋 → main 머지 시 terraform apply가 반영합니다. 라이브 실측도 PAUSED입니다.0004 시드가 false로 넣었습니다. 마이그레이션 파일이 없어 수기 UPDATE이며, 적용하면 docs/spec/deploy.md §4-a 표에 반드시 기입합니다 — 그 표가 유일한 기록입니다.engine_pull.py:390)와 매거진 자체수집(collect.py:98). 아래 A/B/C가 이 스위치를 어떻게 켤지의 문제입니다.*/30 * * * *) · 재구성·검수·발행이 여기서 돕니다. 이게 꺼져 있으면 수집만 되고 기사가 나오지 않습니다.gcloud scheduler jobs resume으로 켜면 다음 apply가 되돌립니다. 반드시 paused = false를 커밋해야 합니다 (scheduler.tf 헤더 주석).
축이 셋인데 어느 안도 셋을 다 만족하지 않습니다. 그것이 이 표의 요지입니다.
| 안 | 자체수집 요청 빈도 | 유료 단계 건수 | 오늘 개통 | 코드 |
|---|---|---|---|---|
| A 그대로 켠다 | 상시 — 사이클마다(30분) | 전량 20~25건/일 | 가능 | 없음 |
| B 구조적 차단 먼저 | 0 | 전량 20~25건/일 | 불가 | 필요 |
| C 수동 시범 회차 | 수동 실행 시에만(하루 1~2회) | 지정 건수만 | 가능 | 없음 |
enabled: true로 바꾸고 4번 스위치도 켠다. 어댑터와 자체수집이 함께 열려 엔진(20분)과 매거진(30분)이 각각 itdaily.kr에 붙습니다. filters가 의도적으로 비어 있어 전 기사가 유료 단계로 흐릅니다. UA도 둘로 갈립니다 — BizCrushNewsBot/0.1(엔진) · BizCrushMagazineBot/0.1(매거진).run_cycle에 수집 차단 인자 + pipeline_worker.tf에 args 주입이 필요합니다. 현재 그런 플래그는 없고(collect_only는 정반대 방향), Job은 args가 없어 Dockerfile:78 ENTRYPOINT가 풀 사이클을 돕니다. 그래서 오늘은 불가합니다.--only-raw-items로 처리 건수를 지정해 지출 상한을 겁니다.run_cycle.py:147에서 collect.run()이 무조건 먼저 돌고, --only-raw-items는 그 뒤 ①단계 투입만 제한합니다. C가 사는 것은 빈도를 사람이 통제한다는 점입니다(상시 → 수동 실행 시에만).
B는 비용을 줄이지 않습니다. 어댑터가 같은 건수를 그대로 유료 단계로 넘깁니다. B가 사는 것은 계약 축뿐입니다.
스케줄러 주기는 비용을 만들지 않습니다. 폴링은 조건부 GET(304)이라 사실상 0이고, 비용은 신규 기사 건수에서 나옵니다. 20분을 30분으로 늘려도 비용은 그대로입니다.
| 안 | 일 | 월 (영업일 22) | 비고 |
|---|---|---|---|
| A / B | $5.6~9.8 | $123~215 | 전량 — filters가 비어 있어 감축 근거가 없습니다 |
| C (5건/일 기준) | $1.4~2.0 | $31~43 | 지정 건수만 유료 단계로 |
환율 1,400원/USD 가정 시 A/B는 월 약 17만~30만원입니다 — 계약료 월 50만원의 약 34~60%.
min 1 인스턴스).
순서를 틀리면 오류가 아니라 침묵으로 실패합니다.
engine.sources.enabled = true (slug=itdaily) 수기 UPDATE → docs/spec/deploy.md §4-a 표 기입까지가 한 세트입니다. 버전 테이블이 없어 그 표가 유일한 기록입니다.scheduler.tf의 paused = false 커밋 → 머지 → terraform apply.engine-normal 큐의 1 req/s뿐이고, 50건이면 약 50초에 걸쳐 나갑니다. 그것으로 충분한지 실물로 확인합니다.itdaily-kr.yaml enabled: true + pipeline_worker.tf paused = false. C면 yaml만 켜고 사이클은 PAUSED로 둔 채 Job을 --only-raw-items로 수동 실행합니다.docs/audit/에 기록합니다 (T6). 이것까지가 파일럿 완료입니다.409 source disabled로 끝나고 외부 요청이 0건입니다. 오류 화면이 없어 「돌고 있는데 왜 기사가 없지」가 되는 경로입니다 — scheduler.tf와 소스 YAML이 양쪽 다 같은 경고를 답니다.
되돌림: engine.sources.enabled = false + 발행 기사 unpublish.
조항 번호와 요지만 옮깁니다. 문언 대조는 docs/partners/itdaily-contract-terms.md(⛔ 반출 금지)가 우선합니다.
| 조항 | 요지 | 상태 |
|---|---|---|
| 제4조② | 전달 방식을 RSS 수신으로 규정 — 기사 페이지 본문 수집을 허용하는 문언이 없음 | 수용된 리스크 소스 YAML contract_note에 「인지·수용(2026-08-11 결정)」으로 기록됐고 제3조② 정식 전환 협의 안건으로 등록돼 있습니다. 이중 수집은 그 공백을 두 번 밟습니다. |
| 제7조② | 출처 표시 형식은 갑·을이 협의하여 정한 시안에 따름 | 미이행 우리 시안만 확정(ADR-0014 · attribution-display.md). 상대방 제시·합의가 남아 있습니다(T0 잔여). 제출 전 시안 오타 1건(세부 내용운→내용은) 교정 필요. |
| 명세서 | 기사별 유입 수·클릭 수를 매월 공유 | 계측 0 ⚠️ 어제 개통한 view_count와 다른 축입니다 — 그건 우리 매거진 조회수이고, 계약이 요구하는 것은 아이티데일리로 넘어가는 유입·클릭입니다. |
| 제8조① | 접수 폼으로 수정·삭제 요청 → 즉시 반영 | 확인 필요 내림 경로와 파트너 어드민은 있으나 admin-web 배포 인증 방식 결정이 T5에 미체크입니다 — 파트너가 실제로 닿을 수 있는지 확인이 필요합니다. |
| 제5조③ 제6조① 제13조③ 제5조⑥ |
제목 보존 / 유료 이미지 자동 필터 / 종료 시 내림 처리 / AI 학습 금지 | 이행 확인 각각 fail-closed 구현 · paid_stock 필터 · published→unpublished 경로 · 원문 픽스처 gitignore로 대응돼 있습니다. |
2026-08-12-itdaily-collect-baseline.md)과 반입본 5.2절 「10~30분」에서 나온 값입니다. ⚠️ 다만 RSS 보관량이 50건 = 영업일 2일치라, 수집이 이틀 멈추면 기사가 피드에서 밀려나 유실됩니다.
run_cycle 수집 차단 플래그 + Job args 주입. A/C로 개통했다면 이중 수집 해소는 여기로 넘어갑니다.filters 근거 확보 — 지금은 관측 전이라 의도적으로 비워 둔 상태이며, 이것이 유료 단계 건수를 결정합니다.magazine_metrics 전용 계정 분리 · 인기 랭킹 API