HANPAN — 로비 네트워크 안정화 스냅샷
1. 주요 변경사항
- Relay 프로토콜을 WSS로 명시하여 WebGL 빌드와 Unity Transport 설정 불일치 문제를 한 단계 줄였다.
- 로비 방 목록 조회를 MultiplayerService 흐름으로 정리하고, 자동 갱신 간격을 8초로 조정했다.
- RoomEntry 레이아웃 문제를
LayoutElement, 앵커 강제,RectMask2D적용으로 여러 차례 보정했다. Base_01_Lobby.unity가 빌더 재실행으로 대규모 재직렬화되었다. 기능 전진은 있으나 변경 검토 비용이 매우 크다.- Work Breakdown 문서는 M2 완료와 M3 진입 기준으로 갱신되었다.
2. 코드 품질 리뷰
이번 변경에서 가장 좋은 점은 WebGL 전송 계층을 더 이상 암묵값에 맡기지 않은 것이다. Relay와 WebSocket 조합은 WebGL에서 런타임 실패로 드러나기 쉬운 영역이라, NetworkSetup.cs에서 WSS를 코드로 고정한 판단은 맞다. 단, 이것만으로 네트워킹 설계가 안정됐다고 보기는 어렵다. 권한 모델, 재접속, 씬 재로드 복구 기준은 여전히 문서와 코드에서 판정 가능할 정도로 드러나지 않는다.
로비 UI 쪽은 위험 신호가 더 크다. 커밋 대부분이 fix(lobby)와 debug(lobby) 흐름이고, 씬 파일은 약 5천 라인 규모로 재작성되었다. 이는 문제를 해결하지 못했다는 뜻은 아니지만, UI 구조가 Prefab·빌더·런타임 코드 중 어디에서 결정되는지 추적하기 어렵다는 뜻이다. 특히 RoomEntryTemplate, Viewport Mask, 앵커, LayoutElement를 순차로 고친 흐름은 원인 분석보다 증상 보정에 가까워 보인다.
m_Name: RoomScrollView
m_Viewport: {fileID: 1599067432}
m_Content: {fileID: 1504704786}
이런 Scene 직렬화 값이 핵심 동작의 증거가 되는 구조는 장기적으로 취약하다. 개선하려면 로비 UI는 빌더 또는 Prefab 중 하나를 단일 원천으로 삼고, 런타임 스크립트는 참조 연결과 상태 반영만 담당하게 분리해야 한다.
3. 진행도 평가
진행도는 약 32%로 본다. 로비 생성·조회·입장 UI와 WebGL Relay 접속 문제는 실제 플레이 가능한 멀티플레이 진입로를 만들고 있다는 점에서 전진이다. 다만 이번 10개 커밋 중 상당수가 디버그와 UI 레이아웃 회귀 수정이라 순수 기능 확장 속도는 낮다.
M3로 넘어가려면 “로비가 보인다”가 아니라 “2인 접속, 방 생성, 입장, 씬 전환, 끊김 후 복구”가 재현 가능한 체크리스트로 닫혀야 한다. 지금 상태에서 게임 규칙 구현으로 무작정 넘어가면 네트워크 문제와 게임 로직 문제가 섞여 디버깅 비용이 급증한다.
4. 다음 권장사항
- LobbyUIBuilder 기준으로 로비 UI 생성 규칙을 단일 소스로 고정해야 한다.
- SessionManager 재접속·연결 끊김·씬 재로드 복구 흐름을 먼저 정의해야 한다.
- NGO RPC와 NetworkVariable 권한 경계를 문서와 코드 주석으로 명시해야 한다.
- 로비 자동 새로고침은 지수 백오프와 수동 갱신 병행 구조로 바꿔야 한다.
- 흑과 백 핵심 규칙 수치와 승패 조건을 사양서로 분리해야 한다.
5. 문서화 상태
design은 4점이다. Work Breakdown은 갱신되고 있으나 게임의 코어 루프, 흑과 백의 선택 이유, 플레이어 경험 목표가 아직 설계 문서 수준으로 정리됐다고 보기 어렵다.
technical은 3점이다. WSS 결정은 코드에 반영되었지만 네트워크 권한, 세션 생명주기, 로비 상태 흐름이 신규 개발자가 문서만 보고 이해할 수준은 아니다.
spec은 2점이다. 로비 UI 상태, 입력 매핑, 방 목록 갱신 정책, 규칙 수치가 테스트 체크리스트로 쓸 만큼 구체화되지 않았다. _sample/docs 기준과 비교하면 아직 placeholder를 벗어나는 중간 단계다.
6. Backlog
- 네트워크 권한 모델이 여전히 미정의 상태다. RPC와 NetworkVariable의 주체를 정하지 않으면 이후 점수·턴·승패 동기화가 흔들린다.
- 재접속, 연결 끊김, 씬 재로드 복구 시나리오가 없다. 멀티플레이 게임에서는 출시 직전이 아니라 지금 닫아야 하는 항목이다.
- 01_Lobby UI는 여전히 씬 파일 변경량이 과도하다. 빌더나 Prefab 중심 구조로 고정하지 않으면 회귀가 반복된다.
- 흑과 백 규칙 수치와 레벨·씬별 상세 사양서가 부족하다. 구현 기준과 QA 기준이 분리되지 않아 개발 속도를 떨어뜨린다.
- URP 템플릿 튜토리얼과 불필요 렌더러 자산 정리는 아직 남아 있다.
7. 이전 Backlog 해결
- WebGL 환경에서 Netcode for GameObjects 전송 계층 미결정 항목은 해결로 본다.
NetworkSetup.cs변경과 커밋 메시지상 Relay protocol을 WSS로 명시하여 WebGL Transport 미스매치의 핵심 결정을 코드에 반영했다.