프로젝트 개요
report · 8 of 18 · 2 commits · a9a1902640136f6c6a55fa2ee40a8e2a4b2ab981..d4b001c3e34ebdc468fee67e37562d9e2c6822f3

흑과백 모델링은 전진했으나 동시 제출 규칙이 흔들린다.

MED 진행도 33% ( -12pts) 2026. 4. 27. AM 10:22

프로젝트 예상 진행도

기준: 2026. 4. 27. AM 10:22
33 / 100

문서화 상태

Design
6/10
Technical
6/10
Spec
7/10
#네트워킹 #상태머신 #데이터모델 #문서화 #기술부채

HANPAN — BlackAndWhite 데이터 모델 스냅샷

1. 주요 변경사항

2. 코드 품질 리뷰

이번 변경의 좋은 점은 모델의 책임 경계가 비교적 선명하다는 점이다. Hand는 서버 내부 손패 컨테이너로 두고, MatchState는 공개 가능한 라운드 상태만 NetworkVariable로 분리했다. 이는 멀티플레이 게임에서 가장 중요한 “누가 상태의 주인인가”를 코드에 드러내는 방향이라 긍정적이다. 이번 범위에는 Update, 반복 GetComponent, Instantiate/Destroy 루프 같은 Unity 런타임 비용 문제도 새로 생기지 않았다.

다만 Tile은 핵심 도메인 타입인데 값 검증이 없다. 지금은 주석으로만 1~9를 보장한다.

public byte Number;
public Tile(byte number) { Number = number; }

왜 문제인가 하면, 잘못된 숫자가 한 번 들어오면 색상 계산, 승패 비교, 네트워크 직렬화가 모두 그 값을 정상값처럼 취급한다. 개선은 단순하다. 생성자 또는 정적 팩토리에서 1..9 범위를 강제하고, Compare(1,9), Compare(9,1), 일반 대소 비교, 동률 테스트를 먼저 추가해야 한다.

가장 큰 위험은 “동시 제출”이라는 이름과 실제 설계가 다르다는 점이다. 현재 사양은 먼저 제출한 플레이어의 색상이 즉시 공개되어, 나중에 제출하는 플레이어가 그 정보를 보고 반응할 수 있다. 이것이 의도라면 동시 제출이 아니라 색상 선공개 심리전이다. 진짜 동시 제출이 목표라면 양쪽 선택을 잠근 뒤 둘 다 제출했을 때 색상을 공개하는 commit-reveal 구조로 바꿔야 한다. 또한 PendingColorA/B 기본값이 Black이라 미제출 상태와 흑 제출 상태가 값만으로 구분되지 않는다. UI가 HasSubmitted 게이트를 놓치면 잘못된 정보가 표시될 수 있으므로 Unknown 값을 두거나 제출 상태와 색상을 하나의 구조로 묶는 편이 안전하다.

3. 진행도 평가

이전 대비 전진은 분명하다. 문서가 자연어 아이디어에서 서버 권한, 상태머신, edge case 중심의 개발 사양으로 올라왔고, 코드도 그 사양을 따르는 최소 모델을 만들기 시작했다. 커밋 메시지도 docs(spec), feat(game)로 의도가 분리되어 추적성이 좋다.

하지만 아직 플레이 가능한 루프는 아니다. ServerRpc, ClientRpc, 라운드 전이, UI 입력 활성화, NetworkObject 배치, Player Prefab 전략이 모두 남아 있다. 그래서 진행률은 33%로 본다. 지금 단계에서 동시 제출 규칙을 확정하지 않으면 이후 네트워크 디버깅 비용이 급격히 커진다.

4. 다음 권장사항

5. 문서화 상태

design은 6점이다. 흑과백의 정보 은닉과 심리전 방향은 드러나지만, 플레이어 경험 관점에서 왜 동시 제출 또는 선공개 구조를 택하는지 설명이 아직 부족하다.

technical은 6점이다. 서버 권한 모델과 NetworkVariable 공개 범위는 좋아졌으나, NetworkObject 생명주기, Player Prefab, 씬 배치, 이탈 처리 흐름이 아직 연결되지 않았다.

spec은 7점이다. BlackAndWhite 사양서는 상태, 종료 조건, 연장전, 특수룰까지 테스트 기준으로 쓸 수 있는 수준에 가까워졌다. 다만 레벨/씬별 입력 매핑, HUD 수치, 실제 QA 체크리스트는 여전히 별도 사양으로 부족하다.

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%