W1 강의노트 n8n 설치 + 첫 시세 수집 0%
Week 01 · Phase 1 · n8n 기초

n8n 설치 + 가격 데이터 수집 파이프

주식·코인·환율·지수 — 3D 분석의 1차원(가격) 안정화

3시간수업
시간
3 API가격
소스
0원수강 중
비용
Learning Objectives

이번 주 학습 목표

레벨
입문
선수지식
없음
실습
90분
과제
확장 1개
1
n8n 워크스페이스 접속(초청/직접/Docker)과 첫 워크플로 생성 과정을 혼자 수행할 수 있다
2
HTTP Request 노드로 Yahoo Finance·CoinGecko·FRED 3개 API를 호출하고 JSON 응답을 이해할 수 있다
3
Set 노드 expression({{ $json.x.y }})으로 중첩 JSON에서 필요한 필드만 추출할 수 있다
4
4자산군 가격 통합 수집기를 완성해 이후 주차의 분석 파이프라인에 공급할 수 있다
이번 주의 한 문장: "좋은 판단은 좋은 데이터에서만 나온다." 이번 주는 판단의 재료가 되는 가격 데이터부터 안정적으로 수집하는 파이프를 만듭니다.
The 3D Framework · Preview

프로가 보는 세 가지 차원 — 8주간의 설계도

아마추어는 가격만 봅니다. 프로는 가격·뉴스·차트 세 가지를 함께 봅니다. 이 과정은 8주에 걸쳐 그 세 차원을 하나씩 쌓아 올려 AI 에이전트가 3차원으로 판단하게 만드는 여정입니다. 이번 주는 그 중 1차원(가격)만 집중합니다.

📊
1차원 — 가격 (What)
이번 주(W1~W2). 시세·거래량·수익률로 "무슨 일이 일어났는가" 파악. Yahoo·CoinGecko·FRED.
📰
2차원 — 뉴스 센티먼트 (Why)
W3에서 추가. 왜 가격이 그렇게 움직였는가. Alpha Vantage NEWS_SENTIMENT가 AI로 점수화.
📈
3차원 — 차트 이미지 (How)
W4에서 추가. 기술적 패턴 인식. Chart-IMG로 TradingView 차트를 만들고 Claude Vision이 판독.
💡 왜 이렇게 나누는가: 한 번에 3차원을 모두 쌓으면 어디서 문제가 났는지 알기 어렵습니다. W1에서 가격 파이프를 완전히 안정화한 뒤, W3에서 뉴스 층을 얹고, W4에서 차트 판독을 추가하는 점진적 누적이 디버깅과 이해 양쪽 모두에 유리합니다.
Why n8n First?

왜 n8n부터 시작하는가

투자 자동화의 여정은 세 단계로 나뉩니다. ①수집 → ②판단 → ③실행. 이 중 판단(AI)과 실행(주문 API)은 수집이 제대로 되어야 의미가 있습니다. n8n은 수집과 연결을 코드 없이 눈으로 보며 설계하게 해주는 도구이기 때문에 투자 자동화의 뼈대를 잡기에 가장 적합합니다.

🤖 에이전트 관점에서 본 이번 주
이번 주 만드는 것은 엄밀히는 "에이전트"가 아니라 "데이터 수집 봇"입니다. 정해진 시간에 정해진 데이터를 가져올 뿐 판단은 없습니다. 하지만 이 데이터가 바로 W3~W4의 AI 에이전트가 먹고 자랄 양식이 됩니다. 좋은 수집 없이 좋은 에이전트 없습니다.
Session 1 · 45min

1교시 — n8n 계정 개설과 첫 화면

이번 과정에서는 3가지 접속 방법을 제공합니다. 본인 상황에 맞게 선택하세요.

🎯 어떤 옵션을 선택할까?
옵션 1 (초청 링크)은 강사 워크스페이스에 참여해 가장 빠르게 시작 — 권장. 옵션 2 (직접 가입)는 본인 워크스페이스를 소유하고 싶을 때. 옵션 3 (Docker)는 개발 경험이 있고 완전 무료·영구 사용을 원할 때.

