프로젝트 개요
report · 11 of 18 · 10 commits · 1d03e31ec3cda8294648bb464e1e14b4bddf4056..c15e945bf484d6143e07318eb9a236ea68b151a7

BlackAndWhite UI는 전진했지만 네트워크 표시 신뢰성이 흔들린다.

HIGH 진행도 45% (+ 5pts) 2026. 4. 28. PM 5:13

프로젝트 예상 진행도

기준: 2026. 4. 28. PM 5:13
45 / 100

문서화 상태

Design
4/10
Technical
3/10
Spec
3/10
#블랙앤화이트 #네트워킹 #UI #상태동기화 #문서부채

HANPAN — BlackAndWhite UI/네트워크 스냅샷

1. 주요 변경사항

2. 코드 품질 리뷰

가장 큰 문제는 BoardLayout3D가 PlayerA/B를 로컬 플레이어 기준으로 다시 매핑하지 않는다는 점이다. 현재 코드는 A 제출은 항상 내 슬롯, B 제출은 항상 상대 슬롯으로 칠한다.

SetColor(_mySlots[idx], TileColorOf(_state.PendingColorA.Value));
SetColor(_oppSlots[idx], TileColorOf(_state.PendingColorB.Value));

이 구조는 A 클라이언트에서는 맞아 보이지만 B 클라이언트에서는 반대로 표시된다. 왜 문제냐면 멀티플레이 UI에서 “내가 낸 패”와 “상대가 낸 패”가 뒤집히면 플레이어가 결과를 신뢰할 수 없고, 이후 버그 리포트도 재현이 어려워진다. 개선은 단순하다. IsLocalA()를 기준으로 A/B 상태를 my/opp 슬롯에 매핑하는 함수를 만들고, 제출 시점과 게임오버 공개 시점 모두 같은 함수를 사용해야 한다.

타이머 추가는 UI 경험 측면에서 전진이지만 현재는 표시용 코루틴이다. 0초가 되어도 서버가 자동 제출, 패널티, 무승부, 라운드 종료 중 어떤 처리도 하지 않는다. 이 상태로 두면 “시간 제한이 있는 게임처럼 보이지만 실제로는 멈출 수 있는 게임”이 된다. 타이머는 서버 권위 상태로 들어가야 하며, 클라이언트 UI는 남은 시간을 표시만 해야 한다.

PendingColorHasSubmitted보다 먼저 선언해 적용 순서를 기대하는 방식은 임시 처방이다. 선언 순서 의존은 네트워크 지연, 재접속, 초기 동기화에서 사고 지점이 된다. SubmittedTileState { round, submitted, color } 같은 단일 상태나 서버 RPC 이벤트로 제출 공개를 표현하는 편이 더 견고하다.

3. 진행도 평가

이번 범위는 BlackAndWhite의 플레이 감각을 구체화했다는 점에서 분명한 전진이다. 상대 패 색상 표시, 히스토리, 게임오버 후 Room 복귀는 실제 플레이 테스트에서 바로 체감되는 변화다.

다만 10개 커밋 중 상당수가 UI/동기화 버그 수정이며, 핵심 네트워크 표시 로직에 새 방향성 버그가 들어갔다. 현재 진행도는 약 45%로 본다. “돌아가는 장면”은 생겼지만, 2인 클라이언트 양쪽에서 같은 사실을 일관되게 보여주는 단계에는 아직 도달하지 못했다.

4. 다음 권장사항

5. 문서화 상태

design 점수는 4점이다. BlackAndWhite의 의도와 심리전 구조는 일부 드러나지만, 플레이어 경험 목표와 UI 정보 공개 원칙이 아직 문서로 고정되지 않았다.

technical 점수는 3점이다. 이번 변경은 네트워크 권한과 상태 동기화가 핵심인데, PlayerA/B 매핑, 라운드 상태, Room 복귀 흐름을 설명하는 기술 문서가 부족하다.

spec 점수는 3점이다. 타이머 60초, 히스토리 표기, 제출 후 공개 범위 같은 값이 코드에 먼저 들어갔다. 테스트 체크리스트로 쓸 수 있는 씬별/UI 상태 사양서가 필요하다.

6. 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%