그때 그때 끄적 2025. 6. 2. 18:05

📅 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 노드로 텍스트 병합 진행
  • 이 병합된 요약 결과를 기반으로 추후 종합 분석 결과 생성 예정

Workflow

 

발생한 주요 에러 및 대응

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 재사용

- ... "이런 고민들을 다음 글에서 풀어보려고 합니다"