전체 지도 1주차 2026-07-28

세부 실행계획 — 미국 주식 AI 에이전트 (PRD 쪼개기)

PRD의 "만드는 방법"을 실제로 만들 수 있는 하루 단위 작은 단계로 쪼갠 문서. AI 판단 호출 방법(모델·SDK·구조화된 출력)을 최신 기준으로 조사해 반영했다.

어제(PRD)에서 “뭘 만들지”를 정했다. 오늘은 “어떻게 만들지”를 하루 단위로 잘게 쪼개고, 그중 AI 판단 부분을 어떤 방법으로 호출할지 최신 기준으로 조사한 결과를 반영한다.

조사 결과 — AI 판단은 뭘로, 어떻게 부를까

PRD 6번엔 “GitHub Actions + JSON + Astro” 조합만 정해뒀고, AI에게 판단을 실제로 어떻게 물어볼지는 안 정해져 있었다. 조사한 결과는 이렇다.

결정할 것선택
어떤 AI 모델Claude Sonnet 5이 작업(가격+뉴스 보고 판단+이유 쓰기)은 아주 복잡한 추론이 아니라 “일반 작업” 수준이라, 제일 비싼 모델(Opus)까진 필요 없다. 그렇다고 제일 빠르고 싼 모델(Haiku)만 쓰기엔 뉴스 해석 품질이 아쉬울 수 있어서, 그 중간인 Sonnet 5가 비용 대비 딱 맞다.
Node.js에서 부르는 법공식 SDK(@anthropic-ai/sdk)직접 fetch로 API를 부르는 것보다 훨씬 짧고 안전하게 짤 수 있다. npm install로 바로 설치.
”판단+이유”를 안정적으로 JSON으로 받기구조화된 출력(structured output)“매수/매도/보유 중 하나 + 이유 문장”을 매번 정확히 같은 모양의 JSON으로 강제해서 받을 수 있는 기능. 이게 없으면 AI가 가끔 형식을 다르게 답해서 코드가 깨질 수 있는데, 이 기능을 쓰면 그럴 일이 없다.

참고로 케빈님이 지금 쓰는 Claude Code 구독(Pro)과 이 API 키는 별개예요. 스크립트에서 API를 부르려면 console.anthropic.com에서 API 키를 따로 발급받아야 해요 (사용한 만큼 별도 과금, Pro 구독료와는 무관).

Finnhub(가격·뉴스) 쪽은 문서 페이지가 자바스크립트라 자동으로는 못 읽었어요. 일반적으로 알려진 형태(GET /api/v1/quote, GET /api/v1/company-news)로 계획엔 넣어뒀지만, 실제 코드를 쓰는 2단계에서 케빈님 화면에서 문서를 열어 다시 한번 같이 확인할게요.

세부계획 (실행 단계별)

PRD의 “다음 단계”(워크플로 ✅ → AI 판단 스크립트 → JSON 저장 로직 → 대시보드)를 작은 단계로 쪼갰다. 원래는 하루에 하나씩 할 계획이었지만, 실제로는 1~3단계를 첫날(7/28, 1주차 6일차)에 다 끝냈다.

★ 여기서 쓰는 “N단계”는 작업 순서일 뿐, 챌린지의 “Day N”(달력 날짜)과는 다른 번호다. 헷갈리지 않게 사례글의 “Day N”은 항상 실제 날짜를, 이 문서의 “N단계”는 작업 순서만 가리킨다.

완료 (7/28)

  • 1단계 — API 키 준비

    • Finnhub API 키 실제로 발급받기 (이미 갖고 있어서 바로 확인만 함)
    • Anthropic API 키 발급받기 (console.anthropic.com)
    • 두 키를 내 컴퓨터에만 .env 파일로 저장 (Git에 안 올라가게)
  • 2단계 — 데이터 하나 가져와보기 (MVP 첫 조각)

    • 종목 1개(AAPL)만 골라서, Finnhub에서 오늘 가격 + 최신 뉴스 가져오는 코드 작성
    • 콘솔에 출력해서 데이터가 어떤 모양으로 오는지 직접 확인
  • 3단계 — AI 판단 연결 (종목 1개로 테스트)

    • @anthropic-ai/sdk 설치
    • 2단계의 가격·뉴스를 프롬프트로 만들어 Claude Sonnet 5에 보내고, “매수/매도/보유 + 이유”를 구조화된 출력(JSON)으로 받기
    • 결과: AI가 실제로 “보유” 판단과 이유를 내려줌

남은 계획

  • 4단계 — 10종목 전체 + 자산 계산

    • 3단계 로직을 10종목 전체에 반복 적용
    • 매수/매도 판단에 따라 종목별 현금·보유수량을 계산해서 data/trades.json 갱신
    • 결과물: scripts/trade.js가 자리표시자가 아니라 진짜로 동작
  • 5단계 — 매일 자동 실행 실전 연결

    • Finnhub·Anthropic API 키를 GitHub Secrets에 등록
    • .github/workflows/daily-trade.yml이 4단계의 진짜 로직을 실행하도록 연결
    • workflow_dispatch(수동 실행 버튼)로 한 번 실제 실행해서 확인
    • 결과물: 사람 개입 없이 자동으로 하루 매매가 기록됨
  • 6단계 — 대시보드 뼈대: 종목별 상태

    • Astro에 새 페이지(예 /dashboard) 추가
    • data/trades.json을 읽어서 10종목의 지금 상태(보유중/현금)를 표로 보여주기
    • 결과물: 브라우저에서 지금 상태를 볼 수 있음
  • 7단계 — 대시보드: 수익률 그래프

    • 전체 포트폴리오($10,000 기준) 수익률 추이를 꺾은선 그래프로 표시
    • (그래프 그리는 제일 쉬운 방법은 이 단계에서 다시 한번 조사)
    • 결과물: 수익률이 날짜별로 어떻게 움직였는지 한눈에 보임
  • 8단계 — 대시보드: 매매 히스토리 + 이유

    • “언제·어떤 종목·왜 샀는지/팔았는지” 기록을 화면에 리스트로 표시 (3~4단계의 AI 판단 이유를 그대로 노출)
    • 결과물: PRD 3번(화면 구성) 3가지가 다 완성
  • 9단계 — 통합 테스트 + 다듬기

    • 실제 배포(Vercel)에서도 잘 보이는지 확인
    • 자동 실행 → 데이터 갱신 → 사이트 반영까지 끝에서 끝까지 한 번 확인
    • 자잘한 버그 수정
    • 결과물: 로드맵 2주차 목표(“작동하는 매매 판단 로직 + 대시보드 초안”) 완성

다음 단계

**4단계(10종목 전체 확장 + 자산 계산)**부터 이어가면 된다.