# Kord - 기능 로드맵 (Feature Roadmap)

## 체인지로그 (Changelog)
- **2026-03-27**: 로드맵 최초 작성 — 6개 기능 등록

---

## 개요

임시 음성 채널 기능 완성 이후, Kord 봇을 프로덕션 수준의 서비스로 발전시키기 위한 **향후 기능 로드맵**입니다.
각 항목은 구현에 앞서 별도 기획서(`Docs/Plans/`)를 작성·확정한 뒤 개발에 착수합니다.

### 상태 범례

| 아이콘 | 의미 |
|--------|------|
| ⬜ | 미착수 (Not Started) |
| 📝 | 기획 중 (Planning) |
| 🔨 | 개발 중 (In Progress) |
| ✅ | 완료 (Done) |

---

## 로드맵 항목

### 1. ✅ 다국어 지원 (i18n / Internationalization)

| 항목 | 내용 |
|------|------|
| **목표** | 봇의 모든 사용자 표시 텍스트(명령어 응답, 에러 메시지, UI 라벨 등)를 다국어로 제공 |
| **기본 언어** | 영어 (English) — fallback 언어 |
| **계층별 언어 설정** | 서버(Guild) 단위 → 사용자(User) 단위로 우선순위 적용 |
| **기획서** | [`i18n_Plan.md`](../architecture/i18n_Plan.md) |

**핵심 고려사항**
- Locale 키-값 구조 설계 (JSON / YAML 등)
- discord.js `interaction.locale` / `interaction.guildLocale` 활용 여부
- 번역 파일 관리 전략 (디렉터리 구조, 네임스페이스)
- DB에 서버·사용자별 언어 설정 저장 (Prisma 스키마 확장)

---

### 2. ✅ 권한 검사 (Permission Audit)

| 항목 | 내용 |
|------|------|
| **목표** | 봇이 각 기능을 수행하기 위해 충분한 권한을 가지고 있는지 진단하고 보고서를 생성 |
| **트리거** | 슬래시 명령어 (`/audit-permissions` 등) |
| **출력** | 실행한 채널에 Embed 형태의 권한 진단 보고서 전송 |
| **기획서** | [`Permission_Audit_Plan.md`](../architecture/Permission_Audit_Plan.md) |

**핵심 고려사항**
- 기능별 필요 권한 매핑 테이블 (Feature → Required Permissions)
- 서버 수준 / 카테고리 수준 / 채널 수준 권한 검사
- ✅ 충족 / ⚠️ 부족 항목을 시각적으로 구분하는 Embed 디자인
- 관리자 전용 명령어로 제한

---

### 3. ✅ 감사 채널 (Audit Log Channel)

| 항목 | 내용 |
|------|------|
| **목표** | 관리자가 지정한 텍스트 채널에 봇의 이벤트·문제 상황·서비스 상태 변동을 자동 기록 |
| **등록 방식** | 관리자가 명령어로 채널 생성 또는 기존 채널 등록 |
| **기록 대상** | 에러 발생, 봇 재시작, 기능 status 변동, 권한 이슈 감지 등 |
| **기획서** | [`Audit_Channel_Plan.md`](../architecture/Audit_Channel_Plan.md) |

**핵심 고려사항**
- 감사 로그 메시지 분류 체계 (severity: info / warn / error)
- 서버당 감사 채널 수 제한 (티어 연동 가능성)
- DB 스키마: `AuditChannel` 모델 설계
- Rate Limit 대응 (대량 이벤트 발생 시 배치 전송 or 쓰로틀링)

---

### 4. ✅ 에러 안내 (Error Guidance UX)

| 항목 | 내용 |
|------|------|
| **목표** | 사용자 인터랙션 중 오류 발생 시, 친절한 메시지/모달로 안내하여 재시도 또는 관리자 문의를 유도 |
| **표시 형태** | Ephemeral 메시지 또는 Modal |
| **기획서** | `Docs/Plans/Error_Guidance_Plan.md` *(미작성)* |

**핵심 고려사항**
- 에러 유형 분류 (사용자 입력 오류 / 권한 부족 / 봇 내부 오류 / Discord API 오류)
- 유형별 안내 메시지 템플릿 설계
- "재시도" 버튼 / "관리자에게 알리기" 버튼 등 액션 컴포넌트
- 다국어 지원(i18n)과의 통합 — i18n 완료 후 연동
- 에러 코드 체계 (추적·디버깅 용도)

---

### 5. ⬜ 봇 상태 메시지 (Bot Presence / Activity)

| 항목 | 내용 |
|------|------|
| **목표** | 봇의 Discord Presence에 `n개 서버에서 활동 중` 등의 동적 상태 메시지 표시 |
| **갱신 주기** | 주기적 (예: 5분마다) 또는 서버 join/leave 이벤트 트리거 |
| **기획서** | `Docs/Plans/Bot_Presence_Plan.md` *(미작성)* |

**핵심 고려사항**
- `client.user.setActivity()` / `client.user.setPresence()` 활용
- 상태 메시지 로테이션 (여러 메시지를 순환 표시)
- ActivityType 선택 (Playing, Watching, Listening, Competing)
- 샤딩(Sharding) 환경에서의 전체 서버 수 집계 방법

---

### 6. ✅ 봇 설정 도우미 (Setup Wizard)

| 항목 | 내용 |
|------|------|
| **목표** | 서버 관리자가 인터랙션 기반으로 봇의 주요 설정을 단계별로 완료할 수 있는 설정 마법사 제공 |
| **트리거** | 슬래시 명령어 (`/setup` 등) |
| **UI 형태** | Embed + Button + Select Menu 조합의 스텝 바이 스텝 인터랙션 |
| **기획서** | [`Setup_Wizard_Plan.md`](../architecture/Setup_Wizard_Plan.md) |

**핵심 고려사항**
- 설정 항목 정의 (언어, 감사 채널, 임시 음성 채널 생성기 등)
- 단계(Step) 흐름 설계 (이전/다음/건너뛰기)
- 설정 완료 시 요약 Embed 표시
- 이미 설정된 항목 감지 및 스킵/변경 옵션
- 다국어 지원(i18n)과의 통합

---

## 권장 구현 순서

> [!NOTE]
> 순서는 기능 간 의존성과 인프라 우선도를 기준으로 제안합니다. 확정 전 논의가 필요합니다.

```
1. 에러 안내 (Error Guidance UX)        ← 모든 기능의 UX 품질 기반
2. 다국어 지원 (i18n)                    ← 이후 모든 텍스트에 적용
3. 봇 상태 메시지 (Bot Presence)         ← 독립적, 비교적 간단
4. 권한 검사 (Permission Audit)          ← 운영 안정성 확보
5. 감사 채널 (Audit Log Channel)         ← 운영 모니터링 인프라
6. 봇 설정 도우미 (Setup Wizard)         ← 위 기능들이 갖춰진 뒤 통합 설정
```

**의존성 관계:**
- **에러 안내** → 다국어 지원 적용 시 메시지 템플릿이 i18n 키로 전환
- **다국어 지원** → 이후 모든 기능의 사용자 텍스트가 이 시스템을 사용
- **설정 도우미** → 다국어, 감사 채널 등 설정 가능한 기능이 먼저 존재해야 의미 있음
