데이터 엔지니어링 업무를 하다 보면 시장 지표 수집이 어느 순간 하루 루틴 중 제일 귀찮은 일이 된다. Macro-Pulse는 그 반복을 없애버린 오픈소스 프로젝트다. 단순히 수치를 긁어오는 게 아니라 운영까지 버티는 구조로 짜여 있다.

서버 없이 어떻게 매일 돌아가나

구조 자체는 단순하다. 파이썬으로 국내외 증시, 금리, 원자재 데이터를 수집하고 히트맵 스크린샷을 함께 생성한다. 결과물은 텔레그램 메시지 하나로 전달된다. GitHub Actions의 Cron 스케줄러로 정해진 시간에 자동 실행하고, GitHub Pages에 대시보드를 올린다. 별도 서버가 없다.

패키지 관리 도구로 uv를 쓴다. pip 대비 설치 속도가 눈에 띄게 빠르고 의존성 충돌도 덜 난다. 실행 이력을 저장해서 장애가 생기면 어디서 막혔는지 바로 추적할 수 있다.

JSON으로 받으면 뭐가 다른가

설정 파일 하나로 리포트 형식을 바꿀 수 있다. 출력 항목 추가나 섹션 순서 변경에 코드를 건드릴 필요가 없다. 시장 상황에 따라 특정 정보를 선택적으로 넣고 빼는 작업도 여기서 끝난다. API 키 같은 민감한 정보는 GitHub Secrets로 분리했다.

테스트 구조도 실용적이다. 로직 검증과 외부 통신을 분리해서 환경 변수에 따라 테스트 범위를 조절한다. 컨테이너 내부에 브라우저를 미리 구성해두면 로컬과 서버 환경 차이로 스크린샷이 깨지는 문제를 막는다. dry-run 옵션을 켜면 메시지를 실제로 보내지 않고 기능만 점검할 수 있어서 개발 중에 유용하다.


핵심만 뽑으면

  • GitHub Actions Cron으로 돌리니까 별도 서버 없이 매일 자동 수집이 된다
  • JSON 설정 파일로 항목을 추가하거나 빼니까 코드를 건드릴 일이 없다
  • dry-run 옵션 덕분에 실제 메시지 발송 없이 파이프라인 전체를 검증할 수 있다

관련 글

원문: https://github.com/yeseoLee/Macro-Pulse