# 2026-03-27: 임시 음성 채널 고도화 (서버별 설정 및 닉네임 폴백) 임시 채널 생성 시 서버마다 다른 설정을 유지할 수 있도록 하고, 채널 이름에 보다 적절한 닉네임을 사용하도록 시스템을 개선했습니다. ## 주요 개선 사항 ### 1. 서버별 독립 프로필 지원 - **DB 스키마 변경**: `UserVoiceProfile` 모델을 유저ID와 서버ID의 복합 키(`[userId, guildId]`) 구조로 리팩토링했습니다. - 이를 통해 한 유저가 서버 A에서 설정한 채널 이름 템플릿이나 인원 제한이 서버 B의 활동에 영향을 주지 않도록 독립성을 확보했습니다. ### 2. 정교한 이름 확인 로직 (`getEffectiveName`) 채널 이름 생성 시 사용자의 이름을 다음 우선순위에 따라 결정합니다: 1. **서버 닉네임** (Server Nickname) 2. **글로벌 디스플레이 이름** (Global Name) 3. **사용자명** (Username) 4. **사용자 ID** (ID - 최후의 수단 탈출구) ### 3. 서버 전역 음성 설정 명령어 추가 (`/voice-config`) - `set-name`: 서버 내 모든 임시 채널에 적용될 기본 이름 템플릿 설정 (예: `{{username}}의 방`). - `set-limit`: 서버 기본 인원 제한 설정. - `status`: 현재 서버에 적용된 음성 관리 정책 확인. ## 검증 결과 - **유닛 테스트**: `VoiceService.test.ts`를 통해 닉네임 결정 로직이 의도한 우선순위대로 작동함을 확인했습니다. - **수동 테스트**: 서로 다른 서버에서 한 유저에게 다른 프로필이 각각 독립적으로 저장되고 적용됨을 확인했습니다.