146 lines
5.9 KiB
Markdown
146 lines
5.9 KiB
Markdown
# 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`](./i18n_Plan.md) |
|
|
|
|
**핵심 고려사항**
|
|
- Locale 키-값 구조 설계 (JSON / YAML 등)
|
|
- discord.js `interaction.locale` / `interaction.guildLocale` 활용 여부
|
|
- 번역 파일 관리 전략 (디렉터리 구조, 네임스페이스)
|
|
- DB에 서버·사용자별 언어 설정 저장 (Prisma 스키마 확장)
|
|
|
|
---
|
|
|
|
### 2. ✅ 권한 검사 (Permission Audit)
|
|
|
|
| 항목 | 내용 |
|
|
|------|------|
|
|
| **목표** | 봇이 각 기능을 수행하기 위해 충분한 권한을 가지고 있는지 진단하고 보고서를 생성 |
|
|
| **트리거** | 슬래시 명령어 (`/audit-permissions` 등) |
|
|
| **출력** | 실행한 채널에 Embed 형태의 권한 진단 보고서 전송 |
|
|
| **기획서** | [`Permission_Audit_Plan.md`](./Permission_Audit_Plan.md) |
|
|
|
|
**핵심 고려사항**
|
|
- 기능별 필요 권한 매핑 테이블 (Feature → Required Permissions)
|
|
- 서버 수준 / 카테고리 수준 / 채널 수준 권한 검사
|
|
- ✅ 충족 / ⚠️ 부족 항목을 시각적으로 구분하는 Embed 디자인
|
|
- 관리자 전용 명령어로 제한
|
|
|
|
---
|
|
|
|
### 3. ✅ 감사 채널 (Audit Log Channel)
|
|
|
|
| 항목 | 내용 |
|
|
|------|------|
|
|
| **목표** | 관리자가 지정한 텍스트 채널에 봇의 이벤트·문제 상황·서비스 상태 변동을 자동 기록 |
|
|
| **등록 방식** | 관리자가 명령어로 채널 생성 또는 기존 채널 등록 |
|
|
| **기록 대상** | 에러 발생, 봇 재시작, 기능 status 변동, 권한 이슈 감지 등 |
|
|
| **기획서** | [`Audit_Channel_Plan.md`](./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`](./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 키로 전환
|
|
- **다국어 지원** → 이후 모든 기능의 사용자 텍스트가 이 시스템을 사용
|
|
- **설정 도우미** → 다국어, 감사 채널 등 설정 가능한 기능이 먼저 존재해야 의미 있음
|