Terminology Guide — TwoMore (투마)
Status: Reference
Single source of truth for all Korean-English terminology. UI labels, domain entities, enums, and code keys.
UI Label Rules
- Top-level navigation vocabulary is fixed:
홈 / 클럽 / 경기 / 기록 / 프로필. - English top-level navigation vocabulary is fixed:
Home / Clubs / Games / Records / Profile. - "클럽" is the bottom tab name (was "모임"). Do not use "모임" as a top-level tab or product navigation label.
- "세션" (session) never appears in Korean UI. Use "일정".
- "클럽" not "동호회" in UI (동호회 is spoken-only).
- "경기" is the top-level games tab and also a played/scored match when context is clear.
- "일정" is a scheduled session before it is played.
- "기록" is the records/analytics top-level tab. Use
leaderboardonly for rank-comparison internals or subroutes. - "번개" not "번개 모임" (redundant). Discovery chip label: "번개 찾기". In code/engineering: always pickup (not meets/bunggae).
- 참가 for RSVP, 참석 only in 참석률, 참여 only for achievements.
- 가입 for club membership, never 참여 or 참가.
Tab Names (Bottom Navigation)
| Tab | Korean | English | Sub-tabs | Purpose |
|---|---|---|---|---|
| 1 | 홈 | Home | — | Zone-based dashboard (Anchor/Context/Momentum/Community) |
| 2 | 클럽 | Clubs | 내 클럽 / 탐색 | Manage clubs + discover new ones |
| 3 | 경기 | Games | 내 경기 / 번개 찾기 | My games + pickup discovery |
| 4 | 기록 | Records | 리더보드 / 전적 / 분석 | Rankings, match history, analysis |
| 5 | 프로필 | Profile | — | Profile with settings gear |
Engineering Term Mapping
Code and comments use English. Korean terms appear only in src/config/i18n/.
| Korean (UI) | Engineering (code) | Deprecated terms | Notes |
|---|---|---|---|
| 번개 | pickup | meets, bunggae, flash | Always pickup in code, types, variables, file names |
| 일정 / 세션 | session | — | Korean UI shows "일정", code uses session |
| 경기 | match | — | Single game within a session |
| 클럽 | club | moim (partially) | Bottom tab label. moim still in some i18n keys |
| 기록 | records | ranking, stats | Bottom tab. Use ranking only when specifically comparing rank |
| 프로필 | profile | 나 | Bottom tab and profile routes |
Action Verbs
| Action | Korean | When |
|---|---|---|
| Join club | 가입하다 | Permanent membership |
| RSVP to session | 참가하다 | Active event participation |
| Attendance stats | 참석 | Only in 참석률 (fixed compound) |
| Achievement engagement | 참여하다 | Sustained engagement contexts |
| Apply (needs approval) | 신청하다 | 게스트 신청, 가입 신청 |
| Create | 만들기 | 클럽 만들기, 번개 만들기 (pickup), 일정 만들기 |
| Edit | 수정하기 | Content editing |
| Change | 변경하다 | Settings, roles |
| Delete | 삭제하다 | Permanent removal |
Status Labels
| Context | Korean | English |
|---|---|---|
| Session open | 모집 중 | Recruiting |
| Session full | 마감 | Full |
| Session live | 진행 중 | In Progress |
| Session done | 완료 | Completed |
| RSVP yes | 참가 확정 | Confirmed |
| RSVP pending | 확인 대기 | Pending |
| Waitlisted | 대기 중 | Waitlisted |
| Declined | 불참 | Declined |
Entities
| Korean | English | Code Key | Description |
|---|---|---|---|
| 클럽 | Club | club | Regular tennis club with members, sessions, and dues |
| 번개 | Pickup | pickup | Impromptu game hosted by an individual; auto-creates a pickup club. Engineering term: pickup (deprecated: meets, bunggae) |
| 모임 | (umbrella only) | — | Parent concept for 클럽 + 번개. Used in clubs screen header only (not tab bar). |
| 일정 / 세션 | Session | — | Scheduled gathering with date, time, courts, and RSVP |
| 경기 | Match | — | Single game within a session on one court in one round |
| 라운드 | Round | — | One rotation cycle where all courts play simultaneously |
| 대진 | Bracket/Draw | — | Match assignments for a round |
| 회비 | Dues | — | Monthly membership fee record for a member |
| 납부 기록 | Payment Record | — | Audit trail entry for a dues payment |
| 프로필 | Profile | — | User account with display name, avatar, global Elo |
| 선수 통계 | Player Stats | — | Computed stats: win rate, streak, matches played |
| Elo 히스토리 | Elo History | — | Per-match Elo rating change log |
| 클럽 Elo | Club Elo Rating | — | Per-club Elo rating for a user (separate from global) |
| 게스트 신청 | Guest Application | — | Non-member application to join a public session |
| 로테이션 설정 | Rotation Config | — | Match generation settings (partner mode, bench mode, etc.) |
| 챌린지 | Monthly Challenge | — | Client-side computed monthly goal with progress tracking |
| 업적 | Achievement | — | Unlockable badge earned by reaching milestones |
| 구독 | Subscription | — | Paid plan subscription (individual or club scope) |
| 코트 | Court Venue | — | Registered tennis court/venue used for sessions |
| 초대 코드 | Invite Code | — | Code shared to let new members join a club |
| 참석 | RSVP | — | Attendance confirmation for a session |
Roles (ClubRole)
| Korean | English | Code Key | Permissions |
|---|---|---|---|
| 대표 | Owner | owner | manage_club, manage_members, manage_schedule, manage_matches, manage_dues |
| 총무 | Admin | admin | manage_club, manage_members, manage_schedule, manage_dues |
| 경기이사 | Match Director | match_director | manage_matches, manage_schedule |
| 멤버 / 회원 | Member | member | (none) |
Permissions (ClubPermission)
| Korean | English | Code Key | Description |
|---|---|---|---|
| 클럽 관리 | Manage Club | manage_club | Edit club settings and info |
| 멤버 관리 | Manage Members | manage_members | Invite, remove, change roles |
| 일정 관리 | Manage Schedule | manage_schedule | Create and edit sessions |
| 경기 관리 | Manage Matches | manage_matches | Generate rounds, enter scores, rotation config |
| 회비 관리 | Manage Dues | manage_dues | Create/mark dues, view payment history |
Enums
Session Status (SessionStatus)
| Korean | English | Code Key |
|---|---|---|
| 초안 | Draft | draft |
| 모집 중 | Open | open |
| 마감 | Locked | locked |
| 진행 중 | In Progress | in_progress |
| 완료 | Completed | completed |
| 취소됨 | Cancelled | cancelled |
Session Format (SessionFormat)
| Korean | English | Code Key |
|---|---|---|
| 복식 | Doubles | doubles |
| 단식 | Singles | singles |
| 단식+복식 | Singles & Doubles | singles_doubles |
| 혼합복식 | Mixed Doubles | mixed_doubles |
Session Style (SessionStyle)
| Korean | English | Code Key |
|---|---|---|
| 친목 | Social | social |
| 실력별 | Competitive | competitive |
| 토너먼트 | Tournament | tournament |
Session Visibility (SessionVisibility)
| Korean | English | Code Key |
|---|---|---|
| 회원 전용 | Members Only | members_only |
| 공개 | Public | public |
Public Invite Approval (PublicInviteApproval)
| Korean | English | Code Key |
|---|---|---|
| 수동 승인 | Manual | manual |
| 자동 승인 | Auto | auto |
RSVP Status (RsvpStatus)
| Korean | English | Code Key |
|---|---|---|
| 참석 | Confirmed | confirmed |
| 대기 | Waitlisted | waitlisted |
| 취소 | Cancelled | cancelled |
| 불참 | No Show | no_show |
Match Status (MatchStatus)
| Korean | English | Code Key |
|---|---|---|
| 예정 | Scheduled | scheduled |
| 진행 중 | In Progress | in_progress |
| 완료 | Completed | completed |
| 취소됨 | Cancelled | cancelled |
Match Format (MatchFormat)
| Korean | English | Code Key |
|---|---|---|
| 단식 | Singles | singles |
| 복식 | Doubles | doubles |
Dues / Payment Status (PaymentStatus)
| Korean | English | Code Key |
|---|---|---|
| 미납 | Unpaid | unpaid |
| 납부 완료 | Paid | paid |
| 일부 납부 | Partial | partial |
| 면제 | Waived | waived |
Guest Application Status (GuestApplicationStatus)
| Korean | English | Code Key |
|---|---|---|
| 승인 대기 | Pending | pending |
| 승인됨 | Approved | approved |
| 거절됨 | Rejected | rejected |
| 취소됨 | Cancelled | cancelled |
Elo Tiers (EloTier)
| Korean | English | Code Key | Range |
|---|---|---|---|
| 초급 | Beginner | beginner | 0-1200 |
| 중급 | Intermediate | intermediate | 1201-1600 |
| 상급 | Advanced | advanced | 1601+ |
Rotation Engine
Partner Mode (PartnerMode)
| Korean | English | Code Key |
|---|---|---|
| 전체 로테이션 | Rotate All | rotate_all |
| 고정 파트너 | Fixed Pairs | fixed_pairs |
| 실력 균형 | Skill Balanced | skill_balanced |
| 랜덤 | Random | random |
Bench Mode (BenchMode)
| Korean | English | Code Key |
|---|---|---|
| 공정 로테이션 | Fair Rotation | fair_rotation |
| 자발적 | Volunteer | volunteer |
| 없음 | None | none |
Rotation Presets
| Korean | English | Code Key |
|---|---|---|
| 친목 | Social | social |
| 실력별 | Competitive | competitive |
| 고정 복식 | Fixed Doubles | fixed_doubles |
| 랜덤 | Random | random |
| 친목 단식 | Singles Social | singles_social |
| 실력별 단식 | Singles Competitive | singles_competitive |
| 랜덤 단식 | Singles Random | singles_random |
Tournament Types
| Korean | English | Code Key |
|---|---|---|
| ATP 파이널스 | ATP Finals | atp_finals |
| 스위스 시스템 | Swiss System | swiss |
| 나침반 드로 | Compass Draw | compass |
| 싱글 엘리미네이션 | Single Elimination | single_elimination |
| 조별리그 + 녹아웃 | Group + Knockout | group_knockout |
Challenges & Achievements
Challenge Types (ChallengeType)
| Korean | English | Code Key | Category |
|---|---|---|---|
| 경기 도전 | Match Challenge | matches | matches |
| 승리 도전 | Win Challenge | wins | matches |
| 연승 도전 | Streak Challenge | streak | matches |
| 연습 도전 | Practice Challenge | practice | skills |
| 단식 도전 | Try Singles | try_singles | skills |
| 새 코트 방문 | Visit New Court | visit_new_court | fitness |
| 오픈 모임 참가 | Join Public Meet | join_public_meet | fitness |
| 새 파트너 플레이 | Play with New Partners | play_with_new_partners | social |
| 친구 초대 | Invite Friend | invite_friend | social |
Challenge Categories (ChallengeCategory)
| Korean | English | Code Key |
|---|---|---|
| 경기 | Matches | matches |
| 기술 | Skills | skills |
| 체력 | Fitness | fitness |
| 소셜 | Social | social |
Achievement Tiers (AchievementTier)
| English | Code Key |
|---|---|
| Bronze | bronze |
| Silver | silver |
| Gold | gold |
| Platinum | platinum |
Achievement Categories (AchievementCategory)
| English | Code Key |
|---|---|
| Matches | matches |
| Wins | wins |
| Streaks | streaks |
| Elo | elo |
| Social | social |
| Attendance | attendance |
| Special | special |
Subscriptions
Plans (PlanType)
| Korean | English | Code Key | Scope | Monthly (KRW) |
|---|---|---|---|---|
| 무료 | Free | free | individual | 0 |
| 플레이어 | Player | player | individual | 4,900 |
| 베이직 | Basic | basic | club | 8,900 |
| 프로 | Pro | pro | club | 18,900 |
| 클럽+ | Club Plus | club_plus | club | 37,900 |
Subscription Status (SubscriptionStatus)
| English | Code Key |
|---|---|
| Active | active |
| Trialing | trialing |
| Past Due | past_due |
| Cancelled | cancelled |
| Expired | expired |
Discovery Filters
Region (Region)
| Korean | English | Code Key |
|---|---|---|
| 서울 | Seoul | seoul |
| 부산 | Busan | busan |
| 대구 | Daegu | daegu |
| 인천 | Incheon | incheon |
| 광주 | Gwangju | gwangju |
| 대전 | Daejeon | daejeon |
| 울산 | Ulsan | ulsan |
| 세종 | Sejong | sejong |
| 경기 | Gyeonggi | gyeonggi |
| 강원 | Gangwon | gangwon |
| 충북 | Chungbuk | chungbuk |
| 충남 | Chungnam | chungnam |
| 전북 | Jeonbuk | jeonbuk |
| 전남 | Jeonnam | jeonnam |
| 경북 | Gyeongbuk | gyeongbuk |
| 경남 | Gyeongnam | gyeongnam |
| 제주 | Jeju | jeju |
Court Surface Types
| Korean | English | Code Key |
|---|---|---|
| 하드 | Hard | hard |
| 클레이 | Clay | clay |
| 잔디 | Grass | grass |
| 실내 | Indoor | indoor |
| 기타 | Other | other |
Payment Methods
| Korean | English |
|---|---|
| 계좌이체 | Bank Transfer |
| 현금 | Cash |
| 카카오페이 | KakaoPay |
| 토스 | Toss |
Key Business Terms
| Korean | English | Description |
|---|---|---|
| 투마 | TwoMore | App name -- from "두 명 더" (two more players to fill a court) |
| 총무 | Chongmu / Admin | Club administrator -- primary user persona |
| 정모 | Regular Meetup | Recurring scheduled session |
| 번개 | Pickup | Impromptu pickup session (code key: pickup, deprecated: meets/bunggae) |
| 공개 모집 | Public Invite | Opening a session to non-member guest applications |
| RSVP 마감 | RSVP Deadline | Cutoff time for member attendance confirmation |
| 대기 | Waitlist | Queue for when session is full |
| 벤치 / 쉼 | Bench / Sit-out | Round where a player does not play (rotation fairness) |
| 부전승 | Bye | Automatic advancement when no opponent (odd player count) |
| 위안전 | Consolation | Secondary bracket for eliminated players (compass draw) |
| 타이브레이크 | Tiebreak | Tiebreak scoring when set reaches 6-6 |
| 연승 | Win Streak | Consecutive wins |
| 연패 | Loss Streak | Consecutive losses |
| 승률 | Win Rate | Wins divided by total matches (0.0-1.0) |