📅 Sense Stock 개발 일지 (2025-07-11)
n8n, 사용자 질의 기반 경제/시장/주식 분석 자동화 파이프라인 구축 중 진행한 작업들을 정리합니다.
오늘은 S&P500 성과 및 티커 데이터 수집 자동화를 고도화하고, Slack 메시지 루프 이슈를 해결했습니다.
❓ 지난번 고민 내용
- 이제는 수집한 데이터들을 실제로 최종 응답에 어떻게 활용할 것인지, 어떻게 똑똑하게 꺼내 쓸지
S&P500은 단순한 지수 그 이상이다.
미국의 증권거래소에 상장된 500개의 가장 큰 기업들의 주가 성과를 추적하는 이 지표는, 전체 시장 흐름을 파악하는 기준점이 되기 때문에 분석 자동화의 핵심이 될 수밖에 없다.
처음에는 시각적으로만 보여주는 Heatmap 이미지로 충분하다고 생각했는데, 정작 사용자가 “이 종목 최근 주간 성과는 어때?”라고 물으면 답해줄 수 없다는 문제가 생겼다.
그래서 종목별 기간 성과 데이터를 직접 추출하고 정리하는 쪽으로 방향을 틀었다.
📑 데이터 수집
1. 수집 데이터
2. 데이터 저장 구조
Ticker
- AI가 추천 종목을 전달하고, 사용자가 해당 종목을 궁금해하면(Event만 저장, Google sheet) => 요약본 전달
- 최종 응답 이후 => 추가 요청에 대한 응답 참조 Data로 활용
Sector / S&P500
- 매일 저장 / 주마다 저장(주간, 월간, 연간 … 등 , Data 변동값 생기면 갱신하는 방식으로 진행), Google Sheet 저장
경제(Economic) / 실적(Earings)
- 이번주/다음주(주마다 저장), Google sheet 저장
데이터 종류 | 저장 주기 | 활용 목적 |
Ticker | Event 기반 저장 | AI 추천 종목 요약 응답용 |
Sector/S&P500 | 일별 + 주기적 - 주마다 저장하되, 값을 갱신하는 방식(Data 누적 X) |
분석, 리포트, 비교/필터링 |
Economic/Earnings | 주별 저장 | 경제 캘린더 기반 응답용 |
🚨 진행 중 겪은 이슈들
1. S&P500 = 500개가 아닌 498개?
- investing.com 데이터 기준으로는 일부 종목이 누락되어 있었다.
- 실제로도 S&P500이라고해서 딱 500개는 아니라고한다. 현재는 503개
- 편입/퇴출 종목 업데이트가 누락된 것으로 보임
- 무료 API/크롤링의 한계… 결국 이게 왜 다들 유료 API 쓰는지 실감하게 됨
- 추후 TradingView 기반 API 도입 고려 중
- 예: tradingview-scraper, Apify 스크래퍼, Bright Data 등
- 티커 이모지도 가져올 수 있음 좋을텐데...
2. Playwright 로그인 이슈
- 자동화 도중 클릭 타이밍이 지체되면 로그인창이 튀어나옴
- Waiting 시간을 짧게 가져가는 방식으로 해결
3. Slack 메시지 무한 루프 문제
- Slack Trigger에서 Bot이 보낸 메시지를 내가 보낸 것으로 착각
(= 이런 이슈가 있을거라고는 생각못했다 😂)
- 특히 App DM 채널(channel_type: im)에서 이슈 발생
- 봇 메시지에도 user 필드가 들어가며, 이걸 사용자 메시지로 인식
- => 무한루프 발생(같은 질문 무한반복으로 올라옴)
- 해결 방법
- if 노드에서 bot_id 확인하여 필터링 가능하지만, 트리거 자체는 실행됨
- ⇒ 차라리 App DM 비활성화 + 비공개 채널을 따로 구성하는 구조로 변경
- 이 방식이 훨씬 깔끔하고 안정적
❓ 다음 단계에서 고민 중인 것들
1. Playwright 구조에 대한 더 깊은 이해 필요
2. 어떤 정보가 어떤 맥락에서 사용될지 참조 방식 설계
3. 프롬프트 구조 변경
4. 참조 데이터를 기반으로 최종 응답 확인
'Automation Tool > n8n Project' 카테고리의 다른 글
Sense Stock, D+18 (0) | 2025.07.15 |
---|---|
Sense Stock, D+16 (3) | 2025.07.09 |
Sense Stock, D+15 (0) | 2025.07.07 |
Sense Stock 개발 회고, 두 번째 (1) | 2025.07.04 |
Sense Stock, D+14 (0) | 2025.07.01 |
댓글