"동접자 수에 속지 마세요. 진짜 쾌적한 매칭은 따로 있습니다." > 실시간 동시 접속자 수(PCCU)와 매칭 필터 알고리즘을 결합하여 게임 서비스 상태 및 유저 체감 품질을 지표화한 데이터 엔지니어링 프로젝트입니다.
단순히 "동접자가 많다"는 정보만으로는 실제 유저가 겪는 매칭 속도, 서버 부하, 티어별 분포를 설명할 수 없습니다. 본 프로젝트는 Steam API와 커뮤니티 여론 데이터를 수집하고, 독자적인 '적합 유저 유입 속도' 수식을 적용하여 유저에게 최적의 플레이 타이밍을 제안합니다.
- Real-time Tracking: Steam API 및 외부 소스를 활용한 실시간 동시 접속자 모니터링
- Comfort Index Calculation: 동접자 변화율, 티어 분포, 서버 상태를 조합한 독자적 알고리즘 산출
- Time-series Prediction: 과거 데이터를 바탕으로 향후 24시간 내 접속자 추이 예측
- Multi-Game Support: Apex Legends, PUBG, Dota 2 등 다양한 장르 지원
—
유저가 체감하는 매칭 품질을 결정하는 핵심 로직입니다. CCU가 크더라도 필터 조건이 까다로울수록 실제 매칭 가능 인원은 급감합니다.
-
$p_{g,t}^{net}$ : 허용 가능한 네트워크/지역 조건 (핑, 서버 리전 분산) -
$p_{g,t}^{skill}$ : 유사 실력 매칭 가능 비율 (실력대 분포 기반) -
$p_{g,t}^{mode}$ : 큐 분산 정도 (랭크/일반/모드 점유율) -
$p_{g,t}^{party}$ : 솔로/프리메이드 분리로 인한 유효 비율 -
$p_{g,t}^{fine}$ : 정밀 매칭 제약 (스킬/규칙 추가 제약)
—
- Data Collection: Python 스크립트로 Steam 및 게임 서버 API 정기 호출
- Processing: DuckDB를 이용하여 로컬 환경에서 대용량 데이터의 빠른 집계 및 클렌징 수행
- Storage: 처리된 데이터를 Supabase로 마이그레이션하여 데이터 영속성 확보 (예정)
- Visualization: 실시간 연동 대시보드를 통해 사용자에게 지표 제공 (예정)
—
8TH-DE-STEAMQUEUE
├── 📂 .devcontainer # 개발 컨테이너 설정
├── 📂 .vscode # VS Code 디버깅 및 설정
├── 📂 config # 게임별 설정 (games.json)
├── 📂 data
│ ├── 📂 processed # 전처리 완료된 데이터 (matches.csv)
│ └── 📂 raw # 수집된 원천 데이터 (matches)
├── 📂 db # DuckDB 및 레포트 파일 (steam.duckdb)
├── 📂 queries # 데이터 분석 및 검증 쿼리 (check_all.py)
├── 📂 src # 메인 소스 코드
│ ├── 📂 utils # 유틸리티 함수
│ ├── 📄 collector.py # 데이터 수집 모듈
│ ├── 📄 scheduler.py # 수집 스케줄러
│ └── 📄 main.py # 프로그램 실행 메인 엔트리
├── 📄 apex_logic.py # Apex Legends 특화 매칭 로직
├── 📄 pubg_logic.py # PUBG 특화 매칭 로직
├── 📄 steam_logic.py # Steam 공통 매칭 로직
├── 📄 app.py # 대시보드/웹 어플리케이션 (예정)
├── 📄 graph.py # 데이터 시각화 스크립트
├── 📄 requirements.txt # 의존성 패키지 목록
└── 📄 README.md # 프로젝트 문서