86 lines
2.8 KiB
Markdown
86 lines
2.8 KiB
Markdown
|
|
# 🖥️ Minecraft Dashboard - Backend
|
||
|
|
|
||
|
|
마인크래프트 서버 상태를 조회하고 실시간으로 전달하는 Node.js API 서버입니다.
|
||
|
|
|
||
|
|

|
||
|
|

|
||
|
|

|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🛠️ 기술 스택
|
||
|
|
|
||
|
|
| 기술 | 설명 |
|
||
|
|
| ------------------------- | ----------------- |
|
||
|
|
| **Node.js** | 런타임 환경 |
|
||
|
|
| **Express** | 웹 프레임워크 |
|
||
|
|
| **Socket.IO** | 실시간 통신 |
|
||
|
|
| **minecraft-server-util** | 서버 상태 조회 |
|
||
|
|
| **MySQL2** | 데이터베이스 연동 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📡 API 엔드포인트
|
||
|
|
|
||
|
|
### REST API
|
||
|
|
|
||
|
|
| 엔드포인트 | 설명 |
|
||
|
|
| ------------------ | -------------- |
|
||
|
|
| `GET /api/status` | 서버 상태 조회 |
|
||
|
|
| `GET /api/players` | 플레이어 목록 |
|
||
|
|
| `GET /api/worlds` | 월드 정보 |
|
||
|
|
|
||
|
|
### WebSocket 이벤트
|
||
|
|
|
||
|
|
| 이벤트 | 방향 | 설명 |
|
||
|
|
| ------------------ | --------------- | ---------------------- |
|
||
|
|
| `status` | Server → Client | 서버 상태 브로드캐스트 |
|
||
|
|
| `players` | Server → Client | 플레이어 목록 전송 |
|
||
|
|
| `get_player` | Client → Server | 플레이어 상세 요청 |
|
||
|
|
| `player_detail` | Server → Client | 플레이어 상세 응답 |
|
||
|
|
| `get_worlds` | Client → Server | 월드 목록 요청 |
|
||
|
|
| `worlds` | Server → Client | 월드 목록 응답 |
|
||
|
|
| `get_player_stats` | Client → Server | 플레이어 통계 요청 |
|
||
|
|
| `player_stats` | Server → Client | 플레이어 통계 응답 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚀 실행 방법
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 개발 모드
|
||
|
|
npm install
|
||
|
|
npm start
|
||
|
|
```
|
||
|
|
|
||
|
|
서버는 **포트 80**에서 실행됩니다.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📁 구조
|
||
|
|
|
||
|
|
```
|
||
|
|
backend/
|
||
|
|
├── server.js # 메인 서버 (Express + Socket.IO)
|
||
|
|
├── routes/
|
||
|
|
│ └── api.js # REST API 라우트
|
||
|
|
├── lib/
|
||
|
|
│ ├── db.js # MySQL 연결 및 번역 로드
|
||
|
|
│ ├── minecraft.js # 마인크래프트 서버 통신
|
||
|
|
│ ├── icons.js # 아이콘 유틸리티
|
||
|
|
│ └── s3.js # S3 스토리지 연동
|
||
|
|
└── data/ # 정적 데이터 파일
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚙️ 환경 변수
|
||
|
|
|
||
|
|
| 변수 | 설명 |
|
||
|
|
| ------------- | ------------------------ |
|
||
|
|
| `DB_HOST` | MariaDB 호스트 |
|
||
|
|
| `DB_USER` | 데이터베이스 사용자 |
|
||
|
|
| `DB_PASSWORD` | 데이터베이스 비밀번호 |
|
||
|
|
| `DB_NAME` | 데이터베이스 이름 |
|
||
|
|
| `MOD_API_URL` | 마인크래프트 Mod API URL |
|