1. PlayerId 스푸핑 방지: OnTransformPlayer, OnActionPlayer, OnStatePlayer에서
브로드캐스트 전 packet.PlayerId = hashKey로 강제 교체
2. HP/MP 클라이언트 조작 방지: OnStatePlayer에서 범위 클램핑
(0 ≤ Hp ≤ MaxHp, 0 ≤ Mp ≤ MaxMp)
3. CreateParty 파티원 등록 누락 수정:
- memberIds 파라미터 사용 시 모든 멤버를 playerPartyMap에 등록
- 리더 중복 추가 방지 (Contains 체크)
4. OnIntoChannel 채널 만석 유령 상태 방지:
이전 채널 제거 후 새 채널 입장 실패 시 이전 채널로 복귀
5. HandleAuth async 경합 방지:
authenticatingTokens HashSet으로 동일 토큰 동시 인증 차단
6. 레이드 맵 미반환 수정:
TryReleaseRaidMap 헬퍼 추가, OnChangeMap/OnSessionDisconnected에서
레이드 맵(1001+) 유저 0명 시 인스턴스 맵 해제
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- ARepository 전체 메서드 IDbConnection using 추가 (커넥션 풀 누수)
- GameServer NotImplementedException → 로그 출력으로 변경
- ServerBase Auth/Echo payload 길이 검증 주석 해제
- PacketSerializer MemoryStream using 추가 (양쪽 솔루션)
- PacketSerializer size 파라미터 제거, 자동 계산 + size 검증 구현
- ServerBase NetDataWriter cachedWriter 재사용 (GC 압력 감소)
- ServerBase isListening volatile 추가
- ServerBase Deserialize 실패 시 null payload 체크
- ServerBase Serilog 구조적 로깅 템플릿 구문 수정
- TestHandler 전체 메서드 try-catch 추가
- TestRepository IDbConnectionFactory 인터페이스로 변경
- DummyClients BodyLength 계산 불일치 수정
- DummyClients pendingPings 메모리 누수 방지
- EchoClientTester async void 이벤트 → 동기 Cancel()로 변경
- ANALYSIS.md 코드 분석 및 문제점 보고서 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>