항해 기록
증시 분석 파이프라인은 오랫동안 내 맥북 위에서만 돌았다. 이번 항해에서 이걸 클라우드로 띄워, 사람이 없어도 매일 스스로 도는 배로 만들었다.
- 무인 운항(GitHub Actions) — 로컬 crontab을 GitHub Actions로 옮겼다. 평일 18:00 KST에 클라우드가
update_all.py를 실행: 수집→반영일 보정→뉴스→이벤트 스터디→대시보드→리포트→현황판. Mac이 꺼져 있어도 동작한다 - 자동 커밋·배포 — 실행 결과(리포트·대시보드·현황판)를 저장소에 자동 커밋하면,
reports/만 서빙하는 Vercel이 재배포한다. repo는 private으로 유지하되 산출물만 공개(검색엔진 색인은 robots.txt로 차단) - M3 현황판 — 파이프라인 10+단계의 최근 실행 결과, 데이터셋 신선도(3영업일 초과 지연 시 경고), 이벤트 DB·전략 재검증 현황을 한 화면에. Material Design 3 준수, 라이트/다크 자동 전환
- 사이트 자동 게시 — 주간·월간·연간 리포트를 개인 사이트(Observatory)에 MDX로 자동 게시. 시리즈로 묶어 목록을 어지럽히지 않고, 미커밋 변경이 있으면 안전을 위해 건너뛴다
판단
왜 굳이 클라우드였나 — 분석이 매일 갱신돼야 의미가 있는데, "내가 노트북을 켜야만 도는" 파이프라인은 지속되지 않는다. 하루라도 빼먹으면 시세·이벤트에 구멍이 나고, 그 구멍은 이벤트 스터디의 창을 흔든다. 자동화는 편의가 아니라 데이터 무결성의 문제였다.
가장 많이 부딪힌 건 코드가 아니라 무료 티어의 현실이었다. Vercel 무료 크론은 "하루 1회"만 허용해 매일 18:00 실행에는 부족했고, 결국 스케줄 실행 자체를 GitHub Actions로 옮겨 우회했다. 배포가 조용히 실패하던 것도 이 크론 제약 탓이었는데, 대시보드 필터에 가려진 실패를 걷어내고서야 원인이 보였다. 산출물만 공개하고 repo는 private으로 두는 경계, robots.txt로 색인을 막는 선택도 이때 정리했다.
남은 항로
- 이벤트 후보 자동 감지(
detect_events.py)를 사람 검수 루프와 연결 — 지금은 감지까지, 확정은 수동 - 예측 모델을 베이스라인 위로: 한계를 넘는 신호가 어디 있는지 계속 관찰
- 방법론 재사용 — 이벤트 스터디·매크로 컨텍스트를 COCOMSS로 이식하며, 같은 통제가 크립토에서도 통하는지 실증 중