"서기 2324년, 중앙 AI가 지배하는 우주선에 오신 것을 환영합니다."
AI 판사 기반 몰입형 SF 서바이벌 마피아 게임 프로젝트입니다.
- Docker & Docker Compose
- Node.js 20+ (로컬 IDE용)
- Java 17 (로컬 IDE용)
# 1. 프로젝트 초기화 (최초 1회)
chmod +x ./scripts/*.sh # 리눅스일시
./scripts/init.sh
# 2. .env 파일 수정
# 생성된 .env 파일에 환경 변수 등을 입력하세요.
# 3. 개발 시작
# 3-a. 인프라만 실행 (AI, MySQL, Redis, LiveKit)
docker-compose up -d
# 3-b. 각 서비스 실행 (개별 터미널 사용 권장)
# Backend
cd backend && ./gradlew bootrun
# Frontend
cd frontend && npm run dev
| 서비스 | URL | 비고 |
|---|---|---|
| Frontend | http://localhost:5173 | React 개발 서버 |
| Backend | http://localhost:8080/swagger-ui/index.html | API 문서 |
| AI Server | http://localhost:8000/docs | AI API 문서 |
| LiveKit | http://localhost:7880 | WebRTC Media Server |
| Dozzle | https://localhost:8888 | 전체 컨테이너 Log 및 사용률 확인 |
| redis-commander | http://localhost:8081 | redis 관리 |
- 모든 Secret Key는
.env파일에서 관리하며 Git에 업로드하지 않습니다. - 운영 배포 시 Jenkins 파이프라인을 통해 환경 변수가 주입됩니다.
| Layer | Technologies |
|---|---|
| Frontend | React 18, Vite, React Vits, TailwindCSS, StompJS, Antd, Axios, Livekit-client, Zustand, React-OAuth |
| Backend | Spring Boot 3.5.9, Java 17, JPA, Redis, MySQL, WebSocket, Security, livekit, JWT, Swagger, Email SMTP, OAuth2 |
| AI | Python 3.11, FastAPI, OpenAI API, Uvicorn |
| Infra | Docker Compose, Nginx, Dozzle, RedisCommander |
.
|-- backend/ # Spring Boot backend (REST API, WebSocket, Auth)
| |-- build.gradle # Gradle 빌드 스크립트
| |-- Dockerfile # 컨테이너 이미지를 위한 Dockerfile
| |-- gradlew / gradlew.bat # 로컬 빌드/실행 래퍼
| |-- src/
| | |-- main/
| | | |-- java/
| | | | |-- com/
| | | | | |-- project/
| | | | | | |-- controller/ # HTTP 요청을 처리하는 컨트롤러
| | | | | | |-- service/ # 비즈니스 로직
| | | | | | |-- repository/ # JPA 리포지토리 (데이터 접근)
| | | | | | |-- domain/ # 엔티티 / 도메인 모델
| | | | | | |-- dto/ # 요청/응답용 DTO
| | | | | | |-- config/ # Spring 설정 클래스
| | | | | | |-- security/ # 인증/인가 관련 (JWT, OAuth2)
| | | | | | |-- websocket/ # WebSocket 핸들러/구성
| | | |-- resources/
| | | | |-- application.properties # 애플리케이션 설정
| | | | |-- static/ # 정적 파일 (필요 시)
| | | | |-- templates/ # 서버템플릿 (Thymeleaf 등, 필요 시)
| | |-- test/ # 단위/통합 테스트
| |-- init.sql # DB 초기 스크립트
| |-- scripts/ # 배포/운영/편의 스크립트
|-- frontend/ # React + Vite 프론트엔드
| |-- package.json # npm/패키지 설정
| |-- vite.config.js # Vite 설정
| |-- tailwind.config.js # Tailwind 설정
| |-- src/
| | |-- main.jsx # 엔트리 포인트
| | |-- index.css # 전역 스타일
| | |-- api/ # 서버 호출 로직 (Axios instance, endpoints)
| | |-- components/ # 재사용 컴포넌트
| | |-- pages/ # 페이지 컴포넌트
| | |-- router/ # 라우팅 설정
| | |-- store/ # Zustand 또는 Redux 상태 관리
| | |-- assets/ # 이미지, 폰트 등 정적 자산
| |-- public/ # 정적 퍼블릭 파일
|-- ai/ # AI 서비스 (FastAPI, 모델 로직)
| |-- Dockerfile # AI 컨테이너 이미지
| |-- requirements.txt # Python 의존성
| |-- app/
| | |-- main.py # FastAPI 엔트리
| | |-- core/
| | | |-- config.py # 설정 관리
| | | |-- preprocess.py # 데이터 전처리 유틸
| | |-- models/ # 모델 정의/로딩 코드
| | |-- routers/ # API 라우터 모듈
| | |-- services/ # 모델 추론 및 유틸 서비스
|-- root/ # 인프라/배포 관련 설정
|-- docker-compose.yml # 로컬 개발용 Compose
|-- docker-compose.prod.yml # 프로덕션용 Compose
|-- livekit.yaml # LiveKit 설정
|-- Jenkinsfile # CI/CD 파이프라인
|-- scripts/ # 인프라 관련 스크립트
|-- docs/ # 문서 및 이미지
|-- README.md # 프로젝트 문서





















