Skip to content

wlaud2000/TooSung

Repository files navigation

투성투성 (TooSungTooSung) 📰

AI 기반 주식 뉴스 · 공시 분석 비서 — 내 관심 종목 뉴스, AI가 알아서 읽고 나한테 맞게 정리해드려요


📌 프로젝트 소개

개인 투자자는 매일 쏟아지는 뉴스와 공시를 직접 읽고 해석하기가 어렵습니다.

투성투성은 이 문제를 해결하기 위해 만든 AI 기반 금융 뉴스 분석 서비스입니다.

  • 관심 종목의 뉴스를 자동 수집하고 호재/악재를 근거와 함께 판단합니다
  • 어려운 공시를 쉬운 말로 번역하고 투자 포인트를 짚어줍니다
  • 관심 종목의 오늘 분석 결과를 바탕으로 개인화된 아침 브리핑을 제공합니다

🛠 기술 스택

Backend

Java Spring Boot MySQL Redis

Frontend

React TypeScript TailwindCSS

AI

OpenAI

External APIs

  • DART OpenAPI — 전자공시 수집
  • 네이버 뉴스 API / Google News RSS — 뉴스 수집
  • Yahoo Finance API — 주가 및 종목 정보

🏗 시스템 아키텍처

투성투성v2전체아키텍처다이어그램 drawio

📊 ERD

image

🚀 로컬 실행 방법

사전 요구사항

  • Java 21
  • Docker & Docker Compose (MySQL, Redis)

1. 저장소 클론

git clone https://github.com/wlaud2000/TooSung.git
cd TooSung

2. 환경 변수 설정

cp .env.example .env
# .env 파일에 아래 값 입력
# OPENAI_API_KEY=
# DART_API_KEY=
# NAVER_CLIENT_ID=
# NAVER_CLIENT_SECRET=

3. 인프라 실행

docker-compose up -d

4. 애플리케이션 실행

./gradlew bootRun

서버는 기본적으로 http://localhost:8080에서 실행됩니다.


📁 프로젝트 구조

tuseong-tuseong/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/tuseong/
│   │   │       ├── domain/          # 도메인별 패키지 (news, disclosure, user, briefing...)
│   │   │       └── global/          # 공통 설정, 예외 처리, 보안
│   │   │
│   │   └── resources/
│   │       └── application.yml
└── docker-compose.yml

🔑 주요 기술적 도전과 해결

1. 관심 종목 기반 개인화 브리핑

관심 종목 목록을 기준으로 당일 LLM 분석이 완료된 뉴스와 공시를 필터링해 수집하고, 이를 컨텍스트로 구성해 LLM에 전달합니다. 유사도 검색 없이도 사용자별로 다른 브리핑을 생성할 수 있으며, Redis 캐싱으로 반복 요청 시 응답 속도를 개선했습니다.

2. 공시 자동 해석 파이프라인

DART API로 수집한 공시 원문을 LLM에 전달해 "쉬운 말 번역 + 투자 포인트" 구조로 재가공합니다. 프롬프트 설계 시 전문용어 해석 일관성을 유지하기 위해 Few-shot 예시를 활용했습니다.

3. 호재/악재 판단 + 근거 제시

감성 점수만 반환하는 기존 방식 대신, LLM이 판단 근거를 함께 생성하도록 Chain-of-Thought 프롬프팅을 적용했습니다.


🙋 개발자

이름 역할 GitHub
김지명 Backend / AI @wlaud2000

About

개인프로젝트 백엔드 리포지토리

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages