W1 Homework W1 과제 워크북 0 / 100 점
📝 HOMEWORK
WEEK 1

3가지 자산 가격 수집
자동화 실습

총점 100점 · 필수 60 + 심화 40
🎯 W1 학습 목표 복습

n8n HTTP Request + Schedule + Google Sheets로 주식·암호화폐·금리 가격을 자동 수집하는 파이프라인 구축.

🔧 사용 도구
n8n, Yahoo Finance, CoinGecko, FRED, Google Sheets
⏱ 예상 시간
필수 3~4시간
심화 +2~3시간
📊 과제 배점표
과제 1
20
과제 2
20
과제 3
20
과제 4
20
과제 5
20
합계 100점 · 필수 60 + 심화 40
📍 빠른 이동
📋 제출 방법: 각 과제의 결과물(워크플로 JSON 또는 Sheets 링크)을 Discord 제출 채널에 업로드. 심화 과제는 선택이지만, 전체 점수의 40%를 차지하므로 적극 권장합니다.
🔴 REQUIRED — 과제 1
나만의 관심 종목 5개 가격 수집 워크플로
배점 20

수업에서 만든 AAPL 단일 종목 워크플로를 확장해, 본인이 관심있는 미국/한국 주식 5개의 현재가를 한 번에 수집하는 n8n 워크플로를 만듭니다.

필수 요구사항
  • Yahoo Finance API로 5개 종목 동시 조회 (국내 주식은 005930.KS 형태)
  • Schedule Trigger로 매 시간마다 자동 실행되도록 설정
  • Google Sheets에 ticker, price, timestamp, change_pct 4개 컬럼으로 저장
  • User-Agent 헤더 설정 (Mozilla/5.0 ...) 필수
  • 수업에서 배운 Sticky Note로 각 노드 용도 주석

구현 힌트

# 관심 종목 설정 — Code 노드에서
const tickers = ['AAPL', 'MSFT', '005930.KS', 'NVDA', '035720.KS'];

# 반환 형식
return tickers.map(t => ({ json: { ticker: t } }));

# 이후 HTTP Request 노드에서:
# URL: https://query1.finance.yahoo.com/v8/finance/chart/{{ $json.ticker }}
막혔을 때 힌트 펼치기
각 종목을 for-loop로 도는 방법: Code 노드에서 tickers 배열을 5개의 item으로 반환하면, 이후 HTTP Request 노드가 자동으로 5번 실행됩니다. 각 item은 $json.ticker로 접근.

에러: Yahoo Finance가 429 에러 반환 → User-Agent 헤더 빠짐. Add Header → Name: User-Agent, Value: Mozilla/5.0.

한국 주식 티커: 삼성전자 = 005930.KS, 카카오 = 035720.KS. 뒤에 .KS 붙이기.
채점 기준 (20점 만점)
A. 5개 종목 정상 수집7점
B. Schedule 트리거 작동 확인4점
C. Google Sheets 기록 정확성4점
D. User-Agent 헤더 포함3점
E. Sticky Note 주석 충실도2점
📦 제출물
1. n8n 워크플로 Export JSON 파일
2. Google Sheets 공유 링크 (보기 권한)
3. 1주일 실행 후 축적된 데이터 스크린샷 1장
✓ 제출 전 체크
🔴 REQUIRED — 과제 2
암호화폐 3종 수집 + 변화율 계산
배점 20

CoinGecko API로 비트코인·이더리움·솔라나 3종의 현재가 + 24시간/7일 변화율을 수집합니다.

필수 요구사항
  • CoinGecko /simple/price 엔드포인트 사용
  • vs_currencies=usd,krw달러·원화 동시 조회
  • include_24hr_change=trueinclude_7d_change=true 파라미터 사용
  • Google Sheets에 코인명, USD 가격, KRW 가격, 24h 변화율, 7d 변화율, 시각 6컬럼
  • 30분마다 자동 실행
⚠️ CoinGecko Rate Limit: 무료 플랜은 분당 30회 제한. 30분마다 호출하면 여유 있음. Free Demo API 키를 x-cg-demo-api-key 헤더로 전달하면 안정성 향상.
URL 구성 예시
https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,solana&vs_currencies=usd,krw&include_24hr_change=true&include_7d_change=true

