5토너먼트
예선(조별 풀리그) → 본선(브라켓) 2단계 구조.
1단계 · 예선 — 조 나누기
참가자를 무작위로 섞어서 조에 배정. 각 조 안에서 풀리그로 모두 한 번씩 맞붙는다.
| 조 구성 | 1개 조 인원 | 본선 진출 인원 | 특징 |
| 2팀/조 | 2명 (단식) 또는 2팀 (복식) | 조 1위만 (1명/조) | 예선이 짧음. 토너먼트 결과 빠름. |
| 3팀/조 | 3명 | 조 1·2위 (2명/조) | 예선·본선 균형. 가장 일반적. |
| 4팀/조 | 4명 | 조 1·2위 (2명/조) | 예선이 길다. 본선은 정상 크기. |
예시 · 16명 토너먼트 (4팀/조)
16명을 4명씩 4개 조로 나눔. 각 조 풀리그(3경기/사람) → 상위 2명씩 진출 → 8강 토너먼트.
A조
A1 (1위)
A2 (2위)
A3 탈락
A4 탈락
B조
B1 (1위)
B2 (2위)
B3 탈락
B4 탈락
C조
C1 (1위)
C2 (2위)
C3 탈락
C4 탈락
D조
D1 (1위)
D2 (2위)
D3 탈락
D4 탈락
↓ 8명이 본선(8강) 진출
2단계 · 본선 — 브라켓 (한 번 지면 탈락)
진출자 수가 2의 거듭제곱(4·8·16·32명)이 아니면 부전승(bye) 자동 처리.
예시 · 부전승 처리 (6명 → 8강 패딩)
6명 진출 시 8강을 채우기 위해 2명에게 부전승(자동 진출). 부전승 받은 사람은 1라운드 쉬고 준결승부터 경기.
인원별 토너먼트 시나리오
| 참가 | 조 구성 | 예선 | 본선 | 전체 단계 |
| 8명 | 4명 × 2조 | 3경기/사람 | 4강 → 결승 | 예선 + 4강 + 결승 |
| 12명 | 4명 × 3조 | 3경기/사람 | 8강(2 부전승) → 4강 → 결승 | 예선 + 8강 + 4강 + 결승 |
| 16명 | 4명 × 4조 | 3경기/사람 | 8강 → 4강 → 결승 | 예선 + 8강 + 4강 + 결승 |
| 16명 | 2명 × 8조 | 1경기/사람 | 8강 → 4강 → 결승 (조 1위만) | 예선이 짧고 본선 위주 |
| 32명 | 4명 × 8조 | 3경기/사람 | 16강 → 8강 → 4강 → 결승 | 전 단계 풀하우스 |
⚡ 토너먼트 라운드 표기
결승에서 거꾸로 셈: 결승 ← 준결승 ← 8강 ← 16강 ← 32강 ← 64강. 예: 16명이면 첫 라운드가 "8강"이고, 32명이면 첫 라운드가 "16강".
8자주 묻는 질문
참가자가 홀수면 어떻게 되나?
단식 풀리그는 홀수여도 가능. 매 라운드마다 한 명이 쉬는 식으로 자동 배정.
복식 풀리그는 4의 배수 또는 짝수가 이상적. 인원이 안 맞으면 일부 유저가 더 자주 쉬게 됨.
파트너 고정은 반드시 짝수여야 시작 가능.
경기 도중 누가 빠지면?
현재는 경기 시작 후 참가자 변경 불가. 빠진 자리는 호스트가 다른 사람으로 대체하거나, 부전승으로 처리해야 함.
(향후 개선 예정)
두 사람이 동점이면 누가 위?
풀리그: 승 → 무 → 패 → 총 득점 → 가입 순서 차례로 비교 (Section 6 참조).
토너먼트: 같은 라운드에서 탈락하면 예선 성적이 좋았던 사람이 위.
일반 매치와 랭크 매치 차이?
일반: 친선전. ELO·티어에 영향 없음. 부담 없이 진행.
랭크: 결과가 개인 ELO 점수에 반영. 티어 변동 가능. 진지한 경기.
토너먼트에서 본선 진출 인원은 어떻게 정해지나?
2팀/조: 조 1위만 (총 진출 인원 = 조 수).
3팀/조 · 4팀/조: 조 1·2위 (총 진출 인원 = 조 수 × 2).
진출 인원이 2의 거듭제곱(4·8·16·32)이 아니면 자동으로 부전승 추가.
복식에서 "혼복"은 정확히 뭐?
혼합복식. 한 팀에 남자 1명 + 여자 1명으로 구성하는 방식.
남복(남남)·여복(여여)과 구분되며, 파트너 배정 시 이 규칙이 자동 적용됨.
QR 코드는 어떻게 쓰나?
호스트가 방을 만들면 로비에 QR 코드와 입장 코드(예: ST-A1B2)가 표시됨.
참가자는 카메라로 QR을 스캔하면 자동으로 입장. 또는 코드를 직접 입력해서 들어올 수도 있음.
로그인 안 된 상태에서 스캔하면 로그인 후 자동으로 그 방에 들어가게 됨.
경기 끝나고 점수를 잘못 입력했는데?
경기 화면이 살아 있는 동안에는 점수 +/- 버튼으로 수정 가능. "최종 순위" 버튼을 누르고 나면 확정.
랭크 매치는 최종 순위 확정 시 ELO 반영.
관리자(어드민)는 뭘 할 수 있나?
"관리자"는 두 가지 의미가 있음:
1. 방장 (= 그 리그의 관리자)
일반 사용자가 방을 만들면 그 방의 관리자가 됨. 인원 모집·강퇴·파트너 배정·시작/종료 결정 등 그 리그의 모든 운영 권한.
2. 전역 시스템 관리자
admin 권한을 가진 계정. /admin/dashboard.html 접근 가능.
전체 사용자 목록 조회·역할 변경·삭제, 모든 방 조회·강제 종료, 매치 현황, 감사 로그 등을 본다.
"리그를 직접 만든다"기보다는 일반 사용자가 만든 방/매치를 모니터링·관리하는 역할.
방 만들고 나중에 시작해도 되나? 시간 제한은?
네, 무한정 대기 가능. SPOTI-TIER 는 비동기 모집 모델이라 방 만들고 → 카톡으로 공유 → 사람들이 시간 두고 들어옴 → 인원 충분해지면 그때 "시작" 누름. 자동 마감 시간은 없음.
방장이 화면 꺼도 방은 그대로 살아있음. (단, 방장이 돌아왔을 때 자기 방 목록에서 "이어하기" UI는 현재 미구현 — 향후 추가 예정)
리그 시작 후에도 사람을 더 추가할 수 있나?
풀리그: 가능. 다음 라운드부터 새 참가자가 자연스럽게 편성됨. 다만 이미 진행된 경기와 형평성 차이는 발생 (참가자 본인이 이해해야 함).
토너먼트: 비권장. 예선 조 구성과 본선 대진표가 시작 시점에 확정되기 때문. 시작 전에 인원이 다 모이는 게 깔끔함.
강퇴 + 새 입장으로 빠진 자리를 채우는 운영도 가능.
모집 인원에 안 차면 시작할 수 없나?
"모집 인원"은 목표치(권장값)로 동작. 더 적게 시작도 가능 (최소 조건만 충족하면 됨):
• 단식: 2명 이상
• 복식: 4명 이상
• 파트너 고정: 짝수, 전원 짝지어짐
• 토너먼트: 조 구성에 맞는 인원
반대로 목표치 초과해서 더 받을 수도 있음.
방장이 시작 안 하고 잠수타면?
"정원 도달 시 자동 시작" 옵션을 켜두면 방장 없이도 인원 차면 자동 시작됨 (방 만들 때 체크박스).
자동 시작 옵션 안 켜고 방장 잠수타면 그 방은 "모집 중"으로 남음. 전역 시스템 관리자가 어드민 대시보드에서 강제 종료 가능.
(향후: 일정 시간 활동 없으면 자동 만료 처리 예정)
방장이 앱 잠깐 끄면 진행 중인 경기는 어떻게 되나?
걱정 X. 점수·순위·대진표는 방장의 디바이스에 자동 저장됨.
메인 화면에 "내 진행 중 방" 카드가 떠 있어서 클릭하면 그대로 이어가기 가능.
⚠️ 주의: 디바이스를 바꾸거나 브라우저 데이터를 지우면 복원 안 됨 (현재 한정사항).
참가자도 점수 입력 가능한가?
아니요. 점수는 방장만 입력 가능.
참가자 화면에서는 점수 영역이 비활성화돼있고, 방장이 입력하면 모든 참가자 화면에서 실시간으로 갱신됨.
실수나 분쟁 방지를 위한 설계.
참가자가 방장보다 먼저 입장하면?
방을 만든 사람이 방장이라서 "먼저"는 불가능. 흐름은:
① 방장이 방 만듦 → ② 입장 코드 발급 → ③ 코드를 다른 사람들과 공유.
코드 받은 사람이 늦게 들어오거나 빨리 들어오는 건 자유.
모바일 앱에서도 똑같이 작동?
네. Capacitor 기반으로 iOS/Android 앱으로도 빌드 가능. 화면·기능은 웹과 동일.
실시간 동기화(Socket)도 똑같이 작동.