텔레그램으로 클로드코드 투자 비서 깨우기

소개

매일 아침 저녁 출퇴근 길 미국/한국 증시가 어떻게 마감했는지 확인하고 오늘 전략을 정리하는 루틴이 있었습니다.

Claude Code를 단순한 코딩 도우미가 아니라, 항상 켜두는 자동화 에이전트로 활용할 수 있다는 것을 발견하고 다음과 같은 환경을 구성해봤습니다.

  • 스마트폰 텔레그램에서 명령 한 줄로 Claude 제어

  • 평일 오전 8시, 미국 마감 시황 분석 리포트 자동 전송

  • 평일 오후 8시, 한국장 마감 분석 리포트 자동 전송

  • 증권사 API(키움증권)와 Google Sheets를 Claude가 직접 읽고 동기화

  • 분석 결과를 HTML 파일로 저장하고 텔레그램으로 파일 전송

핵심 아이디어

Claude Code를 "터미널에서 대화하는 AI"가 아니라 24시간 대기 중인 개인 에이전트로 활용한 것이 핵심입니다. 텔레그램이 인터페이스, LaunchD가 스케줄러, Python 스크립트가 실행 엔진이 됩니다.

진행 방법

전체 구조

한국어 도표

CLAUDE.md — Claude에게 역할과 명령어 규칙 주입

프로젝트 루트의 CLAUDE.md가 Claude의 "행동 강령"입니다. 여기에 텔레그램 커맨드 테이블을 정의해두면, 텔레그램으로 특정 메시지가 오면 Claude가 자동으로 해당 스크립트를 실행합니다.

사용한 프롬프트 (CLAUDE.md — 텔레그램 커맨드 섹션)

## 텔레그램 커맨드
텔레그램 메시지로 아래 커맨드를 받으면 즉시 실행한다. 확인 없이 바로 처리.

| 커맨드        | 실행                              | 예시              |
|--------------|-----------------------------------|-------------------|
| `모닝브리핑`  | `/모닝브리핑` 스킬 실행            | `모닝브리핑`       |
| `마감브리핑`  | `/마감브리핑` 스킬 실행            | `마감브리핑`       |
| `포트`        | positions.csv 읽어서 현황 요약     | `포트`            |
| `포트업데이트`| Google Sheets 동기화 스킬 실행    | `포트업데이트`     |
| `도움말`      | 사용 가능한 커맨드 목록 회신       | `도움말`          |

**처리 규칙:**
- 스크립트 실행 시작 직후 텔레그램으로 "▶ {커맨드} 시작" 즉시 회신
- 완료 시 HTML 파일 자동 전송 (스크립트 내부에서 send_file 호출)
- 오류 발생 시 에러 메시지를 텔레그램으로 회신

Telegram MCP 설정 — 모바일에서 Claude 제어

Claude Code의 플러그인 시스템을 통해 텔레그램 MCP를 연결합니다. 연결 후에는 텔레그램 메시지가 Claude의 컨텍스트로 직접 들어오고, Claude가 텔레그램으로 응답을 보낼 수 있습니다.

설정 방법

# Claude Code 터미널에서 스킬 실행
/telegram:configure   # BotFather 봇 토큰 등록
/telegram:access      # 내 채팅 ID 허용

텔레그램 메시지 송수신 구조

# 텔레그램 메시지 수신 (MCP가 자동 처리)
# <channel source="telegram" chat_id="..." message_id="...">
# 모닝브리핑
# </channel>

# 텔레그램 응답 전송 (Claude가 도구 호출)
mcp__plugin_telegram_telegram__reply(
    chat_id="본인의 chat_id",
    text="분석 결과 텍스트",
    files=["/path/to/report.html"]  # 파일 첨부
)

커스텀 스킬 파일 — 반복 작업의 레시피

.claude/commands/ 폴더에 마크다운 파일을 만들면 Claude가 "스킬"로 인식합니다. 무엇을 수집하고, 어떤 순서로, 어떤 형식으로 출력할지를 단계별로 기술합니다.

사용한 프롬프트 (.claude/commands/모닝브리핑.md 핵심 구조)

# 모닝브리핑 — 미국장 마감 → 한국장 시작 전 전략

핵심 목적: 시장 전체 색깔 파악 + 오늘 한국장 주도 섹터/테마 예측
출력: HTML 파일 저장 + 텔레그램 전송
저장 경로: ./drive/06.루틴/모닝브리핑/{연도}/YYYYMMDD_모닝브리핑.html

