본문 바로가기
n8n, Automation Tool/n8n Project

Sense Stock, D+7

by 그때 그때 끄적 2025. 6. 18.
반응형

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

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

오늘은 하나의 질문에서 출발해, 사용자의 투자 성향까지 유추할 수 있는 시스템 구조를 설계했습니다.

Slack Block Kit를 활용해 ‘단순 요약’과 ‘디테일 분석’ 두 가지로 분기하고, 특히 디테일 분석 모드에서는 질문 내용을 기반으로 성향을 유추하고, 이를 보완하는 선택형 질문까지 자동 생성하는 구조를 구현해 보았습니다.

https://cord-ai.tistory.com/225

 

n8n, Slack Block Kit

📌 Slack Block Kit이란?Slack Block Kit은 메시지를 시각적으로 더 풍부하고 인터랙티브하게 구성할 수 있게 해주는 Slack의 UI 구성 도구입니다.텍스트, 버튼, 드롭다운, 이미지 등 다양한 구성 요소를 JS

cord-ai.tistory.com

 

<현재 시스템에 대한 고민>

  • 투자자의 성향은 고정된 것이 아니라 시점·상황·마켓에 따라 유동적임
  • So, 사용자의 투자 성향을 파악할 수 있는 Form(선택형 질문)을 제시
  • But, 매 요청마다 모든 항목을 고르게 하는 건 번거롭고 사용자 이탈 유도 가능

초기 설문 한 번 받아놓고 끝내는 구조로는 이걸 담아낼 수 없었다.

질문 안에 이미 사용자의 성향이 들어있다.

 

🎯 핵심 통찰

  1. 투자 성향은 '변수'다, '상수'가 아니다.
    • → 성향은 시간 흐름, 경험 축적, 시장 상황에 따라 계속 변화함.
    • → 초기 고정 설문만으로는 충분하지 않음.
  2. "요청 내용 자체"에 사용자의 성향이 숨어 있다.
    • → “이 종목 왜 오르나요?” vs “지금 들어가도 될까요?”
    • → 동일한 종목에 대해 '정보형' 질문인지 '행동형' 질문인지로 위험 선호/기대 수익 등을 유추할 수 있음.

즉, 질문을 보면 그 사람이 지금 어떤 상태인지가 드러나는 것이다.

암묵적 성향 추론 시스템 도입

  • 초기 설문보다는, 질문 내용에서 자동 추론
“지금 원전 테마 들어가도 괜찮을까요?” → 중위험 수익 추구형
“단기 반등 나올 종목 알려주세요” → 단기 고위험 수익 추구형
“ETF는 안정적인가요?” → 저위험 분산투자 지향

🧱 Workflow 구조

디테일 분석 / 간단 요약 Button 활성화 이후 Workflow

Step 1. Slack Block Kit 에서 Button으로 분기

  • 사용자 질문 " 원전 주식 어때?"
  • Slack Block Kit으로 두 가지 버튼 제공
    ① 디테일 분석, ② 단순 요약

👉 디테일 분석은 KYC Agent → Question Parsing → Second Block으로 연결

👉 단순 요약은 바로 Slack 메시지 → Stock Expert로 연결(기존과 동일)

Step 2. Webhook으로 Button 활성화 값 전달

  • Webhook을 통해 질문이 전달되고, Switch 노드(Detail, Simple)에서 선택에 따라 분기됩니다.

  • <단순 요약 흐름>
    • 이 경우는 기존에 구현해두었던 요약 로직을 그대로 실행합니다.
      뉴스 크롤링 → 콘텐츠 요약 → Slack으로 전송.

Step 3. 디테일 분석 흐름

1. 질문 전달 및 분석

  • KYC Agent(OpenAI)가 질문을 받아
    • 어떤 성향인지 유추하고
    • 문장 안에 있는 종목/시점/이슈/행동 표현 등을 파악
더보기

Question Parsing (왜 필요했나?)

단순히 "분석해주세요"라고 했다고 다 똑같은 처리를 하면 안 된다.
그래서 질문을 구조적으로 파싱하기로 했다.

이유는 다음과 같다:

  • 이 질문이 행동 유도형인지, 단순한 정보 탐색형인지 구분
  • 문장 안에 시장/종목/타이밍/이슈 단어가 있는지 탐색
  • 이후 프롬프트를 자동 생성할 수 있는 구조화된 파라미터 확보

