코딩 못 하는 사람이 만든 무인 뉴스 사이트, 74일 기록
수집·작성·발행을 세 칸으로 자른 구조와, 딱 하루 멈춘 날의 진짜 원인.
저는 코딩을 못 합니다. 그런데 이 사이트는 74일 중 73일, 제가 자는 동안 혼자 기사를 올렸습니다.
지금 보고 계신 이 사이트를 어떻게 만들었는지 그대로 적습니다. 성공담이 아니라 운영 로그입니다.
구조는 세 칸으로 잘랐습니다
파이프라인은 딱 세 단계입니다. 수집 → 기사 작성 → 발행. 이걸 한 덩어리로 만들지 않고 파일 세 개로 쪼갠 것이 이 시스템에서 제일 잘한 선택이었습니다.
① 수집 — 파이썬 스크립트가 해커뉴스·긱뉴스·깃허브 릴리스, 그리고 AI 회사 공식 발표 RSS 일곱 곳을 훑어 후보 20건을 모읍니다. 이미 발행한 출처를 걸러 10건으로 줄인 뒤 JSON 파일 하나에 씁니다.
② 작성 — 클로드 CLI를 화면 없이(헤드리스) 불러 그 JSON을 읽히고, 5건을 골라 기사를 쓰게 합니다. 이때 허용 도구를 읽기·쓰기·탐색 세 개로만 묶었습니다. 임의 명령 실행 권한은 주지 않습니다.
③ 발행 — 다시 파이썬이 그 결과를 정적 HTML로 빌드해 클라우드플레어에 올리고, 텔레그램으로 알립니다.
칸을 나눠 두니 어디서 깨졌는지가 로그 한 줄로 보입니다. 두 달 반 동안 깨진 곳은 거의 항상 ②였습니다.
74일 중 73일, 그리고 빠진 하루
로그를 세어 봤습니다. 자동으로 발행된 기사 370건, 하루 5건 고정, 발행이 아예 없었던 날 하루. 그 하루는 7월 1일입니다.
원인은 코드 버그가 아니었습니다. 구독 사용 한도였습니다. 아침 7시·9시·12시 세 슬롯이 각각 3회씩, 아홉 번 연속으로 같은 문장을 받았습니다. "주간 한도에 도달했습니다."
여기서 배운 게 있습니다. 30초·90초 간격 재시도는 네트워크가 끊겼을 때만 듣습니다. 한도는 시간이 지나야 풀립니다. 그래서 지금은 재시도(초 단위)와 캐치업(시간 단위)을 따로 둡니다. 7시 정규 슬롯이 실패하면 9·12·15·18시가 다시 시도하고, 오늘 이미 발행했으면 스스로 건너뜁니다. 발행에 성공한 73일 중 13일은 7시가 아니라 9시 캐치업이 살린 날이었습니다.
나머지 실패 원인은 세션 한도, 소켓 끊김, 15분 제한시간 초과였습니다. 전부 제 코드 바깥의 일이었고, 전부 다시 돌리니 풀렸습니다.
월 비용은 이렇게 나옵니다
- 기사 작성: 이미 쓰고 있던 구독 하나로 돌립니다. 따로 붙는 API 요금은 0원입니다.
- 호스팅: 클라우드플레어 페이지 무료 플랜. 지금 550쪽, 26MB짜리 사이트인데 무료 한도 근처도 가지 않습니다.
- 구독자 저장소: 같은 곳의 무료 데이터베이스 티어.
- 서버: 없습니다. 집 컴퓨터의 예약 실행(cron)이 전부입니다.
- 그래서 고정 지출은 사실상 도메인 등록비 하나뿐입니다.
숨기지 않을 실패들
기사마다 AI 일러스트를 붙였다가 뺐습니다. 매번 비슷한 그림이라 값을 못 했습니다. 한국어 기사를 로컬 모델로 뽑아 보다가도 품질이 안 나와 접었습니다. 텔레그램 알림이 몇 주 동안 조용히 실패한 적도 있습니다 — 국내망에서 주소가 막혀 있었고, 중계 함수를 하나 세워 뚫었습니다. 구독 폼에는 폼을 거치지 않은 가짜 신청이 들어왔습니다. 지금은 출처 검사·경로 필수값·함정 칸·같은 IP 제한, 네 겹으로 막아 둡니다.
따라 하실 분께 남기는 판단 기준
한 문장으로 줄이면 이렇습니다. AI에게는 '글쓰기' 한 칸만 맡기고, 수집과 발행은 평범한 스크립트에 두십시오. 그래야 멈췄을 때 어디를 고칠지 압니다. 그리고 성공했을 때만 완료 표시를 파일에 남기십시오. 그 한 줄이 중복 발행과 무한 재시도를 동시에 막아 줍니다.
이 글이 올라와 있는 이 사이트가, 그 구조로 굴러간 74일째 결과물입니다.
이 시스템이 실제로 돌아가는 모습은 유튜브에서 공개 중입니다.
채널 보기 ↗