어제(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종목의 지금 상태(보유중/현금)를 표로 보여주기- 결과물: 브라우저에서 지금 상태를 볼 수 있음
- Astro에 새 페이지(예
-
7단계 — 대시보드: 수익률 그래프
- 전체 포트폴리오($10,000 기준) 수익률 추이를 꺾은선 그래프로 표시
- (그래프 그리는 제일 쉬운 방법은 이 단계에서 다시 한번 조사)
- 결과물: 수익률이 날짜별로 어떻게 움직였는지 한눈에 보임
-
8단계 — 대시보드: 매매 히스토리 + 이유
- “언제·어떤 종목·왜 샀는지/팔았는지” 기록을 화면에 리스트로 표시 (3~4단계의 AI 판단 이유를 그대로 노출)
- 결과물: PRD 3번(화면 구성) 3가지가 다 완성
-
9단계 — 통합 테스트 + 다듬기
- 실제 배포(Vercel)에서도 잘 보이는지 확인
- 자동 실행 → 데이터 갱신 → 사이트 반영까지 끝에서 끝까지 한 번 확인
- 자잘한 버그 수정
- 결과물: 로드맵 2주차 목표(“작동하는 매매 판단 로직 + 대시보드 초안”) 완성
다음 단계
**4단계(10종목 전체 확장 + 자산 계산)**부터 이어가면 된다.