즉, 질문 자체를 프롬프트 데이터로 해석하는 전처리 과정인 셈이다.

 

 <Parsing Node Output>

[
  {
    "해석": "해당 질문은 원자력 산업 관련 주식에 대한 현재의 투자 가치, 성장 가능성, 및 시장 흐름에 대한 궁금증을 표현하고 있습니다. 질문자는 원전 주식의 전반적인 전망이나 투자 결정을 고려하고 있을 가능성이 높습니다.",
    "의도_질문_5개": [
      "원전 관련 주식에 대한 관심이 최근의 뉴스나 정책 변화에 의해 영향을 받았나요?",
      "장기적인 투자 관점을 고려하고 계신가요, 아니면 단기적인 수익을 추구하고 계신가요?",
      "원전 주식에 대해 긍정적인 견해와 부정적인 견해 각각 어떤 요소들이 있다고 생각하시나요?",
      "다른 섹터와의 비교를 통해 원전 주식의 매력을 어떻게 평가하고 싶으신가요?",
      "특정 원전 기업이나 ETF를 고려하고 계신가요, 아니면 일반적으로 원전 주식에 대한 시각을 알고 싶으신가요?"
    ]
  }
]

 

2. 성향 보완용 질문 5개 자동 생성

  • 질문은 Slack에 전송되어 사용자의 추가 입력을 유도

(추후 활용) 3. 파싱 결과 기반 룰 태그 생성

  • 예: “지금/들어가도” → #매수관점,
    “ETF/안정적” → #보수적, #장기지향
  • 이 태그는 initial_tags로 저장되어, 향후 성향 누적 계산에 활용

Step 4. 투자 성향은 로그 기반으로 누적 관리하기(추후 구현 예정)

성향은 한 번으로 정해지는 게 아니다.

그래서 매번 질문을 받을 때마다 유추한 성향 정보를 로그처럼 저장하고,
최근 5~10개의 데이터를 기반으로 현재 사용자의 성향을 점수화한다 (weighted profile).

이렇게 하면, 어느 시점이 되면 이런 피드백도 가능하다.

“요즘은 좀 더 안정적인 관점에서 질문을 주시네요.
관련된 종목을 정리해드릴게요.”

 

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

이번 구조를 만들면서 실제 구현보다 더 많이 생각하게 된 건 사용자에게 어떤 선택지를 어떻게 보여줄 것인가였다.

1. 선택지 설계에 대한 프롬프트 개선

현재는 질문 내용을 바탕으로 GPT가 5가지 선택형 질문을 생성하게 해뒀지만,
사실 나 스스로도 아직 “어떤 질문이 적절한가?”에 대한 기준이 부족하다.

  • 단순하게 분기된 선택지를 형식화하면 사용자가 원하지 않는 선택지가 들어갈 수 있고,
  • 반대로 너무 많은 옵션을 보여주면 그 자체가 피로감을 줄 수 있다.

결국 이 문제는 프롬프트 설계 문제이기도 하다.
“사용자의 질문 맥락 안에서, 필요한 만큼만 질문을 보조적으로 제시하라”는

명확한 기준을 GPT에게 어떻게 전달할 것인지가 핵심이다.


2. Slack Block 디자인 미정

프롬프트가 명확하지 않다 보니, 그 결과로 생성되는 선택지 형식도 고정되지 않았고,
자연스럽게 Slack에서 보여줄 Block Kit UI도 결정하지 못하고 있는 상태다.

  • 만약 질문이 지나치게 포멀하거나 딱딱한 표현이라면 사용자가 응답을 꺼릴 수도 있고,
  • 반대로 너무 감성적인 표현을 쓰면 신뢰도를 떨어뜨릴 수도 있음.

즉, 기술적으로 구현은 어렵지 않지만 표현 방식의 방향성을 정하지 못해 구조 설계가 막혀 있는 상태.

반응형

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

Sense Stock 개발 회고, 첫 번째  (0) 2025.06.20
Sense Stock, D+8  (0) 2025.06.19
Sense Stock, D+6 - 구조화된 질문이 필요한 이유  (4) 2025.06.12
Sense Stock, D+5  (4) 2025.06.06
Sense Stock, D+4  (4) 2025.06.04

댓글