본문 바로가기
Automation Tool/n8n Project

Sense Stock, D+11

by 그때 그때 끄적 2025. 6. 26.

📅 Sense Stock 개발 일지 (2025-06-24)

n8n 기반 뉴스 요약 자동화 시스템 Sense Stock 구축 중 진행한 작업들을 정리합니다.

오늘은 GPT 분석 결과를 Slack으로 전달하는 방식에 대해 작업했습니다.

 

 

Step 1. 분석 결과 - HTML File 전송 구현 완료

지금은 GPT가 Markdown으로 생성한 리포트를 HTML로 변환한 후, Slack Upload File 노드로
HTML 파일을 첨부 전달
하는 구조를 쓰고 있다.
이 방식이 가독성, 구조 유지, Slack 환경 적합성 측면에서 가장 납득 가능한 선택이었다.

최종 Message 및 HTML 다운로드

 

💡 왜 이런 방식이 필요했나

Slack 메시지에서 Markdown은 일부만 지원되고, 특히 글씨 크기 조절이 불가능하다.
GPT 분석 결과처럼 긴 리포트는 제목/소제목/구조가 명확해야 하는데, Slack에 그냥 메시지로 넣으면

가독성이 처참해짐...

 

그래서 아래 조건을 모두 만족하는 형식이 필요했다

  • GPT가 Markdown 형식으로 잘 구조화한 결과물을 그대로 살리고
  • 사용자에겐 문서처럼 가독성 좋은 형태로 전달되며
  • 외부 저장소를 거치지 않고 Slack 내부에서 공유 가능할 것

<현재 구조의 장점>

  • ✅ Slack에서 메시지 대신 파일로 전달 → 가독성 확보
  • ✅ HTML이라 구조 유지 + 스타일 커스터마이징 가능
  • ✅ Markdown 기반이라 버전 관리와 자동화도 수월
  • ✅ Google Sheet, GitHub에 결과 로그 남기기 좋음

 

Step 2. 지금 적용 중인 구조

  1. GPT가 Markdown 리포트 생성
    → 질문 의도 분석 + 성향 분석 결과를 기반으로 메시지 구성
  2. Markdown → HTML 변환
    → 헤더, 리스트, 문단 스타일 등을 그대로 살림
  3. Binary 파일 생성 (코드 사용)
    → HTML 파일로 Slack에서 인식되도록 처리
  4. Slack Upload File 노드로 전달
    → 파일로 전달되기 때문에 미리보기 없음, 바로 열람 가능

Workflow / Slack File Upload Node

 

추가로,

  • .md 원본은 GitHub Repo에 저장
  • 해당 URL은 Google Sheet에 기록
    → 추후 데이터 분석 및 결과 이력 관리 용도로 활용

 

Step 3. 왜 이렇게 구성했는가

Slack에서 Markdown이 제대로 안 먹힌다

  • Slack 메시지에선 # 헤딩, --- 구분선, 큰 글씨 등 문서 구조를 살릴 수 없다.
  • GPT가 분석한 리포트를 그냥 메시지로 보여주면 구조가 무너지고 가독성이 처참함

긴 리포트일수록 눈에 잘 들어오는 구조가 중요한데,
Slack 메시지는 그걸 다 망가뜨렸다.

대안 - Markdown 구조는 유지하되, 문서처럼 보여주자

  • GPT가 만든 Markdown은 구조적으로 완성도가 높다
  • 이를 그대로 살리기 위해선 브라우저 기반 HTML이나 PDF 같은 문서 형태가 필요했다
  • 그중 가장 Slack과 잘 맞는 게 HTML 파일 첨부 방식이었다

 

🧨 Step 4. 뻘짓들...

 

1. Markdown → PDF (Pandoc)

  • pandoc으로 .md → .pdf 변환 시도
  • 영어는 잘 됐지만…

❌ 한글 깨짐
❌ 이모지 미지원
❌ LaTeX 환경 설정 너무 복잡

폰트 패치도 해보고 --pdf-engine=xelatex도 써봤지만 실패.

삽질만 왕창 했고, 시간만 날림.


2. HTML 코드 직접 전달

  • HTML을 Slack에 메시지로 직접 전달하는 방식도 시도
  • 이때 Upload File 노드 대신 코드로 파일 만들고 바로 전송했더니…

❌ Slack에서 HTML File이 미리보기 형식으로 나옴(+ HTML 코드 다나옴)
❌ 사용자가 브라우저로 여는 게 불가능(= 렌더링이 안돼서)

 

3. HTML → PDF (Puppeteer)

  • HTML을 예쁘게 만든 뒤, puppeteer로 PDF 변환
  • API 호출시 비용 발생, Pass

 

❓  다음 단계에서 고민 중인 것들

PDF 전달 방식까지는 구조가 잡혔다.
이제부터는 그 이후의 흐름과, 기능 고도화 방향에 집중하고 있다.

 

분석 결과 출력 양식 개선 + 데이터 신뢰성 검토

현재 출력 포맷은 성향 분석 → 시장 요약 → 시나리오 제안 형태지만,

  • 응답 형식이 들쭉날쭉하고
  • 가독성도 떨어지며
  • 무엇보다 데이터가 정확한지 확신하기 어렵다.

<현재 문제>

  • 프롬프트에 "당일 날짜는 2025-06-26이며, 해당 날짜 기준으로 분석해줘"라고 명시했지만
  • GPT가 실제로 그 날짜 기준 데이터를 참고하는지는 확인 불가
  • 예를 들어 “오늘 미국 증시는 하락세”라고 써놓고, 실제론 상승장이었을 수도 있음

→ 이건 단순 포맷 문제가 아니라 데이터 신뢰성 문제와 연결됨

 

  MARKET_DATA: 하루 1회 기준 데이터 활용

  • 🔍 GPT가 출력한 결과의 타당성 검증 프로세스
    • 당일 수집한 MARKET_DATA 요약과 비교
    • 주요 표현(하락/상승, 이슈 등)이 실제와 일치하는지 대조
  • 🛠 프롬프트 내 "이 데이터를 기반으로만 판단해" 식의 명시적 제한
    • 예: “아래 요약 내용을 기반으로만 시장 상황을 판단하라”
    • RAG 구조 또는 프롬프트 내부 제약 강화 고려

"신뢰 가능한 데이터 기반 응답을 어떻게 보장할 것인가"에 대한 구조를 추가

'Automation Tool > n8n Project' 카테고리의 다른 글

Sense Stock, D+13  (0) 2025.06.30
Sense Stock, D+12  (0) 2025.06.27
Sense Stock, D+10  (0) 2025.06.24
Sense Stock, D+9  (2) 2025.06.23
Sense Stock 개발 회고, 첫 번째  (0) 2025.06.20

댓글