옵션 1: 강사 워크스페이스 초청 참여 (권장, 가장 빠름)

강사가 운영하는 n8n Cloud 워크스페이스에 이메일 초청으로 참여합니다. 별도 결제나 14일 체험 제한 없이 과정 전체 기간 동안 안정적으로 사용할 수 있습니다.

초청 참여 절차
  1. 수업 시작 전 등록한 이메일로 강사가 n8n 초청 메일을 발송 (제목: You have been invited to n8n)
  2. 메일 내 Accept invite 버튼 클릭 → 브라우저가 강사 워크스페이스로 이동
  3. 본인 비밀번호 설정 → 이름 입력 → 가입 완료
  4. 접속 주소: https://hyeok2.app.n8n.cloud/home/workflows
  5. 좌측 상단 + Create Workflow 클릭 → 본인 이름으로 첫 워크플로 생성
📌 강사 워크스페이스 사용 시 주의사항:
① 본인이 만든 워크플로·자격증명(Credentials)은 본인만 볼 수 있음 (워크스페이스 소유자는 전체 조회 가능) · ② API 키는 반드시 Credentials 메뉴에 저장 — 워크플로에 직접 입력 금지 · ③ 워크플로 이름 앞에 [본인이름] 태그를 붙여 구분 (예: [홍길동] W1-시세수집)

옵션 2: 본인 n8n Cloud 직접 가입 (14일 무료 체험)

본인 명의의 독립 워크스페이스를 만들고 싶다면 직접 가입할 수 있습니다. 14일 무료 체험 후 월 $20부터 유료 전환됩니다.

직접 가입 절차
  1. https://n8n.io 접속 → 우측 상단 Get started for free 클릭
  2. 구글 계정 또는 이메일로 회원가입 (대학 이메일 권장)
  3. 워크스페이스 이름 입력 → 자동으로 {이름}.app.n8n.cloud 주소 발급
  4. 이메일 인증 완료 후 대시보드 진입 → + Create Workflow

옵션 3: Docker 로컬 설치 (완전 무료·영구 사용)

개발에 관심 있는 분만 선택: Docker Desktop이 설치돼 있어야 합니다. 어려우면 옵션 1로 진행하세요. 과정 후반부에 언제든 전환 가능합니다.
# Docker가 설치되어 있다면 한 줄로 시작
docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  docker.n8n.io/n8nio/n8n

# 브라우저에서 http://localhost:5678 접속

첫 화면 구조 이해

영역역할
좌측 사이드바Workflows(내 워크플로 목록) · Credentials(API 키 보관소) · Executions(실행 이력)
캔버스 (가운데)노드를 드래그·연결해 워크플로를 시각적으로 설계
+ 버튼새 노드 추가 — 400개 이상 앱 통합 내장
Execute Workflow현재 워크플로를 수동으로 1회 실행 (테스트용)
🚨 자주 겪는 문제
초청 메일이 안 와요
스팸함 확인. 발신자가 noreply@n8n.io인 경우가 많습니다. 여전히 없으면 강사에게 등록 이메일 주소를 다시 확인 요청.
초청 링크를 눌렀더니 "Invalid invite" 오류
초청 링크는 한 번만 유효합니다. 이미 사용했거나 만료됐으면 강사에게 재초청 요청. 다른 브라우저에서 시도하는 것도 도움.
가입했는데 워크플로가 안 열려요
브라우저 캐시·쿠키를 지우고 다시 로그인해보세요. 크롬 시크릿 모드에서 가장 안정적입니다.
Docker로 실행했는데 localhost:5678이 안 열려요
docker ps로 컨테이너가 실행 중인지 확인하세요. 5678 포트가 이미 사용 중이면 -p 5679:5678로 변경 후 localhost:5679로 접속.
Session 2 · 60min

