📅 Sense Stock 개발 일지 (2025-07-15)
n8n, 사용자 질의 기반 경제/시장/주식 분석 자동화 파이프라인 구축 중 진행한 작업들을 정리합니다.
오늘은 사용자 맞춤 주식 리포트 자동화를 위한 데이터 저장 구조 정비와 판단 범위 설정 작업을 진행했습니다.
❓ 지난번 고민 내용
- 어떤 정보가 어떤 맥락에서 사용될지 참조 방식 설계
단순 저장만 반복하다 보니, 어떤 데이터가 있고 어떤 컬럼들이 포함돼 있는지 정확히 감이 안 왔다.
특히 GPT 프롬프트를 구성하려고 할 때,
→ "이걸 어떤 형식으로 불러와야 하지?"
→ "이 데이터로 어떤 질문에 답할 수 있지?"
→ "GPT가 참고할 수 있게 어떤 텍스트 구조로 줘야 하지?"
같은 고민이 쌓이기 시작했고, 취합한 데이터를 통해서 어떻게 응답을 해줄지 정리해 보았다.
🔁 주기별 저장 구조
📌 매일 저장 (Daily)
- 대상 데이터
- S&P500 일간 퍼포먼스
- Sector 별 성과
- S&P500 히트맵 이미지
- 실행 워크플로우
- 기존 Schedule Workflow (MARKET_DATA)에서 자동 트리거(매일 9시, 휴장 제외)
📌 매주 저장 (Weekly)
- 대상 데이터
- S&P500 주간/월간 성과
- Sector Performance
- Economic Calendar (이번주, 다음주)
- Earnings Calendar (이번주, 다음주)
- 저장 방식 변화
- 예전엔 각 이벤트마다 날짜를 반복해서 적었는데 → 이벤트 그룹의 첫 행에만 날짜 기입 방식으로 간결화
- => 불필요한 날짜기입 제외
- 이번주/다음주 데이터를 각각의 Sheet에 저장하고,
- 다음 주가 되면 기존 Sheet Content 모두 삭제 후 이번주/다음주 데이터 Sheet에 저장
- 예전엔 각 이벤트마다 날짜를 반복해서 적었는데 → 이벤트 그룹의 첫 행에만 날짜 기입 방식으로 간결화
- 트리거 시점
- 매주 월요일 오전 9시, n8n Schedule Trigger로 워크플로우 실행
📊 지금까지 확보한 데이터 목록
출처: Investing.com
1. Economic Calendar
- 날짜 / 시간 / 통화 / 중요도 / 이벤트명 / 이전 수치 포함
날짜 | 시간 | 외화 | 중요성 | 이벤트 | 실제 | 예측 | 이전 |
2025년 7월 15일 화요일 | 0:30 | USD | ★☆☆ (낮은 변동성이 예상됨) | 3개월물 국채 입찰 | 4.26% |
...
2. Earnings Calendar
- 회사명 / 티커 / 주당순이익 / 매출 / 총 시가 등 포함
날짜 | 회사 | 주당순이익 | 주당순이익_예측 | 매출 | 매출_예축 | 총 시가 | 티커 |
2025년 7월 14일 월요일 | 패스널 | -- | 0.2824 | -- | 2.07B | 49.64B | FAST |
...
3. S&P500 성과 지표 (일간/주간/월간/YTD)
종목명 | 일간 | 주간 | 월간 | YTD | 1년 | 3년 |
보잉 | 0.33% | 3.76% | 13.24% | 28.16% | 26.65% | 53.54% |
...
4. Sector 성과 및 추천
No. | Name | Perf Week | Perf Month | Perf Quart | Perf Half | Perf Year | Perf YTD | Recom | Avg Volume | Rel Volume | Change | Volume |
1 | Basic Materials | 0.16% | 2.96% | 15.00% | 13.82% | 6.49% | 14.00% | 2.02 | 735.76M | 0.97 | -0.09% | 710.99M |
5. 사용자 선택 질문(택3)
- 시장 흐름 분석 / 시나리오 예측 / 리스크 요인 / 정책/산업 연결 흐름 / 관심 종목 발굴
6. KYC Yes/No 선택 질문
예시 질문 ⇒ 질문 유형은 바뀔 수 있음, GPT가 생성
- 6개월 이내 단기 투자를 고려하고 계신가요?
- 반도체 관련 정보 중 글로벌 시장 동향이 더 중요하다고 생각하시나요?
- 정책 변화나 규제가 투자 결정에 중요한 영향을 준다고 보시나요?
- 즉시 투자 결정을 내리기 위한 정보가 필요하신가요?
- 투자 손실 위험을 크게 우려하고 계신가요?
어떤 판단까지 ‘의미 있게’ 도달할 수 있는가? 🤔
판단 수준 | 가능 여부 | 설명 |
🔹 단순 지표 해석 | ✅ | 금리 상승 → 성장주 타격 등 사전적 해석 |
🔹 성향 기반 데이터 우선 추천 | ✅ | 선택 질문 기반 매칭 |
🔹 섹터/종목 트렌드 설명 | ✅ | 실적 + 정책 + 수급 등 연결 |
🔹 시나리오별 중기 흐름 예측 | ✅ | 가정 기반 설명 가능 |
🔹 매수 종목 추천 | ⚠️ 제한적 | 직접 추천은 피하고, 후보 제시는 가능 |
🔹 개인 자산 기반 포트폴리오 | ❌ | 자산 정보 없으면 불가능 |
✔️ 사용자의 성향/관심/우선순위에 따라 어떤 데이터를 먼저 보여줄지 판단 가능
✔️ 해당 데이터를 바탕으로 시장의 중기 흐름, 주요 촉발 요인, 정책-섹터 간 연결을 구조화
✔️ 투자자의 성향별로 유의미한 시나리오 분기점을 제시하고, 대응 가능한 업종·ETF·테마를 분석 가능
❌ 단, 개별 종목 추천, 자산관리 설계, 직접 매수 타이밍 제공 등은 제한 있음
🚨 진행 중 겪은 이슈
1. 종목명 중복: 한국 investing 사이트의 한계
- ‘로우스’처럼 종목명이 겹치는 문제 발생
→ Google Sheet 저장시 변동률 값이 저장이 안됨(Output은 잘나오던데...음, Code를 수정하면돼기야하겠지만..Pass)
→ 실적/지표 데이터는 미국 investing.com으로 전환 (https://www.investing.com/equities/americas)
2. API 호출 과다 대비: 캐시 처리 필요성
Cache Data???
- 한 번 처리한 결과를 저장해두었다가, 같은 요청이 다시 들어오면 저장된 결과를 재사용하는 기술
현재 GPT 또는 크롤링 요청이 많아지면, 워크플로우가 느려지거나 API 한도 초과 문제가 생길 수 있다. 이럴 경우 대비해서 캐시 처리 구조를 고민 중이다.
⚠ 질문할때마다 여러 API를 호출하게되면....
✅ 예: 티커 기반 실적/뉴스 분석 결과가 이미 있는 경우엔
새로 요청하지 않고, 이전에 저장해둔 결과를 반환하도록 설계할 수 있음
이건 Slack 메시지 응답 속도 향상이나 서버 리소스 절약에도 도움이 될 수 있어서, 구조 개선을 위해 우선순위를 높게 잡고 있다.
❓ 다음 단계에서 고민 중인 것들
- Slack 메시지에서 어떤 포맷으로 이 정보를 구성하면 읽기 쉬우면서도 투자 인사이트가 생길까?
- 최종 응답을 확인해보고, 이제는 운영을 통해서 Data를 우선적으로 모아봐야겠다.
- API를 호출해서 Data를 가져오는게 아니라... 저장되어있는 혹은 단기간 저장(휘발성) Data를 가져오는 기능 구현 필요(Cache)
- 캐시 처리를 실제로 어떤 구조로 적용할 수 있을까? Google Sheet vs Supabase?
'Automation Tool > n8n Project' 카테고리의 다른 글
Sense Stock, D+20 (3) | 2025.07.28 |
---|---|
Sense Stock, D+19 (2) | 2025.07.22 |
Sense Stock, D+17 (0) | 2025.07.11 |
Sense Stock, D+16 (3) | 2025.07.09 |
Sense Stock, D+15 (0) | 2025.07.07 |
댓글