Azak
AI 주식 분석 플랫폼
멀티 LLM A/B 테스트와 적응형 프롬프트 시스템, FAISS 벡터 검색을 활용한 개인 투자자를 위한 실시간 종합 분석 서비스입니다.
해결하고자 한 문제
개인 투자자의 어려움
- 01정보 과부하 — 하루 수천 건의 뉴스와 공시를 모두 읽을 수 없음
- 02데이터 해석 — 주가, 재무제표, 투자자 동향 등 복잡한 데이터 분석 필요
- 03시간 부족 — 직장인은 실시간 시장 모니터링 불가능
Azak의 해결 방법
- →자동 데이터 수집 — 7가지 소스에서 실시간 데이터 수집
- →멀티 AI A/B 테스트 — GPT-4o, DeepSeek, Qwen 등 성능 비교
- →적응형 프롬프트 — 데이터 가용성에 따라 동적 프롬프트 생성
- →실시간 알림 — 텔레그램으로 중요 변동사항 즉시 알림
시스템 아키텍처
3-레이어 구조로 데이터 수집부터 서비스까지
KIS OpenAPI
주가, 호가, 투자자 수급, 재무지표
뉴스 크롤러
네이버/한경/매경 (6개 크롤러)
DART API
기업 공시
Reddit 크롤러
해외 투자자 sentiment
적응형 프롬프트
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메인 언어
- FastAPI61개 엔드포인트
- SQLAlchemy 2.021개 테이블 ORM
- Celery + Redis비동기 작업 큐
Frontend
- Next.js 15App Router, SSR
- React 19UI 라이브러리
- 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 방식으로 정리한 문제 해결 과정
적응형 프롬프트 시스템
종목마다 수집 가능한 데이터가 다름. 고정 프롬프트로는 데이터 누락 시 품질 저하
데이터 가용성에 따라 동적으로 최적의 프롬프트 생성
7가지 데이터 소스별 조건부 섹션 생성 로직 구현
- 프롬프트 토큰 15-20% 절감
- confidence_level 자동 산출
- 일관된 리포트 품질 유지
멀티 LLM A/B 테스트
다양한 LLM 모델 중 최적 모델 선택 필요, 모델별 성능 비교 체계 부재
모델별 예측 정확도 추적 및 A/B 테스트 시스템 구축
모델 리더보드 구현, 일별 성능 트래킹, 동적 모델 활성화/비활성화 관리
- 모델별 정확도 실시간 비교 (Qwen3 Max 94.7%)
- 최적 모델 자동 선택 체계 구축
- 6개 이상 LLM 모델 동시 관리
벡터 검색 최적화
Milvus 서버 운영으로 인프라 복잡도 증가 (5개 컨테이너), OpenAI 임베딩 비용 발생
인프라 단순화 + 임베딩 비용 제거
Milvus→FAISS 마이그레이션 + KoSimCSE 로컬 모델 전환
- 검색 복잡도 O(N)→O(√N)
- 임베딩 비용 100% 절감
- 컨테이너 5개→3개
PyTorch 멀티스레딩 Segfault
BackgroundScheduler에서 PyTorch 모델 로딩 시 Segmentation Fault 발생
스케줄러 안정화 + 멀티스레딩 문제 해결
AsyncIOScheduler 전환 + Thread-safe Singleton 패턴 적용
- Segmentation Fault 완전 해결
- 스케줄러 24/7 안정 운영
KIS API Rate Limit
4개 Collector 동시 실행 시 API Rate Limit 초과, ConnectError 빈발
API 호출 안정화 + 동시 요청 제한
Sliding Window Rate Limiter + Semaphore + Circuit Breaker 패턴
- API 연결 안정화
- 정확한 Rate Limit 준수
- 장애 전파 방지
성과
프로젝트 규모
데이터 티어 구조
신뢰도 점수 산출을 위한 6단계 데이터 계층