응답 구조가 중첩 JSON이므로 Code 노드에서 파싱 필요:
const data = $input.first().json;
const rows = Object.entries(data).map(([coin, prices]) => ({
  json: {
    coin,
    usd: prices.usd,
    krw: prices.krw,
    change_24h: prices.usd_24h_change,
    timestamp: new Date().toISOString()
  }
}));
return rows;
채점 기준 (20점 만점)
A. 3종 코인 USD+KRW 동시 수집6점
B. 변화율 2종(24h/7d) 정확 저장5점
C. JSON 파싱 Code 노드 품질4점
D. Schedule 30분 간격 작동3점
E. Rate Limit 대응 (Demo API Key 등)2점
📦 제출물
1. 워크플로 JSON
2. 24시간 이상 수집된 Sheets 링크
3. 비트코인 24h 변화율이 가장 큰 순간의 스크린샷
🔴 REQUIRED — 과제 3
FRED 거시경제 지표 대시보드
배점 20

미국 연준의 FRED API로 금리·인플레이션·실업률·VIX 4개 거시 지표를 매일 아침 수집합니다.

필수 요구사항
  • FRED API Key 발급 (공식 사이트 무료)
  • 4개 시리즈 ID 수집: DFF(연방기금금리), CPIAUCSL(CPI), UNRATE(실업률), VIXCLS(VIX)
  • 각 시리즈의 최신 1개 값만 저장 (limit=1, sort_order=desc)
  • 매일 오전 08:00에 자동 실행
  • Google Sheets에 날짜별 가로 누적 (날짜|금리|CPI|실업률|VIX)

FRED API 구조

# URL 템플릿
https://api.stlouisfed.org/fred/series/observations
  ?series_id={series_id}
  &api_key={your_key}
  &file_type=json
  &sort_order=desc
  &limit=1

# 응답 예시
{
  "observations": [
    {"date": "2026-04-15", "value": "5.33"}
  ]
}
4개 시리즈를 한 번에 합치는 방법
방법 1 (간단): Code 노드에 4개 시리즈 ID 배열 정의 → for-loop로 각각 조회 → 결과를 한 객체로 합침.

방법 2 (병렬): 4개 HTTP Request 노드를 병렬로 배치 → Merge 노드(Merge By Position)로 합침. 실행 시간 1/4로 단축.

Google Sheets 저장 시: 컬럼명을 정확히 date, dff, cpi, unrate, vix로 통일. Auto-map 모드에서 자동 매칭됨.
채점 기준 (20점 만점)
A. 4개 시리즈 모두 수집 성공6점
B. 매일 08:00 정확 실행4점
C. 가로 누적 저장 구조 구현4점
D. FRED Key .env/Credential 관리3점
E. 에러 처리 (시리즈 값 없을 때)3점
📦 제출물
1. 워크플로 JSON
2. 3일 이상 누적된 거시지표 Sheets 링크
3. 다른 시리즈 2개를 추가로 실험해본 기록 (예: GDPC1, PAYEMS)
🟣 ADVANCED — 과제 4
3가지 자산 통합 일일 스냅샷 워크플로
배점 20

과제 1~3에서 만든 3개 워크플로를 하나로 통합해, 매일 아침 08:30에 모든 자산의 스냅샷을 한 번에 찍는 마스터 워크플로를 만듭니다.

필수 요구사항
  • 하나의 Schedule Trigger → 3개 병렬 브랜치 (Stock / Crypto / Macro)
  • Merge 노드로 3개 결과 합치기 (Merge By Position)
  • 합쳐진 결과를 하나의 통합 Sheets 탭 (daily_snapshot)에 저장
  • 실행 실패 시 Error Trigger 워크플로로 Discord 알림
  • 통합 스냅샷을 기반으로 Claude에게 "오늘 시장 한 줄 요약"을 생성시키기 (Anthropic Chat Model 노드)

워크플로 구조 (텍스트 다이어그램)

Schedule (매일 08:30)
  ├──> [Branch A] Yahoo Finance 5 stocks
  ├──> [Branch B] CoinGecko 3 coins
  └──> [Branch C] FRED 4 macro indicators
            ↓
        Merge Node (By Position)
            ↓
        AI Agent (Claude)
          "3가지 데이터를 보고 시장 한 줄 요약"
            ↓
        ┌───────┴────────┐
        ↓                ↓
   Google Sheets      Discord
   (snapshot 탭)      (요약 발송)
⚠️ 심화 과제 난이도: Merge 노드의 동작 방식, 3개 브랜치 병렬 처리, AI Agent 연결 등 여러 개념이 결합됩니다. 예상 소요시간 2~3시간.
Claude 요약 프롬프트 템플릿
AI Agent 노드의 System Message:
당신은 금융 브리퍼입니다. 주식/암호화폐/거시지표 스냅샷을 보고
오늘의 시장 분위기를 **한 문장**으로 요약하세요.

