**"FIND ME : VOID CITY"**는 가상의 운영체제 환경에서 진행되는 인터랙티브 스토리 게임입니다. 사용자는 'VOID CITY'라는 도시 속에 숨겨진 진실과 사라진 'Lucas'의 흔적을 찾아야 합니다.
- 실제 데스크탑 환경과 유사한 인터페이스를 제공하여 몰입감을 극대화합니다.
- 창 크기 조절, 드래그 앤 드롭, 아이콘 클릭 등 직관적인 상호작용을 지원합니다.
- 게임 내 터미널을 통해 명령어를 입력하고 데이터를 추출하는 시뮬레이션 기능을 제공합니다.
- 단서를 조합하여 숨겨진 파일과 메시지에 접근하세요.
- 스토리를 진행하며 다양한 미니게임과 과제를 해결해야 합니다.
- 각 챕터별로 새롭게 주어지는 과제들이 플레이어의 추리력을 시험합니다.
- Framework: React 19 (Vite)
- State Management: Zustand
- Data Fetching: TanStack Query (v5)
- Styling: Tailwind CSS 4, CSS Modules
- Interactive: React Rnd (Resizable/Draggable), Framer Motion
- Internationalization: i18next
- Core: Java 21, Spring Boot 3.5
- Database: PostgreSQL (JPA), Redis (Cache/Session)
- Security: Spring Security, JWT, OAuth2 Client
- Cloud Storage: AWS S3 (Assets/Media)
- Containerization: Docker, Kubernetes (EKS)
- CI/CD: Jenkins Pipeline
- Monitoring & Logging: ELK Stack (Elasticsearch, Logstash, Kibana), Prometheus, Grafana
- CDN: HLS.js for optimized video streaming
- 수집 파이프라인:
[Spring Boot]→[Filebeat]→[Logstash]→[Elasticsearch]→[Kibana]
- 하이브리드 모니터링: EKS 노드 자원 상태부터 Spring Boot Actuator 메트릭까지 단일 Grafana 대시보드에 통합하여 이상 징후 조기 감지 및 신속한 트러블슈팅을 지원합니다.
- 병목 구간 감지: Python
hint-worker(K8s CronJob)가 유저 실패율, 이탈률 등을 분석하여 플레이어가 가장 많이 막히는 구간을 탐지합니다. - 유저용 힌트 발송: Gemini API로 생성한 게임 속 조력자 'Lucas'의 은유적 힌트를 Mattermost 플레이어 채널로 자동 발송합니다.
- 개발자용 리포트 제공: 상세 분석 리포트를 팀 채널로 전송하여 비정상 구간의 난이도 조정을 유기적으로 지원합니다.
- Node.js (v20+)
- Java 21
- Docker & Docker Compose
-
레포지토리 클론
git clone https://github.com/helloLucas/find_me.git cd find_me -
프론트엔드 실행
cd frontend npm install npm run build npm run preview -
백엔드 실행
cd backend docker compose -f docker-compose.local.yml up --build -d


