Sense Stock, D+2
📅 Sense Stock 개발 일지 (2025-06-02)
n8n 기반 뉴스 요약 자동화 시스템 Sense Stock 구축 중 진행한 작업들을 정리합니다.
오늘은 주로 기사 요약 파이프라인 개선, 오류 대응, 반복 처리 구조 개선 등을 다뤘습니다.
🔧 사용 도구
도구 | 역할 |
🔷 n8n | 전체 워크플로우 자동화 도구 |
🔷 Firecrawl.dev | 사이트 內 기사 검색 + URL 수집 API (Firecrawl MCP Sever) |
🔷 ChatGPT | 키워드 정제 및 후속 분석 |
✅ 지난 결과 정리
구현 항목 | 결과 |
사용자 키워드 입력 | "원전" 테스트 |
Firecrawl 검색 API 사용 | 성공 |
관련 기사 URL 추출 | 성공(총 3개의 뉴스 기사 사이트에서 URL 추출) |
기사 요약 | 금일 진행 |
- 오늘의 목표
- 크롤링한 기사 URL들을 반복 순회하며 GPT 기반 요약 처리 자동화
- Firecrawl + n8n 조합을 통한 기사 수집 및 요약 워크플로우 안정화
- 요약된 기사들을 하나의 통합 분석 텍스트로 병합하여, 후속 분석에 활용 가능하도록 준비
- 발생 가능한 크롤링 실패, API 오류 등에 대한 예외 처리 로직 확인 및 대응 준비
- 진행 내용
- Split In Batches 노드를 활용해 기사 URL 순회 요약 처리 구조 구현
- Firecrawl로 수집한 URL에 대해 OpenAI GPT 요약 자동화 적용
- 개별 요약본을 Function 노드로 텍스트 병합하여 종합 결과 생성 준비
- Yahoo Finance 기사 위주로 테스트 진행, Firecrawl 내장 요약 기능은 사용 보류
Google Sheets 연동 오류(Google Drive API 미활성화) 해결n8n 서버 미응답으로 발생한 Webhook 루프 및 메모리 초과 문제 확인- 일부 크롤링 실패 URL에 대해 재시도 및 예외 처리 로직 기획 중
✅ 금일 진행 사항
Step 1. 기사 URL 순회 요약 처리
- 추출한 기사 URL을 Loop 구조로 순회하며, 각 URL마다 OpenAI GPT를 통해 요약 수행
- Split In Batches 노드를 사용해 여러 기사에 대해 요약 분할 처리 구현
https://cord-ai.tistory.com/219
🔄 n8n의 Loop Over Items 노드, 도대체 어떻게 돌아가는 걸까?
최근 n8n을 쓰면서 가장 헷갈렸던 노드 중 하나가 바로 Loop Over Items (또는 Split In Batches) 노드였습니다. 공식 문서나 인터넷에서도 딱 이해되는 설명이 부족해서, 유튜브에서 어떤 개발자가 설명한
cord-ai.tistory.com
🔍 중간 이슈
- Firecrawl의 자체 요약 기능 사용 미흡으로 사용 보류 (Docs 확인 필요)
- 총 3개 사이트에서 기사 크롤링을 시도했으나, 시간/비용 문제로 중단
- Yahoo Finance 기사만 우선 적용해 테스트 진행
https://cord-ai.tistory.com/218
🔥 Firecrawl 완전정복: 웹 자동화 & AI 추출 도구 정리
웹페이지 크롤링, 콘텐츠 추출, 구조화 데이터 분석까지Firecrawl 하나로 끝내는 웹 자동화 도구 가이드🔧 Firecrawl란?Firecrawl은 웹 데이터를 효율적으로 수집하고 가공하는 데 특화된 AI 기반 도구
cord-ai.tistory.com
Step 2. 기사 요약본 통합
- Firecrawl MCP Server에 여러 URL을 보내도 하나만 처리되는 이슈 발생 → Split In Batches로 해결
- 개별 요약된 기사 결과를 수집해 Function 노드로 텍스트 병합 진행
- 이 병합된 요약 결과를 기반으로 추후 종합 분석 결과 생성 예정
발생한 주요 에러 및 대응
1. Google Sheets API 연동 오류
Google Drive API has not been used in project ... then retry.
- 원인: Google Sheets 연동 시 Google Drive API 미활성화
- 해결: 해당 콘솔 링크에서 API 활성화 → 몇 분 후 재시도
2. n8n 무한 루프 & 메모리 초과
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed
원인:
- ngrok은 잘 연결되었지만, n8n 서버가 비활성 상태거나 5678 포트를 리슨하지 않음
- 이로 인해 Webhook 루프가 발생 → 메모리 초과
해결방법:
추후 진행예정
- Node 실행 시 메모리 할당량 증가
node --max-old-space-size=4096
- docker-compose.yml에 재시작 설정 추가
--restart: always
docker run -d \
--name n8n \
-p 5678:5678 \
-e NODE_OPTIONS="--max-old-space-size=4096" \
--restart=always \
n8nio/n8n
3. URL Crawling 실패
- 일부 기사에서 크롤링 실패: 502 Bad Gateway, 요청 시간 초과, 쿠키 필요 등
- 대응 방안:
- 실패 감지 후 예외 처리
- Function 노드에서 크롤링 결과 없는 경우 재시도 로직 적용 예정
- Firecrawl_search - waitFor Parameter 수정, 동적 콘텐츠 로딩 대기 시간(ms)
🧱 Workflow 구조
사용자 요청
↓
Best Keyword 추출 (GPT)
↓
Yahoo Finance 검색 → 기사 URL 리스트 생성
↓
각 URL 순회하며 요약 (Split In Batches + OpenAI)
↓
기사 요약 결과 병합
↓
## [미구현] 최종 통합 요약 & 전략 분석
❓ 다음 단계에서 고민 중인 것들
- 모든 요약 결과를 한 번에 GPT로 전달하는 구조가 적절할까?
- 실패한 URL에 대해서는 재시도할까, 아니면 예외처리만 할까?
- 사용자 요청 내용과 직접 연결하는 워크플로우는 어떻게 확장할 수 있을까?
- Firecrawl를 계속 사용해야할까?
- 이전노드에서 추출한 Output 재사용
- ... "이런 고민들을 다음 글에서 풀어보려고 합니다"