# Formwheel 공식 용어집 (Official Glossary)

- **버전:** v1.2.0 (표시명 v1.2)
- **최초 확정일:** 2026-10-12
- **최종 개정일:** 2026-10-22
- **적용 대상:** Formwheel Hub, Wiki, Core, ID 및 전체 프로젝트
- **상태:** 공식 표준

## 1. 최상위 정책
1. Formwheel에 속하는 모든 게임·도구·앱·공통 시스템을 **프로젝트(Project)**라고 통칭한다. 게임은 프로젝트의 한 종류다.
2. 프로젝트 표시명은 **Battle**, **Clicker**, **Wiki**처럼 고유 이름만 사용한다. 일반 UI 제목에 `Formwheel Battle`, `폼휠 배틀`을 쓰지 않는다.
3. 공식 설명에서는 'Formwheel의 Battle 프로젝트'처럼 소속을 밝힐 수 있다.
4. 기존 GitHub 저장소명(`Formwheel_Battle`), URL, Firebase 경로 및 데이터 키는 호환성을 위해 유지한다.
5. 동일 기능은 전체 프로젝트에서 동일한 한국어 UI 문구를 사용한다. 브랜드 및 프로젝트 고유명은 유지한다.

## 2. 플랫폼 / 프로젝트
| 영어 | 공식 표기 | 뜻 |
|---|---|---|
| Formwheel | Formwheel | 전체 플랫폼 |
| Project | 프로젝트 | 개별 게임·도구·앱·시스템을 아우르는 단위 |
| Hub | 허브 | 프로젝트 탐색·진입 화면 |
| Core | 코어 | 공통 기능 시스템 |
| Formwheel ID | Formwheel ID | 통합 계정 시스템 |
| Game | 게임 | 플레이 중심 프로젝트 |
| Tool | 도구 | 작업을 돕는 프로젝트 |
| App | 앱 | 독립 기능 제공 프로젝트 |
| System | 시스템 | 공통 기능 제공 프로젝트 |
| Creator | 제작자 | 프로젝트 제작자 |
| User | 사용자 | 플랫폼 이용자 |
| Player | 플레이어 | 게임 참가 사용자 |
| Guest | 게스트 | 로그인하지 않은 사용자 |
| Profile | 프로필 | 개인 계정과 활동 화면 |
| Settings | 설정 | 환경 및 개인화 설정 |

## 3. 게임 / 매칭 / 방
| 영어 | 공식 표기 | 뜻 |
|---|---|---|
| Solo | 혼자하기 | 혼자 플레이 |
| Battle | 대전 | 다른 플레이어와 겨루는 모드 (프로젝트 이름 Battle은 그대로 유지) |
| Quick Match | 빠른 대전 | 공개 대기방 자동 연결 |
| Random Match | 랜덤 대전 | 무작위 상대 매칭 |
| Room | 방 | 다인용 참여 공간 |
| Room Code | 방 코드 | 방 입장 코드 |
| Host | 방장 | 방 생성·관리자 |
| Member | 참가자 | 방에 참여한 사용자 |
| Lobby | 대기실 | 시작 전 공간 |
| Round | 라운드 | 게임의 개별 진행 단위 |
| Turn | 턴 | 플레이어의 행동 차례 |
| Match | 매치 | 하나의 대전 |
| Result | 결과 | 종료 및 점수 화면 |
| Reconnect | 재접속 | 기존 세션 복구 |
| Spectator | 관전자 | 플레이하지 않고 지켜보는 사용자 |

## 4. 계정 / 소셜 / 기록
| 영어 | 공식 표기 |
|---|---|
| Sign In | 로그인 |
| Sign Up | 회원가입 |
| Sign Out | 로그아웃 |
| Friend | 친구 |
| Friend Request | 친구 요청 |
| Invite | 초대 |
| Notification | 알림 |
| Block | 차단 |
| Presence | 접속 상태 |
| Activity | 활동 기록 |
| Achievement | 업적 |
| Badge | 배지 |
| Featured Badge | 대표 배지 |
| Leaderboard | 순위표 |
| Ranking | 순위 |
| Season | 시즌 |
| Challenge | 챌린지 |
| Event | 이벤트 |
| Feedback | 개선 의견 |