2교시 — HTTP Request 노드로 첫 API 호출

모든 금융 API는 REST 방식으로 작동합니다. 쉽게 말해 "특정 주소(URL)에 요청을 보내면 JSON으로 답을 준다"는 것. n8n의 HTTP Request 노드가 이 일을 해줍니다.

실습 1: Bitcoin 현재가 가져오기 (CoinGecko)

가장 쉬운 것부터 시작합니다. CoinGecko는 API 키 없이도 무료로 사용 가능하며, 분당 30회까지 호출할 수 있습니다.

🔌 Manual Trigger TRIGGER
수업 중 테스트용. "Execute Workflow" 버튼을 눌러야만 실행됩니다. 나중에 Schedule Trigger로 교체할 예정.
🌐 HTTP Request — BTC 가격 조회 ACTION
CoinGecko의 /simple/price 엔드포인트를 호출해 비트코인의 USD·KRW 가격과 24시간 변동률을 한 번에 가져옵니다.
Method: GET
URL: https://api.coingecko.com/api/v3/simple/price
Query Parameter 1: ids = bitcoin
Query Parameter 2: vs_currencies = usd,krw
Query Parameter 3: include_24hr_change = true
Authentication: None

응답 결과 (JSON)

{
  "bitcoin": {
    "usd": 67234.52,
    "krw": 94521300,
    "usd_24h_change": 2.31
  }
}
핵심 개념 — 중첩(Nested) JSON: bitcoin 안에 usd가 들어있습니다. 다음 노드에서 이 값을 꺼낼 때는 {{ $json.bitcoin.usd }}처럼 점(.)으로 경로를 지정합니다.

실습 2: Apple 주가 가져오기 (Yahoo Finance)

Yahoo Finance는 공식 API는 없지만 공개 엔드포인트가 무료로 열려 있어 교육·개인 프로젝트에 널리 사용됩니다.

🌐 HTTP Request — AAPL 주가 조회 ACTION
Method: GET
URL: https://query1.finance.yahoo.com/v8/finance/chart/AAPL
Query Parameter 1: interval = 1d
Query Parameter 2: range = 5d
Headers: User-Agent = Mozilla/5.0
⚠️ User-Agent 헤더가 핵심: Yahoo는 브라우저가 아닌 요청을 차단합니다. 반드시 Headers에 User-Agent: Mozilla/5.0를 추가해야 정상 응답을 받습니다. (실제 많은 수강생이 여기서 막힙니다)

응답에서 현재가 추출하기

// Yahoo 응답의 중요 경로
currentPrice = $json.chart.result[0].meta.regularMarketPrice
symbol     = $json.chart.result[0].meta.symbol
currency   = $json.chart.result[0].meta.currency

실습 3: 원/달러 환율 (FRED)

FRED(Federal Reserve Economic Data)는 미국 연준 산하 세인트루이스 연준은행이 제공하는 공식 경제 데이터베이스입니다. 환율·금리·VIX·GDP 등 80만 개 시계열을 무료로 제공하며, API 키만 발급받으면 됩니다.

FRED API 키 발급 (3분)
  1. https://fred.stlouisfed.org 우측 상단 My Account → 가입
  2. 로그인 후 My Account → API Keys → Request API Key
  3. 용도에 "Educational use — n8n workflow automation" 기입 → 즉시 32자리 키 발급
  4. n8n의 Credentials 메뉴에 Header Auth 또는 쿼리 파라미터로 저장
🌐 HTTP Request — 원/달러 환율 ACTION
DEXKOUS는 FRED의 원/달러 일일 환율 시리즈 코드입니다.
Method: GET
URL: https://api.stlouisfed.org/fred/series/observations
Query Param 1: series_id = DEXKOUS
Query Param 2: api_key = {{ 여러분의 키 }}
Query Param 3: file_type = json
Query Param 4: sort_order = desc
Query Param 5: limit = 1