## 데이터 신뢰도 원칙
- 확정: 뉴스/공식 발표 직접 인용 → 수치 그대로 표기
- 추정: 유추/맥락 기반 → "(추정)" 명시
- 불명: 확인 불가 → "확인 필요"
- 절대 금지: 수치 지어내기

## 실행 순서

1단계: 웹 검색으로 시장 데이터 수집
  - 나스닥/다우/S&P/SOX 종가
  - 원/달러, WTI(브렌트 아님), 미 10년물, VIX
  - 빅테크 6종 (NVDA TSLA AAPL MSFT META AMZN)
  - 오버나이트 핵심 뉴스

2단계: 4대 핵심 항목 분석
  - 3대 지수 + SOX 표
  - 주도 섹터 & 특징주
  - 매크로 지표 테이블
  - 오늘 한국장 영향 예측 (연동 로직 기반)

3단계: 텔레그램 요약 텍스트 먼저 전송

4단계: HTML 9섹션 파일 생성 후 첨부 전송
  헤더 / 지수 카드 / 매크로 / 섹터 / 빅테크 /
  뉴스 / 한국장 예측(강조) / 전략 / 포트폴리오

이처럼 스킬에 출력 포맷을 상세히 명시 할수록 매번 동일한 품질의 결과물이 나옵니다.

Python 자동화 스크립트 — 데이터 처리 & 전송 엔진

스킬 파일이 "무엇을 할지" 정의한다면, Python 스크립트는 실제 데이터 처리, HTML 생성, 텔레그램 전송을 담당합니다. Claude가 스킬 실행 중 Python을 직접 호출하거나, LaunchD가 스크립트를 직접 실행합니다.

# scripts/morning_briefing.py — 핵심 구조
from pathlib import Path
from telegram_notify import send_message, send_file
from briefing_html import html_head, color_class

# 미국 신호 → 한국 수혜 섹터 연동 테이블
SECTOR_LINK = {
    "SK하이닉스":   ("SOX 반도체",    "동조"),
    "LS ELECTRIC": ("XLU 유틸리티",  "약 동조"),
    ...
}

def generate_html(market_data: dict) -> str:
    # 지수/매크로/섹터/뉴스 데이터 → HTML 리포트 생성
    ...

def main():
    today = datetime.now().strftime("%Y%m%d")
    html  = generate_html(data)

    # HTML 저장
    path = OUTPUT_DIR / f"{today}_모닝브리핑.html"
    path.write_text(html, encoding="utf-8")

    # 요약 텍스트 먼저 전송
    send_message(summary_text)

    # HTML 파일 첨부 전송
    send_file(path)
# scripts/telegram_notify.py — 전송 모듈
import urllib.request, json, os

def send_message(text: str, chat_id="YOUR_CHAT_ID"):
    url = f"https://api.telegram.org/bot{os.environ['BOT_TOKEN']}/sendMessage"
    data = json.dumps({"chat_id": chat_id, "text": text}).encode()
    urllib.request.urlopen(urllib.request.Request(url, data=data,
        headers={"Content-Type": "application/json"}))

def send_file(path: Path, chat_id="YOUR_CHAT_ID"):
    # multipart/form-data로 파일 전송
    ...

실제 결과물 — 모닝브리핑 HTML 리포트

이 모든 설정이 동작 하면 매일 아침 텔레그램으로 아래와 같은 리포트가 전송됩니다.

모닝브리핑 HTML 상단

모닝브리핑 핵심 뉴스와 한국장 예측

결과와 배운 점

결과

텔레그램 한 줄로 Claude를 깨워 웹 데이터 수집 → 분석 → HTML 생성 → 파일 전송까지 자동화.

Google Drive MCP + Kiwoom REST API 조합으로 포트폴리오 동기화와 월간 성과 분석까지 진행

시행착오

윈도우 환경에서 진행하고 있다가 맥미니 환경으로 바꾸면서 익숙하지 않은 환경에서 시행 착오들이 있었음.

기본 설정들은 git으로 유지하고 있어서 그런 부분들은 괜찮았는데 개발 환경과 경로들이 바뀌면서 그런 부분들을 잡아주는데 꽤 오랜 시간이 걸렸음. 그럼에도 맥미니가 조금 더 원활한 환경을 제공하는 것으로 느껴집니다.

앞으로의 계획

크롬 익스텐션으로 PDF 리포트 자동 수집 파이프라인 고도화. 여러 분석 자료들을 자동화하고 고도화 하는 방안 마련.

도움 받은 글 (옵션)

참고한 지피터스 글이나 외부 사례를 알려주세요.

(내용 입력)

뉴스레터 무료 구독