HANPAN — 네트워크 뼈대 · 부트 시퀀스 착수
1. 주요 변경사항
00_Boot/01_Lobby/02_BlackAndWhite3 씬 신설과 함께BootManager→SceneLoader경로로 부트 시퀀스 골격이 섰다.HANPAN.Core/Network/Lobby/Lobby.Editor/Games.BlackAndWhite/UI의 asmdef 계층이 분리되어 의존성 방향이 코드 레벨에서 강제된다.- NGO(Unity Netcode for GameObjects)
NetworkManager+ UnityTransport 가00_Boot에 배치되고SessionManager/NetworkSetup스크립트가 추가되었다. fix(network): NetworkSetup 실행 순서 고정 (-100)— DefaultExecutionOrder 로 NGO 의존성 초기화 순서를 명시적으로 제어한다.LobbyUIBuilder에디터 툴로 로비 UI 를 씬에 자동 생성하고,M2: 단일 클라이언트 로비 동작 검증으로 Host 단일 연결 수준을 통과.
2. 코드 품질 리뷰
초기 골격 치고 모듈 경계 설정은 의도적이다. asmdef 로 Lobby → Network → Core 방향을 고정한 점, Editor 전용 도구를 Lobby.Editor 로 분리한 점은 시니어 개발자가 아는 “초기 투자” 에 해당한다. 이 단계에서 계층을 잡아두면 뒤에서 생기는 순환 참조를 구조적으로 막을 수 있어 긍정적이다.
반면 현재 코드에서 가장 큰 냄새는 LobbyUI 의 책임 과적재다. LobbyUI.cs 에 버튼 참조 6 개가 [SerializeField] 로 직접 묶이고, LobbyUIBuilder.SetReferences(...) 가 한 번에 모두 주입하는 방식은 확장성 면에서 벌써 무너지기 시작했다. 세션 상태(“연결 중 / 연결됨 / 실패”)가 늘어나면 statusText.text = "..." 분기문이 급증할 것이다. 코드가 더 커지기 전에 UI ↔ 네트워크 사이에 이벤트 혹은 간단한 상태 머신(State enum + 전환 메서드) 을 넣어두는 편이 싸다.
또한 01_Lobby.unity 가 단일 커밋에서 2351 라인으로 등장한 것은 장기적으로 위험하다. 빌더가 있으니 본질은 재생성 가능한 데이터지만, 그 결과물을 씬에 박아두면 팀 병합 충돌과 버전 차이 감지 불가 라는 두 가지 비용이 즉시 발생한다. 빌더 실행 결과를 Prefab 으로 추출하고 씬엔 그 Prefab 만 두는 구조가 정석이다. 마지막으로 SessionManager / NetworkSetup 이 각자 54 / 105 라인 수준인데, 여기에 실제 Relay · 재접속 · 권한 분기가 얹히기 전에 “상태의 주인” 을 문서·주석으로 못박아 둘 필요가 있다.
3. 진행도 평가
M2 라벨로 “단일 클라이언트 로비 동작” 을 검증했다는 건 의미 있는 마일스톤이다. 다만 네트워크 뼈대·씬 셋업·에디터 툴 단계이므로 실제 게임플레이(흑과 백 규칙) 구현은 아직 착수 전이며, 핵심 루프 · 권한 모델 · 재접속 시나리오가 모두 비어 있다. 진행도 22% 로 본다 — “플레이 가능한 스캐폴드 직전” 수준. 커밋 메시지는 컨벤션(feat/fix/chore + M2 스코프)이 지켜져 좋은 습관이 잡히는 중이며, .gitignore 에 .claude/ 를 추가한 것도 협업 위생상 올바른 판단이다.
4. 다음 권장사항
- SessionManager 가 Relay/Lobby SDK 를 쓸 것인지, 로컬 UTP 로 끝낼 것인지 확정하고 코드에 명시한다.
- LobbyUI ↔ SessionManager 사이를 이벤트/상태 머신으로 끊어 UI 에서 네트워크 분기문이 늘지 않도록 한다.
README/0. Unity_Dev_Plan.md에 권한 모델 섹션(어떤 상태를 Server 가, 어떤 것을 Client 가 소유하는지)을 추가한다.02_BlackAndWhite씬의 입력·HUD·승패 판정 스펙을 사양서로 분리한다.- URP 템플릿 잔존 자산 (
TutorialInfo/,Mobile_RPAsset) 을 제거해 빌드 용량·혼동을 줄인다.
5. 문서화 상태
- design (3/10):
README/에 개발 계획이 존재하지만 이번 커밋에서 design 축 갱신은 없다. 게임 컨셉·코어 루프·“흑과 백” 규칙의 근거가 한 문서에 모이지 않은 상태. - technical (4/10):
2. Unity_Setup_Checklist.md/3. Work_Breakdown.md신설로 셋업·작업 분할은 글로 남기 시작했으나, 네트워크 권한 모델·모듈 의존 다이어그램·asmdef 계층 설명이 없다. 새로 합류하는 팀원이 코드만 보고 경계를 이해하긴 어렵다. - spec (2/10): 레벨별 · 씬별 상세 사양서가 여전히 부재. 입력 매핑과 HUD 수치가 어디에도 정리되어 있지 않다.
_sample/docs의 레시피/레벨 사양서 수준까지 올리려면 본격적인 문서 스프린트가 필요하다.
6. Backlog
- WebGL 환경 Netcode 전송 계층 미결정 — UTP 기본값은 있으나 WebSocket/Relay 분기 판단 유보.
- 네트워크 권한 모델 원칙 → 모듈 매핑 부재. SessionManager 가 어떤 상태를 소유하는지 불명.
- 흑과 백 규칙 수치가 개발 계획 문서에 산재, 규칙 사양서 미작성.
- 레벨/씬별 상세 사양서(입력 매핑, UI 상태 전이, HUD 수치) 부재.
- URP 템플릿 튜토리얼·Mobile 렌더러 등 불필요 자산 잔존.
- 재접속 / 연결 끊김 / 씬 재로드 시 상태 복구 시나리오 미정의.
01_Lobby.unity가 2351 라인으로 비대화 — Builder 결과물을 Prefab 으로 추출 필요(신규).