프로젝트 개요
report · 7 of 18 · 3 commits · 48919123748f69d4b33796f18fa6e75c83836da6..a9a1902640136f6c6a55fa2ee40a8e2a4b2ab981

M2 안정화와 사양화는 진전, 게임 본편은 아직 진입 전이다.

MED 진행도 45% (+ 2pts) 2026. 4. 27. AM 1:36

프로젝트 예상 진행도

기준: 2026. 4. 27. AM 1:36
45 / 100

문서화 상태

Design
7/10
Technical
8/10
Spec
8/10
#네트워킹 #NGO #사양서 #연결안정성 #M3준비

HANPAN — M3 진입 준비 스냅샷

1. 주요 변경사항

2. 코드 품질 리뷰

이번 변경은 방향이 좋다. 특히 NetworkSceneTransitionHANPAN.Network에 두고 SceneLoader와 책임을 분리한 점은 칭찬할 만하다. NGO 참조를 Core로 끌어올리지 않은 판단 덕분에 이후 게임별 네트워크 코드가 늘어도 의존 방향이 무너지지 않는다. SessionErrorMessages도 raw exception 노출을 끊었다는 점에서 사용자용 UI와 디버그 로그의 경계를 명확히 했다.

다만 끊김 처리에는 즉시 고쳐야 할 결함이 있다. HandleSelfDisconnectedAsync에서 _session을 먼저 null로 만든 뒤 UnsubscribeSessionEvents()를 호출한다.

_session = null;
UnsubscribeSessionEvents();

이 순서면 기존 ISessionPlayerJoined/PlayerLeaving/Changed 해제가 수행되지 않는다. 왜 문제냐면 끊김·재입장 반복 시 죽은 세션 객체에 콜백이 남아 중복 이벤트, 잘못된 UI 갱신, 추적 어려운 비동기 버그로 이어질 수 있기 때문이다. 개선은 단순하다. null 대입 전에 이벤트를 해제하거나, UnsubscribeSessionEvents(ISession session)처럼 해제 대상을 명시적으로 넘겨야 한다.

또 하나의 위험은 NetworkSceneTransition.Load가 실패를 로그로만 남기고 호출자에게 알려주지 않는 점이다. RoomUI.OnStartClicked는 시작 버튼을 비활성화한 뒤 복구 경로 없이 Load를 호출한다. NGO 미활성, 서버 아님, LoadScene 실패가 발생하면 UI가 “게임 시작 중…”에서 멈출 수 있다. 네트워크 코드에서 “로그만 찍고 UI는 대기”는 사용자 입장에서는 정지와 같다. bool 또는 status를 반환하고 실패 시 SetInteractable(true)와 사용자 메시지를 복구해야 한다.

3. 진행도 평가

M2의 로비·대기실·세션 안정화는 확실히 전진했다. 문서와 코드가 같은 방향으로 움직이고 있으며, 이전 리포트의 네트워크 안전망 부채도 상당 부분 줄었다. 이 점은 좋은 흐름이다.

다만 프로젝트 완성도는 아직 45% 수준으로 보는 것이 맞다. 이유는 명확하다. 방 생성과 대기실은 동작하지만, 실제 게임 본편인 흑과 백의 데이터 모델·라운드 진행·NetworkVariable 동기화·승패 처리는 아직 코드로 들어가지 않았다. 지금부터가 M3의 본게임이다.

4. 다음 권장사항

5. 문서화 상태

design은 7점이다. 전체 개발 계획과 Work Breakdown이 현재 진행 상태를 잘 반영하고, M3 진입 조건도 명확하다. 다만 플레이어 경험 목표나 각 게임 모드의 의도는 아직 컨셉 문서 의존도가 높다.

technical은 8점이다. Network_Authority.md가 씬 전환, 권한, 실패 처리, 재시도 정책을 실제 코드 변경과 연결하고 있다. 신규 참여자가 네트워크 경계를 이해하는 데 충분히 실용적이다.

spec은 8점이다. BlackAndWhite_Spec.md는 경계 조건과 서버 검증까지 포함해 바로 구현 가능한 수준이다. 단, 레벨/씬별 입력 매핑, HUD 상태, UI 전이 사양은 아직 전체 프로젝트 기준으로는 비어 있다.

6. Backlog

7. 이전 Backlog 해결

리포트 타임라인

18개 스냅샷 · 최신순
MED 1 commits 3D 보드 비주얼은 전진했으나 씬 직편집 부채가 계속 누적됨. 31% HIGH 6 commits 멀티플레이 복귀 버그를 줄였지만 상태 생명주기 부채가 크다. 43% HIGH 4 commits 복귀 버그는 완화됐지만 씬 전환 책임이 UI에 퍼졌다. 43% HIGH 8 commits Additive 씬 전환은 전진했으나 네트워크 복귀 흐름 위험이 크다. 42% HIGH 9 commits Matching 씬 구조는 전진했지만 대형 씬 커밋 리스크가 계속 크다. 42% HIGH 5 commits PlayerState 전환은 진전이나 Prefab 등록과 권한 검증이 아직 위험하다. 48% HIGH 55 commits 3D 보드와 UI는 전진했지만 씬·네트워크 부채가 커졌다. 46% HIGH 10 commits BlackAndWhite UI는 전진했지만 네트워크 표시 신뢰성이 흔들린다. 45% HIGH 8 commits UI 전진은 있으나 씬 생성물·바인딩 부채가 커졌다. 40% HIGH 22 commits BlackAndWhite 구현은 전진했지만 씬·네트워크 부채가 급증했다. 43% MED 2 commits 흑과백 모델링은 전진했으나 동시 제출 규칙이 흔들린다. 33% MED 3 commits M2 안정화와 사양화는 진전, 게임 본편은 아직 진입 전이다. 45% MED 3 commits 네트워크 문서화는 크게 전진했으나 구현 안전망은 아직 남아 있다. 43% HIGH 10 commits 로비 UI와 Relay WSS는 전진했으나 설계 부채가 누적 중이다. 32% HIGH 7 commits 로비 기능은 전진했지만 네트워크 설계 부채가 커졌다. 34% MED 4 commits NGO 뼈대·00_Boot·asmdef 계층 구축, 단일 클라이언트 로비 검증. 22% MED 3 commits Unity URP 프로젝트 부팅 및 WebGL 전환, 핵심 기술 리스크는 미해결. 18% LOW 3 commits Unity 개발 계획 문서 신규 작성, 컨셉 오탈자 정정. 코드 착수 전 단계. 15%