# 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 형태의 권한 진단 보고서 전송 | | **기획서** | `Docs/Plans/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 조합의 스텝 바이 스텝 인터랙션 | | **기획서** | `Docs/Plans/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 키로 전환 - **다국어 지원** → 이후 모든 기능의 사용자 텍스트가 이 시스템을 사용 - **설정 도우미** → 다국어, 감사 채널 등 설정 가능한 기능이 먼저 존재해야 의미 있음