현대적인 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 │
└─────────────────────┘ └─────────────────────┘
- Spring Boot 3.5.3
- Kotlin
- Spring WebMVC
- Gradle (빌드 도구)
- React 18
- TypeScript
- Vite (번들러)
- React Router DOM (라우팅)
- Bootstrap 5 (CSS 프레임워크)
- React Markdown (마크다운 렌더링)
- React Syntax Highlighter (코드 하이라이팅)
git clone <repository-url>
cd assistant
./gradlew clean bootRunhttp://localhost:10220
- 홈페이지:
/- 애플리케이션 소개 및 기능 안내 - 채팅:
/chat- AI와의 실시간 대화
- 실시간 스트리밍 응답
- 마크다운 렌더링 지원
- 코드 하이라이팅
- 대화 히스토리 관리
- 반응형 디자인
- 다크/라이트 테마
- 사이드바 네비게이션
- 타이핑 인디케이터
- 애플리케이션 포트: 10220
- JAR 파일명: ait.jar
- 전체 인코딩: UTF-8
- SSE 스트리밍: UTF-8 최적화
- Java 21+
- Node.js 18+
- Gradle 8.0+
# 백엔드 + 프론트엔드 통합 실행
./gradlew bootRun
# 프론트엔드만 개발 서버 실행 (선택사항)
cd frontend
npm run devPOST /api/chat/stream
- 스트리밍 채팅 응답
GET /api/chat/system-prompts
- 시스템 프롬프트 목록 조회
data: {"content": "응답 텍스트", "isComplete": false}
data: {"content": "", "isComplete": true}
1UTF-8 인코딩: 모든 텍스트 통신에서 UTF-8 사용 2입력 검증: 클라이언트 입력에 대한 기본 검증 3에러 처리: 안전한 에러 메시지 반환
- 단일 JAR 배포: 배포 복잡도 최소화
- Vite 번들링: 최적화된 프론트엔드 빌드
- 스트리밍 응답: 빠른 사용자 경험
- 정적 파일 캐싱: 브라우저 캐싱 활용
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
이 프로젝트는 MIT 라이선스 하에 배포됩니다.
© 2025 AI Assistant. Powered by Spring Boot + React + AI Models