Seven-Shards-ORIGIN — 네트워크 로비 정리 스냅샷
1. 주요 변경사항
CoopLanLobby계열 명칭을NetworkMultiplayerLobby로 정리하고, 빌드 설정·타이틀·일시정지 복귀 경로를 새 씬명으로 맞췄다.- LAN 방 탐색 흐름을 담당하던
MultiRoomCoordinator,MultiRoomRuntimeView,MultiRoomMenuInputRouter,LanRoomDiscovery를 삭제했다. - TMP Noto KR SDF 자산을
Assets/Resources/Fonts기준으로 통합하고, 씬의 TMP 참조 GUID를 새 자산으로 교체했다. TrapFieldWest.unity에서 누락 스크립트로 보이는 컴포넌트가 제거됐고,MissingScriptAudit의 검색 범위와 예외 처리가 강화됐다.
2. 코드 품질 리뷰
이번 변경의 가장 좋은 점은 기능 방향을 줄였다는 점이다. LAN 브로드캐스트 방 목록, 런타임 UI 생성, 준비 상태, 씬 전환까지 한 클래스에 얹혀 있던 흐름을 제거한 것은 명확한 전진이다. MultiRoomCoordinator 삭제로 이전의 과도한 책임 집중은 해소됐다. 다만 “LAN 브라우저 제거”가 곧 “멀티플레이 로비 안정화”는 아니다. 이제 사용자는 직접 주소 접속 경로에 전적으로 의존하므로, 이 경로의 실패 메시지·타임아웃·재시도·호스트 복귀가 실제 기기에서 검증돼야 한다.
위험한 부분은 rename과 serialized field migration이다. TitleMainMenuDriver에 [FormerlySerializedAs("coopLobbyScenePath")]를 붙인 결정은 좋다. 기존 씬 직렬화 값을 살리는 Unity다운 처리다. 그러나 씬·프리팹·빌드 설정·문서가 동시에 움직였기 때문에 잔존 문자열 하나가 런타임 씬 로드를 조용히 실패시킬 수 있다.
[FormerlySerializedAs("coopLobbyScenePath")]
string multiplayerLobbyScenePath = "Assets/Scenes/NetworkMultiplayerLobby.unity";
TMP 폰트 통합도 방향은 타당하다. 중복 SDF 자산을 줄이면 참조 추적이 쉬워진다. 하지만 NotoSdfPath와 NotoSdfResourcesPath가 같은 값을 가리키는 상태에서 LoadOrCreateResourcesFontMirror가 사실상 “없으면 에러”로 바뀌었다. 생성·복구 자동화의 의도가 바뀐 것이므로, 새 정책을 문서화하지 않으면 다음 작업자가 다시 복사 로직을 되살릴 가능성이 높다.
3. 진행도 평가
진행도는 63%로 본다. 플레이 가능한 코어는 유지되고 있고, 네트워크 로비의 스코프를 줄인 것은 좋은 판단이다. 다만 이번 2개 커밋은 신규 기능 확장보다 정리·수습 성격이 강하다. 특히 누락 스크립트 제거와 폰트 GUID 교체는 반드시 에디터 검증과 실기기 플레이 검증이 따라와야 완료로 인정된다.
리스크는 medium이다. 네트워킹 코드와 씬 직렬화 변경이 동시에 들어갔지만, 권한 모델 붕괴나 데이터 손실 근거는 보이지 않는다. 대신 지금 검증을 미루면 다음 주부터는 “왜 로비에서 못 들어가는가”를 씬·프리팹·빌드 설정 전체에서 추적해야 하는 비용이 커진다.
4. 다음 권장사항
NetworkMultiplayerLobby의 호스트 시작, 직접 주소 참가, 대기실, 스테이지 시작을 2인 실기기로 검증해야 한다.MissingScriptAudit를 수동 메뉴가 아니라 제출 전 체크로 고정해야 한다. 씬 YAML 수정은 눈검토만으로는 부족하다.CoopLanLobby잔존 문자열과 구 prefab/scene 참조를 전역 검색해 rename 누락을 제거해야 한다.- TMP 통합 후 한국어뿐 아니라 일본어·간체·번체 샘플 문장으로 누락 글리프를 리포트해야 한다.
- Bootstrap/Driver/RootRefs 구조는 코드 주석이 아니라 기술 문서의 규약으로 올려야 한다.
5. 문서화 상태
design 점수는 5점이다. 게임 방향과 주요 시스템은 일부 문서와 handoff에 남아 있으나, 플레이 경험 목표와 콘텐츠 사양이 _sample/docs 수준으로 체계화됐다고 보기는 어렵다.
technical 점수는 5점이다. AI_HANDOFF.md가 최신 네트워크 로비 정리를 반영한 점은 좋다. 그러나 handoff는 인수인계 메모이지 아키텍처 문서가 아니다. 네트워크 권한 모델, 씬 전환 상태, 로비 UI 계층 규약은 별도 기술 문서가 필요하다.
spec 점수는 4점이다. 플레이테스트 체크리스트 위치가 여전히 불명확하고, 레벨·입력·로비 상태별 기대 결과가 테스트 가능한 표로 고정돼 있지 않다. 지금 상태에서는 변경이 맞는지보다 “돌아가는 것처럼 보이는지”에 기대게 된다.
6. Backlog
- 플레이테스트 체크리스트의 후속 위치가 확인되지 않는다. QA 기준이 사라지면 회귀를 발견하는 시점이 늦어진다.
FinalBossEnemy2D단일 클래스 집중 문제는 이번 범위에서 다뤄지지 않았다. 패턴·페이즈·연출 분리가 필요하다.TrapFieldWest.unity는 여전히 scene YAML 변경 검토 부담이 크다. 의미 있는 변경과 참조 정리를 분리 커밋으로 남겨야 한다.Resources기반 UI·폰트·로케일 로딩 정책은 유지 중이다. Addressable 전환 여부를 결정하지 않으면 빌드 크기와 로딩 비용 관리가 흐려진다.- 로컬라이제이션 fallback, 누락 키 리포트, 런타임 텍스트 재갱신, CJK 폰트 분리는 모두 미해결이다.
7. 이전 Backlog 해결
MultiRoomCoordinator에 LAN 로비 책임이 과도하게 집중은 해결됐다. 해당 클래스와 전용 런타임 뷰·입력 라우터·LAN discovery가 삭제되어, 과도하게 집중된 LAN 로비 책임 자체가 현재 코드 경로에서 제거됐다.