Seven-Shards-ORIGIN — 로비 리팩터링 및 폰트 점검 스냅샷
1. 주요 변경사항
NetworkMultiplayerLobbyDriver가 Chat, ConnectionFlow, RoomList, WaitingRoom partial로 분리되었다. 단일 파일 비대화는 완화되었다.PlayerController도 Camera, CoreLoop, Effects, Lifecycle, Movement partial로 쪼개졌다. 플레이어 코드의 탐색성은 분명히 좋아졌다.NetworkMultiplayerLobbyRoot.prefab가 대량 변경되었고, 로비 버튼·슬롯·상태 표시 UI 구조가 크게 재배치되었다.- 로비 프리팹 감사용 에디터 스크립트와 권한 모델·수동 체크리스트·TMP CJK fallback 문서가 추가되었다.
GameNetworkManager수정과 NotoSansKR SDF/font maintenance 변경이 함께 들어갔다.
2. 코드 품질 리뷰
큰 클래스 분할은 좋은 방향이다. 특히 로비 Driver와 PlayerController를 기능별 partial로 나눈 것은 리뷰와 디버깅 진입 비용을 낮춘다. 다만 partial은 파일만 나눌 뿐 같은 클래스의 필드와 생명주기를 공유한다. 상태 전이, 버튼 바인딩, 네트워크 콜백이 여전히 서로의 내부 필드에 직접 기대면 구조적 결합은 그대로 남는다. 다음 단계는 파일 분리가 아니라 상태 전이 테스트와 명시적 소유권 경계다.
이번 커밋의 가장 큰 위험은 NetworkMultiplayerLobbyRoot.prefab의 대량 serialized 변경이다. diff상 fileID 재배치, 텍스트 오브젝트 이동, 버튼 추가가 섞여 있어 의도 변경과 Unity YAML churn을 구분하기 어렵다. 프리팹 감사 스크립트를 추가한 판단은 칭찬할 만하다. 그러나 이 감사가 CI나 빌드 전 검증에 묶이지 않으면 “좋은 도구가 존재한다” 수준에서 멈춘다.
네트워킹 측면에서는 권한 모델 문서가 추가된 점이 긍정적이다. 반대로 말하면 이제 코드가 그 문서를 어기면 더 위험하다. 로비 참가, 방 생성, 슬롯 액션, 재접속 상태는 서버와 클라이언트 중 누가 최종 권한을 갖는지 코드에서 일관되게 드러나야 한다. 버튼의 persistent m_OnClick이 비어 있는 구조라면 런타임 바인딩 누락을 자동으로 잡아야 한다.
3. 진행도 평가
이전 대비 전진은 분명하다. 로비 TODO를 문서·감사 도구·코드 분리로 밀어낸 점은 생산적인 커밋이다. 문서도 단순 메모에서 권한 모델과 수동 검증 절차로 올라섰다.
다만 한 커밋에 네트워크 버그 수정, 대형 프리팹 재구성, PlayerController 분리, 폰트 자산 변경, 문서 추가가 모두 들어갔다. 변경 폭이 넓어 회귀 원인 추적 비용이 크다. 현재 진행도는 63%로 본다. 플레이 가능성은 올라갔지만, 자동 검증 없이 네트워크 로비를 안정권으로 보기에는 이르다.
4. 다음 권장사항
- 로비 Driver 상태 전이와 재접속 흐름을 자동 테스트로 고정한다.
NetworkMultiplayerLobbyRoot프리팹 참조 감사를 CI 또는 빌드 전 단계에 연결한다.PlayerController의 입력·이동·카메라 책임 경계를 테스트와 코드 소유권으로 검증한다.- 권한 모델 문서와
GameNetworkManager구현이 실제로 일치하는지 점검한다. - CJK fallback, 누락 로케일 키 수집,
GameLocale변경 시 화면 재갱신을 묶어서 처리한다. Resources기반 로비 UI 로딩의 Addressables 전환 기준을 문서에 확정한다.
5. 문서화 상태
design은 6점이다. DEMO_PLAYER_RACE_OOP_DESIGN.md가 의도와 구조를 설명하지만, 전체 게임의 코어 루프·플레이 경험 목표·밸런싱 의사결정까지 포괄하지는 못한다.
technical은 7점이다. 네트워크 로비 권한 모델, OOP 설계, TMP fallback guide는 신규 유입자에게 실질적인 도움을 준다. 다만 클래스 간 데이터 흐름, 자동 검증 위치, 빌드/배포 절차가 아직 약하다.
spec은 6점이다. 수동 체크리스트와 실행 계획은 QA 기준으로 활용 가능하다. 그러나 입력-상태-결과 매핑, 실패 케이스, 자동 판정 기준이 _sample/docs 수준의 사양서로 정리되지는 않았다.
6. Backlog
NetworkMultiplayerLobbyRoot.prefab의 대량 fileID churn은 계속 추적해야 한다.GameLocale변경 시 이미 그려진 TMP 텍스트 재갱신 경로가 아직 불명확하다.TrapFieldWest.unity의 Mesh fileID 셔플 이슈는 이번 범위에서 해결 근거가 없다.Resources기반 UI·로케일 로딩의 Addressables 전환 판단이 남아 있다.- UI Bootstrap/Driver/RootRefs 3계층 규약은 독립 문서와 검증으로 고정해야 한다.
LocalizedStrings누락 키 리포트와 en 외 fallback 전략이 필요하다.- ja/zh 글리프는 KR SDF 대리 상태로는 출시 품질을 보장하기 어렵다.
7. 이전 Backlog 해결
- 루트에서 사라진 체크리스트의 후속 위치 문제는
Docs/NETWORK_MULTIPLAYER_LOBBY_MANUAL_CHECKLIST.md추가로 해소되었다. 다만 현재 문서는 로비 수동 검증 중심이므로, 전체 플레이테스트 체크리스트로 확장할 필요는 남아 있다.