프로젝트 개요
report · 11 of 14 · 1 commits · a9bfc18b26f3c8bb0e9882c8e40fe3a090397530..fb62eaaa9086a07743d4dc1217ca4c1fee19fbb7

버퍼 크기 산정은 개선됐으나 네트워크 검증 공백이 남았다.

MED 진행도 56% ( -7pts) 2026. 5. 1. PM 11:06

프로젝트 예상 진행도

기준: 2026. 5. 1. PM 11:06
56 / 100

문서화 상태

Design
4/10
Technical
3/10
Spec
3/10
#네트워킹 #NGO #로비 #버퍼 #문서화

Seven-Shards-ORIGIN — 로비 메시지 버퍼 안정화 스냅샷

1. 주요 변경사항

2. 코드 품질 리뷰

이번 수정의 방향은 타당하다. 문자열 직렬화는 단순히 UTF-8 본문 byte 수만으로 끝나지 않고 길이 정보와 내부 직렬화 규약이 함께 따라붙는다. 기존 방식은 짧은 ASCII 닉네임에서는 우연히 통과하고, 긴 문자열이나 다국어 문자열에서만 OverflowException이 터지는 전형적인 런타임 버그를 만든다. FastBufferWriter.GetWriteSize로 바꾼 것은 Unity NGO API와 책임을 맞춘 좋은 수정이다.

estimatedSize += sizeof(ulong)
               + FastBufferWriter.GetWriteSize(GetNickname(_orderedClientIds[i]))
               + sizeof(int);

위 패턴은 현재 write 순서와 맞아 보인다. 그러나 여전히 “쓰기 순서”와 “크기 계산 순서”가 별도로 유지된다. 이것이 문제인 이유는 다음 필드가 하나 추가될 때 한쪽만 고치면 같은 장애가 재발하기 때문이다. 개선하려면 메시지별 GetPayloadSize 헬퍼를 만들고, 실제 write 순서와 같은 순서로 계산하도록 묶어야 한다. 더 좋은 방식은 직렬화 라운드트립 테스트로 한글, 긴 닉네임, 빈 문자열, 최대 길이를 고정하는 것이다.

네트워킹 관점에서는 host가 방 상태를 브로드캐스트하고 client가 메타만 보내는 구조라 권한 방향은 크게 어긋나지 않는다. 다만 이번 diff 안에는 닉네임과 슬롯 ID 길이 상한 근거가 보이지 않는다. 클라이언트 입력 문자열이 무제한이면 버퍼 overflow는 고쳐도 전송량, UI 깨짐, 악의적 payload 문제가 남는다. 입력 단계에서 길이를 제한하고, 초과 시 잘림·거부 정책을 명시해야 한다.

3. 진행도 평가

이번 커밋은 기능 추가가 아니라 네트워크 로비 안정화 성격의 버그 수정이다. 플레이 가능성에는 긍정적이지만, 프로젝트 완성도 자체를 크게 끌어올리는 변화는 아니다. 커밋 메시지는 원인과 영역을 직접 말하고 있어 품질이 좋다.

현재 진행도는 약 56으로 본다. 로비 네트워킹의 런타임 예외 하나는 줄었지만, 문서·테스트·로컬라이즈·리소스 로딩 backlog가 그대로 남아 있다. 특히 네트워크 메시지는 작은 버그가 재접속과 멀티플레이 QA 비용을 급격히 키우므로 다음 스프린트에서 검증 자동화가 필요하다.

4. 다음 권장사항

5. 문서화 상태

design은 4점으로 본다. 이번 커밋에서 게임 디자인 문서 갱신은 없고, 현재 스냅샷만으로 코어 루프와 플레이 경험 목표가 충분히 추적되지는 않는다.

technical은 3점이다. 네트워크 메시지, host/client 권한, 로비 상태 흐름이 코드에는 있으나 신규 개발자가 문서만 보고 안전하게 수정할 수준은 아니다. 이번 버퍼 버그도 메시지 스키마 문서와 테스트가 있었다면 더 빨리 잡혔을 가능성이 높다.

spec은 3점이다. 닉네임 길이, 슬롯 ID 규격, 로컬라이즈 누락 키 처리, Addressable 전환 기준 같은 QA 가능한 수치·규칙이 부족하다. 사양서는 체크리스트로 쓰일 수 있어야 하는데 아직 코드 관찰에 의존하는 비중이 크다.

6. Backlog

리포트 타임라인

14개 스냅샷 · 최신순
MED 2 commits UI 로딩·로케일 안정화가 전진했으나 Addressables는 미완료. 66% HIGH 1 commits 로비 검증은 늘었으나 대량 프리팹 변동 위험이 크다. 64% HIGH 1 commits UI 기능은 전진했으나 대량 씬·프리팹 셔플 위험이 크다. 58% MED 1 commits 버퍼 크기 산정은 개선됐으나 네트워크 검증 공백이 남았다. 56% HIGH 1 commits 로비와 폰트 TODO는 전진했지만 대량 prefab churn 위험이 크다. 63% MED 1 commits 대형 클래스 분할은 진전이나 책임 경계 검증이 필요하다. 64% HIGH 1 commits 멀티플레이 로비는 복구됐지만 변경 면적과 검증 위험이 크다. 55% MED 2 commits LAN 로비 제거와 TMP 폰트 통합은 전진이나 검증 공백이 남아 있다. 63% HIGH 2 commits 세이브·입력·보스가 전진했지만 씬·네트워크 부채가 크다. 60% HIGH 2 commits LAN 멀티룸 로비는 전진했지만 네트워크 구조 리스크가 높다. 62% HIGH 4 commits 보스전·세이브·입력 전진은 크지만 씬/네트워크 검증 위험이 높다. 57% HIGH 2 commits 보스전과 추격전은 전진했지만 씬·문서 부채가 크다. 64% MED 2 commits 메가 추격 출구 확정 로직 정리, 로케일·런타임 UI 뼈대 투입. 58% MED 7 commits UI 프리팹 베이크 파이프라인 대규모 도입, 네트워크 타이머 최적화 진척. 55%