5.9 KiB
5.9 KiB
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 |
핵심 고려사항
- 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 변동, 권한 이슈 감지 등 |
| 기획서 | Docs/Plans/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 키로 전환
- 다국어 지원 → 이후 모든 기능의 사용자 텍스트가 이 시스템을 사용
- 설정 도우미 → 다국어, 감사 채널 등 설정 가능한 기능이 먼저 존재해야 의미 있음