유용한 FRED 시리즈 코드

코드지표용도
DEXKOUS원/달러 환율해외 자산 원화 환산
DEXJPUS엔/달러 환율엔캐리 트레이드 모니터
VIXCLSVIX 공포지수시장 리스크 측정
DGS10미 10년물 국채금리매크로 방향성
DFF연방기금 유효금리통화정책 추적
Session 3 · 75min

3교시 — 4자산 통합 시세 수집 워크플로

앞서 배운 3개 API에 S&P 500 지수를 추가해 완전한 투자 자동화의 첫 작품을 만듭니다. 이번 워크플로는 W2에서 Google Sheets 대시보드로 확장되고, W3~W4에서는 AI 에이전트의 입력 데이터가 됩니다.

수집 대상 4자산

📈 주식 · ETF AAPL, SPY
Yahoo Finance — 개별 주식과 S&P 500 추종 ETF
🪙 암호화폐 BTC, ETH
CoinGecko — 비트코인·이더리움 USD·KRW 동시
💱 외환 DEXKOUS
FRED — 원/달러 환율 (매크로 지표)
📊 지수 ^GSPC, ^VIX
Yahoo Finance — S&P 500 지수와 VIX 공포지수

워크플로 전체 구조

🔧 W1 최종 워크플로 — 4자산 시세 한 번에 수집
Manual TriggerExecute Workflow 버튼 (이번 주는 수동 테스트)
HTTP #1Yahoo — AAPL, SPY 주가 (1개 요청에 여러 티커 가능)
HTTP #2CoinGecko — BTC, ETH 가격 (USD + KRW 동시)
HTTP #3FRED — DEXKOUS 원/달러 최신값
HTTP #4Yahoo — ^GSPC, ^VIX 지수
Merge4개 응답을 하나의 JSON 객체로 병합
Set (Fields)필요한 필드만 추출해 깔끔한 구조로 정리
(다음 주) SheetsW2에서 Google Sheets에 자동 기록 예정

병렬 처리 vs 순차 처리

4개의 HTTP Request를 병렬로 연결하면(Manual Trigger에서 4개 노드로 분기), 총 소요시간이 가장 느린 API 1개의 응답시간과 같아집니다. 순차로 연결하면 4개 응답시간의 합이 됩니다.

이번 주는 순차로 진행: 초보자에게는 Merge 노드가 복잡할 수 있어 이번 주는 4개 노드를 일직선으로 연결합니다. W2~W3에서 병렬 처리로 리팩터링할 예정.

Set 노드로 출력 정리

마지막 Set 노드에서 원하는 필드만 추출해 읽기 쉬운 형태로 만듭니다.

// Set 노드의 Values to Set (Mode: Manual Mapping)
timestamp     = {{ $now.toISO() }}
aapl_price    = {{ $('HTTP #1').item.json.chart.result[0].meta.regularMarketPrice }}
btc_usd       = {{ $('HTTP #2').item.json.bitcoin.usd }}
btc_krw       = {{ $('HTTP #2').item.json.bitcoin.krw }}
eth_usd       = {{ $('HTTP #2').item.json.ethereum.usd }}
usdkrw        = {{ $('HTTP #3').item.json.observations[0].value }}
sp500         = {{ $('HTTP #4').item.json.chart.result[0].meta.regularMarketPrice }}
vix           = {{ $('HTTP #4').item.json.chart.result[1].meta.regularMarketPrice }}
expression 문법 핵심: n8n에서 {{ ... }}는 JavaScript 표현식. $('노드이름')으로 특정 노드 결과 참조, $json은 이전 노드 결과, $now는 현재 시각.
Test & Debug

실행 테스트와 디버깅

Execute Workflow로 한 번 돌려보기

상단 중앙의 Execute Workflow 버튼을 누르면 전체 워크플로가 순차 실행됩니다. 각 노드가 초록색(성공)·빨간색(실패)로 표시되고, 클릭하면 Input / Output 탭에서 실제 데이터를 확인할 수 있습니다.