**구별:** 업적은 달성 조건 및 달성 내역, 배지는 프로필에 표시되는 보상이다. 빠른 대전과 랜덤 대전은 다른 매칭 방식이다.

## 5. 공통 UI 문구
| 혼용 표현 | 공식 표시 |
|---|---|
| Home / 홈 이동 / 메인 이동 | 허브로 돌아가기 |
| Start / 게임하기 | 게임 시작 |
| 방 생성 / 방 만들기 | 방 만들기 |
| Join / 입장 | 방 참가 |
| Exit / 나가기 (방 화면) | 방 나가기 |
| Ranking / Leaderboard | 순위표 |
| 변경 사항 / 업데이트 로그 | 업데이트 내역 |
| 건의하기 / 버그 제보 | 개선 의견 보내기 |

## 6. 개발 명명 규칙
- 프로젝트 ID: 소문자 영문 (예: `battle`, `clicker`)
- JS 식별자: camelCase (예: `roomId`, `roomCode`, `hostUid`, `playerUid`, `gameState`, `matchState`, `lastActiveAt`)
- 경로 예시: `projects/battle/rooms/{roomId}`는 **신규 구조를 위한 예시일 뿐** 기존 Firebase 구조 변경을 지시하지 않는다.
- 기존 식별자·DB 키·보안 규칙을 사용자 표시 문구 통일 목적으로 자동 변경하지 않는다.

## 7. 적용 우선순위
1. 사용자에게 표시되는 제목, 버튼, 안내 문구를 통일한다.
2. 저장소·링크·인증·게임 룸 코드는 기존 호환성을 유지한다.
3. 외부 공유용 설명에서는 브랜드와 프로젝트 관계를 명확히 한다.
4. 예외가 필요하면 공식 용어집의 새 버전에 기록한다.

## 8. 버전 정책
`MAJOR.MINOR.PATCH`를 사용한다. v1.0은 v1.0.0의 축약이다.
- PATCH (v1.0.1): 오탈자·설명 정정
- MINOR (v1.1.0): 호환되는 용어·분류 추가
- MAJOR (v2.0.0): 기존 명칭 또는 핵심 규칙의 비호환 변경

공개된 과거 버전 파일은 수정 없이 보관하고, 변경 이력은 `CHANGELOG.md`에 남긴다.

## 9. AQS · 발견 · 보상 용어 (v1.1.0 추가)

| 영어 | 공식 표기 | 정의 | 다른 용어와 구별 |
|---|---|---|---|
| AQS | AQS | Achievement · Quest · Secret을 묶는 통합 경험 체계 | 단독 게임명이 아니라 통합 체계 |
| Quest | 퀘스트 | 정해진 과제를 수행하고 진행도를 쌓는 활동 | 업적은 달성 기록, 퀘스트는 수행 과정 |
| Daily Quest | 일일 퀘스트 | 일정 주기로 초기화되는 퀘스트 | 이벤트와 항상 같지는 않음 |
| Secret | Secret | 숨겨진 단서와 조건을 발견하는 프로젝트 및 콘텐츠 | 일반 퀘스트와 발견 방식이 다름 |
| Discovery | 발견 | 숨겨진 대상이나 단서를 찾아낸 사건 | 해금과 같지 않을 수 있음 |
| Unlock | 해금 | 잠겨 있던 콘텐츠 또는 선택지가 사용 가능해지는 것 | 발견·선택·장착과 구별 |
| First Discovery | 최초 발견 | 정해진 범위에서 가장 먼저 발견한 기록 | 서버에서 순서 검증이 필요 |
| XP | XP(경험치) | 진행 또는 활동 보상으로 부여하는 수치 | 배지나 계정 권한과 별개 |
| Reward | 보상 | 퀘스트·업적·이벤트 등의 달성 대가 | 보상은 XP, 배지 등 여러 형태 가능 |
| Reward Claim | 보상 수령 | 달성한 보상을 실제로 받는 행위 | 자동 지급과 수동 수령을 구별 |
| Spotlight | Spotlight | 특정 사용자나 활동을 조명하는 콘텐츠 | 순위 1위를 반드시 의미하지 않음 |
| Featured Achievement | 대표 업적 | 프로필에서 강조하여 보여 주는 업적 | 대표 배지와 데이터 구조가 다를 수 있음 |

