프로젝트 개요
report · 5 of 9 · 2 commits · f7955c0cdbf8c7f2aedda266c0e587270a7ced1f..e146f407db9cce868b70169902430e6e8a3a8dff

턴 시스템은 진전됐지만 네트워크 권한 부채가 그대로 남았다.

HIGH 진행도 37% ( -5pts) 2026. 4. 29. PM 4:55

프로젝트 예상 진행도

기준: 2026. 4. 29. PM 4:55
37 / 100

문서화 상태

Design
2/10
Technical
1/10
Spec
1/10
#턴시스템 #네트워킹 #권한모델 #문서화 #저장소정리

YJ — 턴 시스템 확장 스냅샷

1. 주요 변경사항

2. 코드 품질 리뷰

이번 커밋은 게임 루프 측면에서 의미 있는 기능을 추가했다. 턴 제한 시간, 타임아웃, 생명 차감은 대전 보드게임에서 핵심 규칙이므로 구현 우선순위가 맞다. 다만 변경량이 PlayerController.cs에 크게 몰려 있다. 플레이어 입력, 말 선택, 포로 재배치, 턴 규칙, 네트워크 송수신이 한 MonoBehaviour 안에서 계속 커지면 재현 가능한 테스트가 어려워지고, 버그가 “입력 문제인지 룰 문제인지 패킷 문제인지” 분리되지 않는다.

개선 방향은 분명하다. PlayerController는 입력과 화면 반응만 맡기고, 턴 상태와 승패 판정은 순수 C# 클래스인 TurnStateMachine 또는 GameRuleService로 분리해야 한다. 시간 제한, 타임아웃 허용 횟수, 생명 차감량 같은 값은 매직 넘버로 흩어지면 밸런싱이 불가능하므로 ScriptableObject 설정으로 빼는 것이 좋다. Unity 씬에 종속되지 않는 룰 테스트를 먼저 만들면 네트워크 디버깅 비용도 크게 줄어든다.

가장 큰 위험은 여전히 네트워크 권한 모델이다. 서버가 승패, 생명, 타임아웃의 최종 주인이 아니라면 클라이언트가 보낸 패킷 하나로 결과를 바꿀 수 있다. 커스텀 소켓 구조를 계속 쓸 수는 있지만, 그 경우에는 Mirror/NGO가 대신 제공해주던 권한 경계, RPC 방향, 검증 규칙을 직접 문서화하고 코드에 강제해야 한다.

3. 진행도 평가

진행도는 37%로 본다. 턴제 핵심 루프가 조금씩 형태를 갖추고 있고, 빌드 산출물을 저장소에서 제거한 것은 분명한 개선이다. 하지만 아직 “공정한 2인 대전이 안정적으로 반복 가능하다”고 보기에는 이르다.

남은 리스크는 기능 수보다 구조 쪽에 있다. 지금 네트워크와 룰 판정이 느슨하게 결합된 상태로 기능을 계속 얹으면, 이후 버그는 대부분 런타임에서만 드러난다. 이번 단계에서 서버 권위와 룰 테스트를 잡지 않으면 다음 2주 비용이 급격히 오른다.

4. 다음 권장사항

5. 문서화 상태

design은 2점이다. 게임의 큰 방향은 추정 가능하지만, 코어 루프와 턴제 규칙을 왜 그렇게 선택했는지 설명하는 문서가 부족하다. 현재 수준은 팀원이 같은 판단 기준으로 기능을 확장하기 어렵다.

technical은 1점이다. 커스텀 네트워크 스택을 쓰고 있는데 권한 모델, 패킷 방향, 서버 검증 기준이 문서화돼 있지 않다. 이 상태는 신규 합류자가 코드를 읽어도 “무엇을 믿어도 되는지” 판단하기 어렵다.

spec은 1점이다. GDD/TDD placeholder와 씬 구성 미정 상태가 계속 남아 있다. _sample/docs 수준의 테스트 가능한 사양서와 비교하면, 입력·상태·결과 매핑과 밸런스 수치표가 거의 비어 있는 단계다.

6. Backlog

7. 이전 Backlog 해결

리포트 타임라인

9개 스냅샷 · 최신순