규칙:
- 50자 이내
- "위험선호(Risk-On)" 또는 "위험회피(Risk-Off)" 판정
- 숫자는 데이터에 있는 것만 인용
- 추측·예측 금지

입력 데이터: {{ $json }}

출력 예시:
"Risk-Off 분위기 — 금리 상승 + BTC 하락 + VIX 급등"
채점 기준 (20점 만점)
A. 3브랜치 병렬 구조5점
B. Merge 노드 정확 사용4점
C. Claude 요약 품질 (한 문장, 근거)4점
D. Discord 발송 성공3점
E. Error Trigger 연결2점
F. 워크플로 가독성 (이름·주석)2점
📦 제출물
1. 통합 마스터 워크플로 JSON
2. 3일 이상의 Claude 요약 기록 (Discord 캡처)
3. 실제 Error Trigger 발동 시나리오 테스트 결과 (일부러 API Key 틀려서 발생시켜 보기)
🟣 ADVANCED — 과제 5
나만의 "아침 브리핑 봇" 개인화
배점 20

과제 1~4를 기반으로, 본인의 투자 성향·관심사를 반영한 개인 맞춤 아침 브리핑 시스템을 설계하고 구현합니다. 자유도가 높은 과제로, 창의력과 실무 감각을 평가합니다.

최소 요구사항 (하나 이상 선택)
  • 옵션 A — 내 테마: 특정 섹터(반도체/바이오/AI 등) 5개 종목 + 해당 섹터 대표 ETF 1개 수집
  • 옵션 B — 환율 반영: USD/KRW, USD/JPY, USD/EUR 3개 환율 + 내 해외 주식 포지션의 원화 평가액 자동 계산
  • 옵션 C — 포트폴리오 트래커: 자신의 모의 포트폴리오 10종목 + 수량을 등록해 일일 전체 평가액 추적
  • 옵션 D — 자유 설계: 본인만의 아이디어로 새로운 브리핑 시스템 (사전에 강사와 상의)
공통 조건
  • 과제 4의 통합 워크플로 구조 활용 (병렬 + Merge)
  • Claude에게 개인화 프롬프트 전달 (본인의 투자 스타일·관심사 System Message로)
  • Discord Embed로 시각적으로 예쁘게 발송 (색상·이모지·필드 구분)
  • README.md 작성: 어떤 문제를 해결하고자 했는지, 어떤 선택을 했는지 서술

Discord Embed 예시 Payload

{
  "embeds": [{
    "title": "🌅 Ryan의 모닝 브리핑 · 2026-04-22",
    "color": 15158332,   // 빨강 (Risk-Off일 때)
    "fields": [
      {"name": "📈 AI 섹터", "value": "NVDA +2.1%", "inline": true},
      {"name": "🪙 BTC", "value": "$67,200 -1.3%", "inline": true},
      {"name": "🌍 FRED", "value": "금리 5.33% · VIX 18.5", "inline": false},
      {"name": "💬 Claude 한줄 요약", "value": "AI 섹터 강세 지속..."}
    ],
    "footer": {"text": "교육 목적 · 투자 권유 아님"}
  }]
}
채점 기준 (20점 만점)
A. 개인화 컨셉의 독창성5점
B. 기술 구현 완성도5점
C. Discord Embed 시각 품질4점
D. Claude 프롬프트 개인화3점
E. README 문서화 수준3점
📦 제출물
1. 개인화된 마스터 워크플로 JSON
2. 3~5일 Discord 발송 기록 스크린샷
3. README.md 문서
4. 1분 이내 자기 소개 영상 (본인 시스템을 간단 설명)
💡 창의성 보너스: 기대 이상의 아이디어·구현이면 최대 +5점 보너스. 예: 날씨 연동, 본인의 캘린더 연결, 다국어 발송 등.
Submit Guide

📤 제출 방법

제출 절차 5단계
  1. GitHub 리포지토리 생성 (Private 권장): zerone-ai-invest-w1
  2. 폴더 구조: task1/, task2/, ..., task5/
  3. 각 폴더에 워크플로 JSON + README + 스크린샷 업로드
  4. 루트에 전체 요약 README.md 작성 (과제별 Sheets 링크 목록)
  5. Discord #w1-submit 채널에 리포지토리 링크 + 요약 3줄 게시
⏰ 제출 기한: W2 수업 시작 전까지 (1주일). 지연 시 하루당 -2점. 심화 과제는 2주까지 연장 가능.
📝 W1 HOMEWORK COMPLETE
3가지 자산 가격 수집 자동화
5 tasks · 100 pt · 3~6 hours
이 과제를 완수하면 n8n + API + Sheets의 뼈대가 잡힙니다