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