### 보상 표시 원칙
- **달성**, **지급**, **수령**, **해금**, **장착**은 서로 다른 상태다. 예를 들어 퀘스트를 달성해도 아직 보상 수령이 필요할 수 있다.
- 자동 보상 지급을 구현할 때는 동일 이벤트의 중복 지급을 막고, 지급 실패·재시도를 처리해야 한다.
- XP 수치·보상 기준·업적 조건은 해당 프로젝트의 실제 운영 규칙을 따르며, 이 용어집은 보상 지급을 보장하지 않는다.
- 최초 발견 기록은 클라이언트 시간만으로 확정하지 않는다.

## 10. Orbit · Identity · Story (v1.1.0 추가)

| 영어 | 공식 표기 | 정의 |
|---|---|---|
| Orbit | Orbit | Formwheel의 연결·순환을 표현하는 테마 및 세계관 개념 |
| Orbit Identity | Orbit Identity | 사용자가 선택하거나 해금해 사용하는 정체성 표현 |
| Identity | Identity | 사용자가 프로필 등에서 표현하는 정체성 항목 |
| Identity Change | Identity 변경 | 사용 중인 Identity를 다른 항목으로 바꾸는 행위 |
| ECHO | ECHO | Identity 및 Story에서 활용하는 고유 코드명 |
| NOVA | NOVA | Identity 및 Story에서 활용하는 고유 코드명 |
| VOID | VOID | Identity 및 Story에서 활용하는 고유 코드명 |
| RIFT | RIFT | Identity 및 Story에서 활용하는 고유 코드명 |
| NULL | NULL | 별도 해금 조건을 둘 수 있는 특별 코드명 |
| Story | Story | Formwheel의 이야기를 체험하는 서사 프로젝트 |
| Chapter | 챕터 | Story의 진행 단위 |
| Season | 시즌 | Story 등 콘텐츠의 구분 단위. 경쟁 시즌과 문맥으로 구별 |

### 혼동하기 쉬운 사례
1. **Quiz 참가 코드와 Orbit Identity:** 같은 글자(ECHO 등)가 두 곳에서 사용되더라도, 방에 참가하는 기능과 프로필 정체성을 나타내는 기능은 다르다. 코드 하나가 모든 권한을 자동으로 제공한다고 설명하지 않는다.
2. **ECHO와 Secret:** ECHO는 문맥에 따라 코드명·해금 대상·스토리 단서가 될 수 있다. 비밀 조건이나 정답은 일반 소개문에서 불필요하게 노출하지 않는다.
3. **NULL과 일반 Identity:** NULL이 해금되는 특수 Identity가 되더라도, 시스템에서 데이터 값 `null`과 문자열 `"NULL"`은 서로 다르다.
4. **Story와 세계관:** Story는 실제 플레이 프로젝트, 세계관은 여러 프로젝트에 걸친 이야기의 배경이다.
5. **Orbit와 Hub:** Orbit가 플랫폼 전체 테마로 채택되더라도 Hub는 프로젝트를 찾아가는 시작 화면이라는 의미를 유지한다.

## 11. 문서 작성 및 사용자 안내 기준

- 제목은 **개별 프로젝트명**으로 시작하고, 첫 문장에서 목적을 한 문장으로 설명한다.
- 본문 권장 순서: 개요 → 주요 기능 → 시작 방법 → 세부 규칙 → 예시 → 자주 묻는 질문 → 관련 문서.
- **현재 제공되는 기능**, **개발 중인 기능**, **기획된 기능**을 분리해 서술한다.
- 이벤트 종료일이나 기능 활성화 여부 등 변동되는 정보는 날짜를 명시한다.
- 설명이 길어지면 소제목과 접기 문법을 사용하며, 모바일에서도 읽기 쉽게 문단을 나눈다.
- Secret·Story 문서는 독자가 원하지 않는 스포일러를 피하고, 해금 조건을 설명할 때는 별도 경고 또는 접기 영역을 사용한다.
- 인증·권한·서버 검증을 요구하는 기능은 단순히 버튼이 보인다는 이유로 구현 완료라고 표시하지 않는다.
- 사용자 정보·접속 로그·개인 식별 정보는 공개 Wiki 문서 예시에 사용하지 않는다.
- 영어 명칭이 같은 **Battle(프로젝트)**과 **대전(모드)**처럼 문맥이 다른 경우 첫 등장에 구별한다.

