최익준
모든 프로젝트

제품2024.02 – 2025.07

Wisemind

ChatGPT와 HyperCLOVA X 기반의 LLM 금융 분석 어시스턴트.

왜 만들었나

금융 데이터는 넘치지만 읽어내려면 전문성이 필요합니다. 2024년 초 "AI가 주니어 애널리스트의 일을 대체할 것"이라는 기사가 이어지던 때, 그 일을 직접 만들어 보면 어디까지 되고 어디서부터 안 되는지 알 수 있겠다고 생각했습니다. 한국투자증권 Open API로 시세와 재무 데이터를 받아 LLM이 분석 리포트를 쓰게 하는 실험에서 시작해, Wisemind라는 서비스로 이어졌습니다.

무엇을 만들었나

  • 종목 리서치 리포트. 재무 지표를 기준으로 종목 하나를 분석한 리포트를 정해진 형식으로 생성합니다.
  • 포트폴리오 비중 제안. 관심 종목 전체에 대해 비중을 제안하는 리포트.
  • 실시간 알림. 관심 종목의 시세를 받아 Slack으로 보내는 알림.
  • 일상 언어 질의. 질문을 하면 근거 수치와 함께 분석을 돌려주는 대화형 인터페이스.

구조

React 프론트엔드, NestJS API, 그리고 ChatGPT와 HyperCLOVA X를 호출하는 FastAPI AI 서버의 3-서비스 구조입니다. AWS에 올리고 Cloudflare를 앞에 두었습니다.

핵심은 모델이 아니라 모델 앞뒤였습니다.

  • 데이터 정규화. API 응답을 단위가 고정된 스냅샷 타입으로 정리한 뒤에만 모델에 넘깁니다. 이 계층이 리포트 품질의 상한을 정했습니다.
  • 프롬프트 구조. 역할·데이터·과제의 세 층으로 나누고 리포트 섹션을 고정해, 매번 같은 형식이 나오게 했습니다.
  • 출력 검증. 섹션 존재 여부, 숫자 파싱, 입력에 없는 숫자의 등장을 검사해 통과하지 못한 리포트는 버리고 다시 요청합니다.
  • 토큰과 호출 한도. 접근 토큰을 캐시하고, 호출 사이 간격과 지수 백오프로 증권사 API 한도를 지켰습니다.

배운 점

데이터를 정리해 넘기고 형식을 고정하고 검증을 붙이면 "리포트처럼 보이는 것"은 안정적으로 나옵니다. 그 리포트가 맞는지는 전혀 다른 문제였습니다. 다시 만든다면 자유 텍스트 대신 JSON 스키마로 받고, 수치 계산은 코드가 하고 모델에는 해석만 맡기며, 프롬프트를 바꿀 때마다 비교할 평가 세트를 먼저 만들겠습니다. 두 LLM 제공자 위에 제품을 올리면서 추상화 경계와 가드레일의 위치에 대해서도 많이 배웠습니다.

2025년 7월에 운영을 마쳤습니다. 설계와 구현의 세부는 아래 글에 정리했습니다.