shud.log
바이브코딩 기록

봇 성과를 옵시디언에 자동으로 쌓는 시스템 만들기

2026-04-15나도봇옵시디언자동화마켓메이킹크립토봇iCloud

나도봇 로그는 맥미니에만 쌓입니다.

SSH로 접속해야 보입니다. 귀찮습니다.

그래서 이런 생각이 들었습니다.

"매일 아침에 알아서 정리해서 보내주면 안 되나?"


만든 것

매일 오전 9시에 두 군데로 자동 발행합니다.

  1. 텔레그램: 오늘의 PnL, 체결 횟수, 경보 내역
  2. 옵시디언: 위와 동일한 내용을 마크다운 파일로 저장

옵시디언 파일은 iCloud에 올라가서 맥북과 아이폰에서 바로 볼 수 있습니다.


코드 구조

봇 메인 루프에 check_morning_report()를 붙였습니다.

def check_morning_report(state: dict):
    now = datetime.now()
    today = now.strftime("%Y-%m-%d")
    
    if now.hour == 9 and state.get("last_morning_report") != today:
        send_morning_report(state)
        save_obsidian_report(state, today)
        state["last_morning_report"] = today

매 사이클마다 체크하지만, 오늘 이미 보냈으면 스킵합니다. last_morning_report 날짜가 오늘이면 그냥 넘어갑니다.


옵시디언 저장 경로

맥미니에서 iCloud 경로로 직접 씁니다.

OBSIDIAN_DIR = "/Users/shud/Library/Mobile Documents/iCloud~md~obsidian/Documents/나도봇"

def save_obsidian_report(state: dict, date: str):
    os.makedirs(OBSIDIAN_DIR, exist_ok=True)
    filepath = os.path.join(OBSIDIAN_DIR, f"{date}.md")
    content = build_report_md(state, date)
    with open(filepath, "w") as f:
        f.write(content)

iCloud가 설치된 맥미니에서 이 경로에 파일을 쓰면 자동으로 클라우드로 올라갑니다.


보고서 내용

# 나도봇 일일 보고서 — 2026-04-15

## BTC-PERP
- PnL: +$6.32
- 체결: 68회 (매수 34 / 매도 34)
- 스탑로스: 0회
- 원웨이 발동: 0회

## ETH-PERP
- PnL: -$1.10
- 체결: 12회 (매수 6 / 매도 6)
- 스탑로스: 0회
- 원웨이 발동: 1회

## 경보 내역
- 없음

---
*자동 생성: grid_bot.py*

iCloud 연동 흐름

맥미니 봇 → iCloud 경로에 파일 쓰기
    ↓
iCloud 자동 동기화 (수 초 내)
    ↓
맥북 옵시디언 / 아이폰 옵시디언에 파일 나타남

수동으로 할 게 아무것도 없습니다.


이렇게 쓰고 있습니다

매일 아침에 텔레그램에 보고가 오고, 옵시디언에 들어가면 날짜별로 파일이 쌓여있습니다.

한 달 치가 쌓이면 월별로 묶어서 PnL 그래프를 그려볼 수도 있습니다.

다음 글에서는 이 자동화 경험을 바탕으로 만든 jindo 앱 이야기를 씁니다.

← 목록으로