🚨 이번 주 자주 발생하는 오류
Yahoo에서 401 또는 429 에러가 뜹니다
User-Agent 헤더 누락이 대부분. Headers 섹션에 User-Agent: Mozilla/5.0 추가. 429면 잠시 대기 후 재시도 (같은 IP에서 너무 많이 호출).
CoinGecko에서 "ids" 파라미터 에러
반드시 coin id(예: bitcoin)를 사용해야 하며, 심볼(BTC)은 안 됩니다. 전체 id 목록은 /coins/list 엔드포인트로 확인.
FRED 응답이 비어있어요
API 키 오타 확인 + file_type=json 파라미터 누락 여부 확인. 기본값이 XML이라 JSON 파싱이 실패합니다.
Set 노드에서 expression이 undefined
JSON 경로 오타. 이전 노드의 Output 탭에서 실제 경로를 확인한 후 복사해 쓰세요. Yahoo는 chart.result[0]처럼 배열 인덱스 포함.

실행 로그(Executions) 활용

좌측 메뉴의 Executions에서 과거 실행 기록을 모두 확인할 수 있습니다. 실패한 실행을 클릭하면 어느 노드에서 무슨 데이터로 실패했는지 재현 가능합니다. 디버깅의 가장 강력한 도구입니다.

Completion Checklist

이번 주 완료 체크리스트

✅ 아래 항목이 모두 체크되면 W1 완료
n8n 접속 완료 — 초청 링크(hyeok2.app.n8n.cloud) / 직접 가입 / Docker 중 택1
FRED API 키 발급 완료 — 안전한 곳에 기록
CoinGecko API로 BTC 가격 가져오는 워크플로 단독 실행 성공
Yahoo Finance로 AAPL 주가 가져오는 워크플로 단독 실행 성공
FRED로 원/달러 환율 가져오는 워크플로 단독 실행 성공
4개 API를 하나의 워크플로에 연결해 Execute Workflow 성공
Set 노드로 8개 필드(가격·환율·지수)를 한 번에 출력
Executions 메뉴에서 실행 이력 확인
Homework

이번 주 과제

📝 HOMEWORK · W1
나만의 관심종목 포트폴리오 만들기
  • 본인이 관심 있는 한국 주식 2종목을 Yahoo Finance 티커로 찾아 추가 (예: 삼성전자 = 005930.KS)
  • 본인이 관심 있는 알트코인 2종목을 CoinGecko id로 찾아 추가 (예: solana, ripple)
  • 엔/달러 환율(DEXJPUS)과 나스닥 지수(^IXIC)를 추가
  • Execute Workflow 성공 화면을 캡처해 과제 제출
  • 선택 챌린지: Code 노드로 "원화 환산 BTC 가격"을 추가 필드로 계산
💡 W2 미리보기: 다음 주에는 이번 주 수집한 데이터를 Google Sheets에 자동 기록하고 시간별 변화를 추적하는 포트폴리오 대시보드를 완성합니다. 조건부 서식으로 등락을 색상 표시하고, 수익률도 자동 계산합니다.
References

참고 자료

자료용도
n8n 공식 문서
docs.n8n.io
모든 노드의 파라미터와 예제 — 막히면 첫 번째로 볼 곳
CoinGecko API Docs
docs.coingecko.com
무료 30 calls/min, 전체 엔드포인트 목록
Yahoo Finance v8 API
query1.finance.yahoo.com/v8
비공식이지만 안정적 — 티커 검색은 finance.yahoo.com에서
FRED API Docs
fred.stlouisfed.org/docs/api
80만+ 경제 시계열, 완전 무료
crontab.guruW2에서 사용할 Cron 표현식 생성기 — 예: 0 9 * * 1-5
W1 강의노트 · n8n 설치 + 첫 시세 수집 · 투자 자동화 과정 · 2026