Live Project · 2025.10

Azak
AI 주식 분석 플랫폼

멀티 LLM A/B 테스트와 적응형 프롬프트 시스템, FAISS 벡터 검색을 활용한 개인 투자자를 위한 실시간 종합 분석 서비스입니다.

실시간
뉴스 · 공시 · 재무
듀얼 AI
GPT + Claude 비교
3회/일
자동 분석
30초
응답 속도

해결하고자 한 문제

개인 투자자의 어려움

  • 01
    정보 과부하 — 하루 수천 건의 뉴스와 공시를 모두 읽을 수 없음
  • 02
    데이터 해석 — 주가, 재무제표, 투자자 동향 등 복잡한 데이터 분석 필요
  • 03
    시간 부족 — 직장인은 실시간 시장 모니터링 불가능

Azak의 해결 방법

  • 자동 데이터 수집 — 7가지 소스에서 실시간 데이터 수집
  • 멀티 AI A/B 테스트 — GPT-4o, DeepSeek, Qwen 등 성능 비교
  • 적응형 프롬프트 — 데이터 가용성에 따라 동적 프롬프트 생성
  • 실시간 알림 — 텔레그램으로 중요 변동사항 즉시 알림

시스템 아키텍처

3-레이어 구조로 데이터 수집부터 서비스까지

데이터 수집 레이어
10분 주기 자동 수집

KIS OpenAPI

주가, 호가, 투자자 수급, 재무지표

뉴스 크롤러

네이버/한경/매경 (6개 크롤러)

DART API

기업 공시

Reddit 크롤러

해외 투자자 sentiment

AI 분석 레이어
하루 3회: 10:05, 13:05, 15:45

적응형 프롬프트

7가지 데이터 소스 기반 동적 생성

멀티 LLM A/B

GPT-4o, DeepSeek, Qwen 성능 비교

RAG

FAISS 벡터 검색 유사 패턴 비교

신뢰도 평가

6티어 데이터 완전도 기반

서비스 레이어
사용자 인터페이스

REST API

FastAPI 61개 엔드포인트

웹 대시보드

Next.js 15 + React 19

알림

텔레그램 봇 실시간 푸시

API Server :8000

  • REST API 서빙
  • 인증/인가 처리
  • 사용자 요청 응답

Scheduler :8001

  • 크롤링 작업
  • AI 분석 배치
  • 백그라운드 작업

기술 스택

Backend

  • Python 3.11
    메인 언어
  • FastAPI
    61개 엔드포인트
  • SQLAlchemy 2.0
    21개 테이블 ORM
  • Celery + Redis
    비동기 작업 큐

Frontend

  • Next.js 15
    App Router, SSR
  • React 19
    UI 라이브러리
  • TypeScript
    타입 안정성
  • Tailwind CSS
    스타일링

AI / ML

  • OpenRouter
    멀티 LLM 게이트웨이
  • 6+ LLM 모델
    GPT, DeepSeek, Qwen
  • KoSimCSE
    한국어 임베딩 ($0)
  • FAISS
    벡터 검색 O(√N)

Infra

  • Supabase
    클라우드 DB
  • Redis 7
    캐시/브로커
  • Docker Compose
    오케스트레이션
  • PM2
    프로세스 관리

기술 챌린지

STAR 방식으로 정리한 문제 해결 과정

적응형 프롬프트 시스템

Situation

종목마다 수집 가능한 데이터가 다름. 고정 프롬프트로는 데이터 누락 시 품질 저하

Task

데이터 가용성에 따라 동적으로 최적의 프롬프트 생성

Action

7가지 데이터 소스별 조건부 섹션 생성 로직 구현

Result
  • 프롬프트 토큰 15-20% 절감
  • confidence_level 자동 산출
  • 일관된 리포트 품질 유지

멀티 LLM A/B 테스트

Situation

다양한 LLM 모델 중 최적 모델 선택 필요, 모델별 성능 비교 체계 부재

Task

모델별 예측 정확도 추적 및 A/B 테스트 시스템 구축

Action

모델 리더보드 구현, 일별 성능 트래킹, 동적 모델 활성화/비활성화 관리

Result
  • 모델별 정확도 실시간 비교 (Qwen3 Max 94.7%)
  • 최적 모델 자동 선택 체계 구축
  • 6개 이상 LLM 모델 동시 관리

벡터 검색 최적화

Situation

Milvus 서버 운영으로 인프라 복잡도 증가 (5개 컨테이너), OpenAI 임베딩 비용 발생

Task

인프라 단순화 + 임베딩 비용 제거

Action

Milvus→FAISS 마이그레이션 + KoSimCSE 로컬 모델 전환

Result
  • 검색 복잡도 O(N)→O(√N)
  • 임베딩 비용 100% 절감
  • 컨테이너 5개→3개

PyTorch 멀티스레딩 Segfault

Situation

BackgroundScheduler에서 PyTorch 모델 로딩 시 Segmentation Fault 발생

Task

스케줄러 안정화 + 멀티스레딩 문제 해결

Action

AsyncIOScheduler 전환 + Thread-safe Singleton 패턴 적용

Result
  • Segmentation Fault 완전 해결
  • 스케줄러 24/7 안정 운영

KIS API Rate Limit

Situation

4개 Collector 동시 실행 시 API Rate Limit 초과, ConnectError 빈발

Task

API 호출 안정화 + 동시 요청 제한

Action

Sliding Window Rate Limiter + Semaphore + Circuit Breaker 패턴

Result
  • API 연결 안정화
  • 정확한 Rate Limit 준수
  • 장애 전파 방지

성과

LLM 응답 시간
2.6x
80초 → 30초
벡터 검색
~10x
O(N) → O(√N)
임베딩 비용
100%
$0.00002/건 → $0
모델 정확도
94.7%
Qwen3 Max 1위

프로젝트 규모

21
DB 테이블
61
API 엔드포인트
18
프론트 페이지
14
크롤러
10K+
벡터 데이터

데이터 티어 구조

신뢰도 점수 산출을 위한 6단계 데이터 계층

T1
주가/거래량
KIS API
필수
T2
투자자 수급
KIS API
높음
T3
재무지표 (ROE, PER, PBR)
KIS API
높음
T4
기업정보 (시가총액, 업종)
KIS API
중간
T5
기술지표 (RSI, MACD)
자체 계산
중간
T6
뉴스 + 공시
다중 소스
보조

향후 계획

자체 학습 모델 개발
모델 평가 대시보드 고도화
백테스팅 시스템 구축
모바일 반응형 UI 개선