## 12. 변경 이력
- **v1.1.0 · 2026-10-17:** AQS, Orbit Identity, Story, 보상 상태 관련 용어와 상세 문서 작성 지침 추가. 기존 v1.0.0 정책과 저장소·URL·DB 식별자의 호환성 유지.
- **v1.0.0 · 2026-10-12:** 프로젝트 통칭, 표시명 및 공통 UI 기본 표준 최초 확정.


## 13. 경제 · Rapid · 상점 (v1.2.0 추가)

| 영어 | 공식 표기 | 정의 |
|---|---|---|
| Rapid | 래피드(R) | Formwheel 내부에서 사용하는 가상 재화. 현실 화폐와 구별 |
| Wallet | 지갑 | 계정의 래피드 잔액과 거래 기록을 관리하는 기능 |
| Balance | 잔액 | 현재 사용 가능한 래피드 수량 |
| Rapid Shop | Rapid Shop | 래피드로 테마 등 항목을 구매하는 화면 |
| Exchange | 환전 | 프로젝트 내 재화를 정해진 교환 조건으로 래피드와 바꾸는 기능 |
| Purchase | 구매 | 재화를 지불하여 항목의 이용 권한을 얻는 동작 |
| Ownership | 보유 | 계정이 항목을 사용할 권한을 가진 상태 |
| Refund Request | 환불 요청 | 거래를 취소하거나 복구해 달라는 신청. 승인과 실제 환불은 별개 |
| Transaction History | 거래 내역 | 지급·구매·교환·환불 등 잔액 변경 기록 |
| Offline Bonus | 오프라인 보너스 | 접속하지 않은 기간에 대해 프로젝트 규칙에 따라 계산되는 보상 |

**경제 원칙:** 화면의 잔액이나 구매 버튼만으로 보유 권한을 판정하지 않는다. 구매·환불·환전의 잔액 및 권한 변경은 서버에서 검증하고 중복 처리를 방지한다. 실제 환율·보상률·판매 가격은 해당 프로젝트의 운영 설정을 따른다.

## 14. 테마 · 개인화 (v1.2.0 추가)

| 영어 | 공식 표기 | 정의 |
|---|---|---|
| Theme | 테마 | 색상·배경·문자·효과를 구성하는 화면 스타일 |
| Theme Preview | 테마 미리보기 | 구매 또는 적용 전 테마의 모습을 확인하는 기능 |
| Theme Purchase | 테마 구매 | 래피드로 테마 보유 권한을 얻는 동작 |
| Theme Apply | 테마 적용 | 보유한 테마를 화면에 실제로 사용하는 동작 |
| Bulk Theme Apply | 테마 일괄 적용 | 여러 프로젝트의 테마를 한 번에 설정하는 기능 |
| Theme Sync | 테마 동기화 | 같은 계정의 여러 기기·프로젝트에 테마 설정을 반영하는 기능 |
| Premium Theme | 프리미엄 테마 | 추가 연출 등을 포함한 특별 테마 |
| Visual Effect | 시각 효과 | 테마의 움직임과 화면 연출 |
| Identity Theme | Identity 테마 | ECHO·NOVA·VOID·RIFT 등 Identity 명칭을 활용하는 테마. Identity 자체와 구별 |

**개인화 원칙:** 미리보기는 보유·구매·적용을 의미하지 않는다. URL 매개변수만으로 유료 테마가 해금되어서는 안 된다. 화면 대비와 움직임 감소 설정 등 접근성을 고려한다.

## 15. 허브 · 추천 · 재방문 (v1.2.0 추가)

