자연어처리 AI 모델 기반 뉴스 분석 및 알림·뉴스레터 제공 서비스
뉴스톡은 자연어처리(NLP) 기술을 통해 주식 관련 뉴스를 분석하여 투자자에게 유용한 정보를 제공하는 모바일 애플리케이션입니다. 직장인 투자자처럼 시간이 부족한 개인 투자자를 위해, 뉴스를 자동 분석하여 종목별 호재·악재 여부를 점수화하고, 뉴스 요약 및 핵심 키워드 분석 결과를 실시간 알림 또는 뉴스레터 형태로 제공합니다. 이를 통해 사용자는 주가 등락의 원인을 빠르게 파악하고, 투자 판단에 필요한 인사이트를 효율적으로 얻을 수 있습니다.
- 프레임워크: Spring Boot 3.3.9
- 언어: Java 17
- 데이터베이스: MySQL 8.0.33
- 캐시: Redis 7.2.4
- 메시지 큐: Kafka 7.4.0
- 보안: Spring Security, JWT
- 문서화: Swagger (SpringDoc)
- ORM: JPA, QueryDSL
- 웹소켓: Spring WebSocket
- 메일: Spring Mail, Thymeleaf
- 프레임워크: React Native (Expo)
- 언어: TypeScript
- 상태 관리: Zustand, React Query
- 스타일링: TailwindCSS, NativeWind
- 차트: Victory Native, Gifted Charts
- 웹소켓: StompJS
- 네트워크: Axios
- 언어: Python
- 프레임워크 및 라이브러리: FastAPI (서버), PyTorch (딥러닝), Hugging Face Transformers (사전학습 모델)
- 모델: KoBERT (감성 분류, Transformers 기반)
- 텍스트 처리: KoNLPy (형태소 분석), SentencePiece (토큰화)
- 분석 기능: 뉴스 감성 분석, 뉴스 요약, 키워드 추출
- 프레임워크: Spring Boot
- 웹 크롤링: Selenium
- 브라우저 자동화: Selenium Grid
- 컨테이너화: Docker, Docker Compose
- 웹 서버: Nginx
- CI/CD: GitLab CI
- 종목별 뉴스 수집 및 분석
- AI 기반 호재/악재 점수 산출
- 뉴스 요약 및 키워드 추출
- 실시간 주가 정보
- 종목별 뉴스 목록
- 스크랩 기능
- 관심 종목 등록
- 맞춤형 뉴스레터
- 알림 서비스
- 회원가입/로그인
- 프로필 관리
- 뉴스 스크랩 기능
┌─────────────┐ ┌────────────┐ ┌────────────────┐
│ Frontend │ │ Nginx │ │ Backend │
│ React Native│◄───┼───Gateway──┼───►│ Spring Boot │
└─────────────┘ └────────────┘ └────────────────┘
▲
│
▼
┌────────────┐ ┌────────────────┐
│ AI │ │ Crawler │
│ FastAPI │◄───┼───Spring Boot │
└────────────┘ └────────────────┘
▲ ▲
│ │
▼ ▼
┌────────────┐ ┌────────────────┐
│ Kafka │ │ Selenium Grid │
└────────────┘ └────────────────┘
▲
│
▼
┌─────────────────────┐
│ Database │
│ MySQL Redis │
└─────────────────────┘
.
├── .git/
├── .gitlab-ci.yml
├── .gitmessage.txt
├── README.md
├── ai/ # AI 서비스 (FastAPI)
│ ├── main.py # FastAPI 애플리케이션
│ ├── models/ # AI 모델
│ ├── utils/ # 유틸리티 함수
│ └── requirements.txt
├── backend/ # 백엔드 서비스 (Spring Boot)
│ ├── src/ # 소스 코드
│ │ └── main/
│ │ ├── java/
│ │ │ └── newstock/
│ │ │ ├── controller/
│ │ │ ├── domain/
│ │ │ ├── common/
│ │ │ └── ...
│ │ └── resources/
│ ├── build.gradle # Gradle 설정
│ └── Dockerfile # 백엔드 도커파일
├── crawl/ # 크롤링 서비스
│ ├── src/
│ ├── build.gradle
│ └── Dockerfile
├── docker-compose.yml # 도커 컴포즈 설정
├── frontend/ # 프론트엔드 (React Native)
│ ├── app/ # 앱 화면
│ ├── api/ # API 클라이언트
│ ├── components/ # 컴포넌트
│ ├── assets/ # 정적 자원
│ └── package.json # NPM 패키지
└── nginx/ # Nginx 설정
# 가상환경 세팅
cd ai/
python -m venv venv
source venv/Scripts/activate
# 패키지 설치
pip install -r requirements.txt
# 서버 실행
uvicorn main:app --reload
# 가상환경 비활성화
deactivate# 환경 변수 설정 (.env 파일 생성)
# MySQL, API 키 등의 설정을 .env 파일에 추가
# 도커 컴포즈 실행
docker-compose up -d- Docker 및 Docker Compose
- Java 17 이상
- Python 3.9 이상
- Node.js 16 이상
- 최소 8GB RAM, 20GB 저장공간