Skip to content

hakdang/assistant

Repository files navigation

AI Assistant

현대적인 Spring Boot + React 기반의 AI 채팅 어시스턴트 애플리케이션

🚀 주요 특징

  • 통합 아키텍처: Spring Boot와 React를 단일 JAR 파일로 패키징
  • React Router: SPA (Single Page Application) 라우팅 지원
  • 실시간 스트리밍: Server-Sent Events (SSE)를 통한 실시간 AI 응답
  • 다양한 템플릿: 용도별 시스템 프롬프트 제공
  • 한글 지원: UTF-8 인코딩 및 한글 텍스트 최적화
  • 반응형 UI: Bootstrap 5 기반의 모바일 친화적 인터페이스

🏗️ 아키텍처

┌─────────────────────┐    ┌─────────────────────┐
│   React Frontend    │────│  Spring Boot API    │
│   (Port 10220)      │    │   (Port 10220)      │
│                     │    │                     │
│ • Home Page         │    │ • REST APIs         │
│ • Chat Page         │    │ • SSE Streaming     │
│                     │    │ • AI Integration    │
└─────────────────────┘    └─────────────────────┘

🛠️ 기술 스택

Backend

  • Spring Boot 3.5.3
  • Kotlin
  • Spring WebMVC
  • Gradle (빌드 도구)

Frontend

  • React 18
  • TypeScript
  • Vite (번들러)
  • React Router DOM (라우팅)
  • Bootstrap 5 (CSS 프레임워크)
  • React Markdown (마크다운 렌더링)
  • React Syntax Highlighter (코드 하이라이팅)

🚦 실행 방법

1. 프로젝트 클론 및 빌드

git clone <repository-url>
cd assistant
./gradlew clean bootRun

2. 애플리케이션 접속

http://localhost:10220

3. 사용 가능한 페이지

  • 홈페이지: / - 애플리케이션 소개 및 기능 안내
  • 채팅: /chat - AI와의 실시간 대화

📝 주요 기능

1. 스마트 채팅

  • 실시간 스트리밍 응답
  • 마크다운 렌더링 지원
  • 코드 하이라이팅
  • 대화 히스토리 관리

2. 사용자 인터페이스

  • 반응형 디자인
  • 다크/라이트 테마
  • 사이드바 네비게이션
  • 타이핑 인디케이터

⚙️ 설정 정보

포트 설정

  • 애플리케이션 포트: 10220
  • JAR 파일명: ait.jar

인코딩

  • 전체 인코딩: UTF-8
  • SSE 스트리밍: UTF-8 최적화

🔧 개발 환경

필요 조건

  • Java 21+
  • Node.js 18+
  • Gradle 8.0+

개발 서버 실행

# 백엔드 + 프론트엔드 통합 실행
./gradlew bootRun

# 프론트엔드만 개발 서버 실행 (선택사항)
cd frontend
npm run dev

📋 API 문서

채팅 관련 API

POST /api/chat/stream
- 스트리밍 채팅 응답

GET /api/chat/system-prompts
- 시스템 프롬프트 목록 조회

응답 형식 (SSE)

data: {"content": "응답 텍스트", "isComplete": false}
data: {"content": "", "isComplete": true}

🛡️ 보안 고려사항

1UTF-8 인코딩: 모든 텍스트 통신에서 UTF-8 사용 2입력 검증: 클라이언트 입력에 대한 기본 검증 3에러 처리: 안전한 에러 메시지 반환

📈 성능 최적화

  • 단일 JAR 배포: 배포 복잡도 최소화
  • Vite 번들링: 최적화된 프론트엔드 빌드
  • 스트리밍 응답: 빠른 사용자 경험
  • 정적 파일 캐싱: 브라우저 캐싱 활용

🤝 기여 방법

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다.


© 2025 AI Assistant. Powered by Spring Boot + React + AI Models

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published