| 영어 | 공식 표기 | 정의 |
|---|---|---|
| Hub Next | Hub Next | 허브의 개인화 및 재방문 편의 기능 묶음 |
| Project Card | 프로젝트 카드 | 프로젝트를 소개하고 실행하는 허브의 카드 |
| Thumbnail | 썸네일 | 프로젝트를 시각적으로 소개하는 대표 이미지 |
| Favorite | 즐겨찾기 | 사용자가 선호하는 프로젝트 표시 |
| Pinned Favorite | 즐겨찾기 고정 | 선택한 즐겨찾기를 목록 상단에 배치하는 설정 |
| Creator Pick | 제작자 추천 | 제작자가 정한 기준에 따라 표시하는 추천 목록 |
| Recent Play | 최근 플레이 | 최근 실행한 프로젝트 기록 |
| Recommendation | 추천 | 이용 상황 등에 맞춰 안내하는 프로젝트 |
| Featured Project | 추천 프로젝트 | 허브에서 강조하여 소개하는 프로젝트 |
| Visitor | 방문자 | 플랫폼에 접속한 이용자 또는 방문 기록. 집계 기준에 따라 구별 |
| Returning Visitor | 재방문자 | 지정 기간 또는 기준에 따라 다시 방문한 이용자 |
| Session Duration | 접속 시간 | 한 번의 접속에서 측정한 이용 시간 |
| Cumulative Time | 누적 접속 시간 | 여러 세션의 시간을 합한 수치 |

**집계 원칙:** 방문·순 방문자·재방문·동시 접속은 서로 다른 지표다. 중복 집계 기준과 수집 범위를 명시하며 개인 식별 정보는 공개하지 않는다.

## 16. 창작 · 협업 · 신규 프로젝트 (v1.2.0 추가)

| 영어 | 공식 표기 | 정의 |
|---|---|---|
| Paint | Paint | 디지털 그림을 제작하는 프로젝트명 |
| Whiteboard | Whiteboard | 여러 사용자가 함께 작업하는 화이트보드 프로젝트명 |
| Scribble | Scribble | 그림과 추측을 결합한 창작·게임 프로젝트명 |
| Animation | Animation | 프레임·시간축으로 애니메이션을 만드는 프로젝트명 |
| Mix | Mix | 여러 Formwheel 게임을 묶어 진행하는 프로젝트명 |
| Timeline | 타임라인 | 애니메이션 요소를 시간 순서로 배치하는 영역 |
| Keyframe | 키프레임 | 특정 시점에 속성 값을 기록하는 편집 단위 |
| Layer | 레이어 | 그림·텍스트·요소를 분리하여 쌓는 편집 단위 |
| Canvas | 캔버스 | 그림이나 오브젝트를 편집하는 작업 영역 |
| Collaboration | 공동 작업 | 여러 사용자가 동일 작업에 참여하는 방식 |
| Edit Permission | 편집 권한 | 지정된 사용자가 콘텐츠 또는 저장소를 수정할 수 있는 권한 |

**명칭 원칙:** 프로젝트명(Paint, Scribble 등)은 번역하지 않고, 공통 편집 기능은 '키프레임', '레이어', '타임라인' 등 동일한 한국어 용어를 사용한다. 개발 계획과 실제 구현 여부를 구분한다.

## 17. 보안 · 기능 상태 (v1.2.0 추가)

| 영어 | 공식 표기 | 정의 |
|---|---|---|
| Access Control | 접근 제어 | 사용자에게 허용된 기능과 데이터 접근을 제한하는 규칙 |
| Purchase Verification | 구매 검증 | 결제·잔액·보유 권한을 신뢰할 수 있는 쪽에서 확인하는 절차 |
| Server Validation | 서버 검증 | 클라이언트 입력을 그대로 신뢰하지 않고 서버에서 확인하는 처리 |
| Automatic Reward | 자동 지급 | 조건 충족 시 별도 수령 없이 보상을 반영하는 방식 |
| In Development | 개발 중 | 제작하고 있으나 사용 가능하다고 보장하지 않는 상태 |
| Planned | 기획 중 | 아이디어나 설계가 있으나 구현 여부가 확정되지 않은 상태 |
| Available | 이용 가능 | 실제 사용자에게 제공되는 상태 |

**표준 구별:** 구매 ≠ 적용, 미리보기 ≠ 보유, 달성 ≠ 지급, 초대 ≠ 편집 권한, 방문 ≠ 순 방문자.

## 18. v1.2.0 변경 이력
- **v1.2.0 · 2026-10-22:** Rapid 경제, 테마 구매와 동기화, Hub Next, 창작·협업 프로젝트, 서버 검증과 기능 상태 용어 확장. 기존 v1.0.0·v1.1.0 호환성 유지.
