Chatbot 서비스를 구현 계획
- React.js
- 사용자 채팅 UI 제공
- API 연동을 통한 메시지 송수신 처리
- Spring Boot
- REST API 제공
- 비즈니스 로직 및 메시지 처리 담당
- NATS JetStream 연동
- MySQL
- 사용자, 대화, 메타데이터 등 핵심 데이터 영속화
- Redis
- 세션, 캐시, 임시 상태 관리
- NATS JetStream
- 서비스 간 비동기 메시지 처리
- Publish / Subscribe 기반 이벤트 전달
- Kubernetes
- 애플리케이션 배포 및 운영 환경
- QEMU 기반 로컬 환경
- 로컬에서 Kubernetes 환경을 구성하여 배포
- React 클라이언트에서 Spring Boot API 호출
- API 서버는 MySQL 및 Redis를 사용해 데이터와 상태 관리
- 비동기 작업 및 이벤트 전달은 NATS JetStream을 통해 처리
Kafka 대신 NATS JetStream은 Kafka보다 운영 복잡성이 낮음 NATs는 클라이언트로부터 전달된 데이터를 publish 하고, 필요한 서비스가 subscribe하는 용도로 충분한 기능을 제공
Kubernetes는 배포 환경 운영 실험을 위해 사용
QEMU 기반 로컬 환경에서 노드와 네트워크를 구성하여
배포, 재시작, 장애 상황을 가정 및 테스트