자동화·에이전트

KRW 투자 위키

평일 저녁 클라우드에서 시장 자료와 계좌를 읽기 전용으로 모아 계산하고, 결과를 마크다운 노트로 저장소에 커밋하는 개인 투자 기록 파이프라인.

분야자동화·에이전트플랫폼GitHub Actions · Vercel기술Python 3.12 · GitHub Actions · Vercel (Python 서버 함수) · JSON Schema · YAML 설정 · Obsidian Markdown · pytest저장소비공개
GitHub Actions평일 18:00 KST공개 시장 데이터거시 지표증권사 API읽기 전용 조회Python 계산스냅샷Git 저장소자료
개인 투자 기록이라 화면은 싣지 않고 구조만 소개합니다.

왜 만들었나

여러 출처의 시장 지표와 계좌 상태를 매일 손으로 확인하고 정리하기 어려웠고, 시장 등락이 아니라 미리 정한 원칙대로 비율을 유지하는지 꾸준히 점검할 장치가 필요했다.

주요 기능

  • 공개 경제·시장 데이터 수집과 하루치 스냅샷 검증(누락·오래됨·충돌 표시)
  • 증권사 Open API 읽기 전용 조회(주문 기능 없음)
  • 목표 비율 대비 리밸런싱 점검, 시나리오 추적·시뮬레이션, 가설 검증
  • 추세·변동성·지지선 기반 시장 신호판
  • Obsidian 노트·한 장 요약 자동 생성, 비밀번호 보호 웹 대시보드

숫자로 보면

실행 주기: 평일 18:00 KST (cron 0 9 * * 1-5)
파이프라인 4단계(시장 자료 → 계좌 → 계산·노트 → 결과 기록)
pytest 테스트 274개(24개 파일) · 데이터 스키마 5종

어떻게 동작하나

  1. 시장 자료 수집

    거시 지표·국내외 시장·채권 시세 수집기가 원천 데이터를 날짜별 파일로 저장한다.

    프로그램/collect_fred.py
  2. 스냅샷 생성·검증

    하루치 시장 스냅샷을 만들고 스키마로 검증해 누락·오래됨·충돌 상태를 표시한다.

    프로그램/build_daily_snapshot.py
  3. 계좌 읽기 전용 동기화

    증권사 API에서 잔고를 조회해 거래 기록 원장을 갱신한다.

    프로그램/collect_kis_account.py
  4. 모델·점검 계산

    전략·퀀트 모델, 리밸런싱 점검, 시나리오 추적을 계산하고 노트를 갱신한다.

    프로그램/run_portfolio_automation.py
  5. 결과 기록과 요약

    단계별 실행 상태를 기록하고 폰에서 보는 한 장짜리 요약 페이지를 만든다.

    프로그램/today_summary.py
  6. 커밋과 대시보드 배포

    워크플로가 결과를 커밋(충돌 시 rebase 후 재시도)하면 Vercel이 새 데이터로 대시보드를 다시 띄운다.

    .github/workflows/daily.yml

구조

GitHub Actions 평일 cron이 수집·계산을 돌려 결과를 저장소에 커밋하고, Vercel이 커밋마다 재배포되어 저장소 데이터를 읽어 대시보드를 서빙한다(별도 DB 없음).

GitHub Actions평일 18:00 KST
공개 시장 데이터거시 지표 · 시세
증권사 API읽기 전용 조회
Python 계산스냅샷 · 모델 · 점검
Git 저장소자료 · 마크다운 노트
Vercel 대시보드비밀번호 로그인
  • GitHub Actions → 증권사 API: 잔고 조회
  • 공개 시장 데이터 → Python 계산: 스냅샷

비공개 저장소라 소스 코드 링크와 코드 발췌는 싣지 않았습니다.

어려웠던 점

같은 파이프라인이 맥과 클라우드 양쪽에서 돌기 때문에 실행 잠금, 기기 역할 구분, 맥이 그 사이 푸시한 입력 위로 데이터 커밋을 올리는 rebase 재시도를 넣어야 했다. 출처 하나가 일시적으로 실패해도 같은 날짜의 쓸 수 있는 데이터를 지우지 않도록 대체 경로를 두었다.