Rougelike-EndWalker — 맵 노드 UI 통합 스냅샷
1. 주요 변경사항
Assets/Scrpits오타 경로를Assets/Scripts로 정리하고 UI 계층을 App/Core/Model/Presenter/View asmdef 구조로 나누었다.- 맵 노드 선택 화면에
NodeMapContainer, 시작/다음 스테이지 버튼,MapInfoPanel을 연결했다. Apice,Attrito,Bottega,Frammento,Non Finito,Riposo Fugace등 6종 노드 prefab과 표시 JSON을 추가했다.- TMP 한글 폰트 리소스와 노드 스프라이트를 추가해 한국어 UI 표시 문제를 해결하려는 시도가 보인다.
Visualizer Doc문서가 생겼으나 실제 사양서라기보다는 구현 메모 수준에 가깝다.
2. 코드 품질 리뷰
이번 변경의 가장 큰 장점은 맵 노드 UI를 단순 씬 배치가 아니라 Model/Presenter/View로 나누려는 방향성이다. UIManager, NodeMapView, MapDataConnecter, NodeClearTracker처럼 책임을 분리하려는 흔적은 긍정적이다. 다만 이름 품질은 아직 위험하다. Drow, Creater, Nod, Enry, MovePoword 같은 오타가 폴더·클래스·씬 오브젝트에 남아 있다. 이름은 취향 문제가 아니라 검색성, 직렬화 참조, 협업 커뮤니케이션의 기반이다. 지금 고치지 않으면 나중에는 prefab 참조와 문서까지 함께 깨져 수정 비용이 커진다.
가장 위험한 신호는 씬이 참조하는 MonoBehaviour 식별자와 파일명이 맞지 않아 보이는 부분이다. 통계상 추가 파일은 StageStartButton.cs인데 씬에는 다음 식별자가 남아 있다.
m_EditorClassIdentifier: View::UI.View.MapStartButton
Unity에서는 MonoBehaviour 클래스명과 파일명 불일치가 Missing Script, 컴포넌트 미부착, 직렬화 참조 손상으로 이어질 수 있다. 즉 “컴파일은 되는 것처럼 보이나 버튼이 안 눌리는” 런타임성 결함이 된다. 이 부분은 즉시 실제 에디터에서 스크립트 연결 상태를 확인해야 한다.
또한 App.csproj처럼 Unity가 생성한 파일이 새로 대량 커밋되었고 내부에 로컬 Unity 설치 경로와 Visual Studio 경로가 포함되어 있다. 팀 환경에서는 이 파일이 충돌과 불필요한 diff를 만든다. 추적 정책을 정하지 않으면 앞으로 모든 asmdef 변경이 거대한 노이즈로 섞여 코드 리뷰 품질을 떨어뜨린다.
3. 진행도 평가
이전보다 명확한 전진은 있다. 특히 노드 prefab 6종, 표시 데이터, 맵 정보 패널, 스테이지 이동 버튼까지 붙으면서 “맵 노드 선택 화면”이라는 기능 단위가 형태를 갖추기 시작했다. 단순 문서 작업보다 실제 Unity 씬과 prefab을 만진 점은 평가할 만하다.
다만 완성도는 아직 낮다. 버튼 콜백, 노드 선택 후 상태 전이, 클리어 추적, 다음 스테이지 생성이 자동 테스트나 체크리스트로 고정되어 있지 않다. 커밋 메시지도 Fix)가 반복되고 오타가 많아 작업 흐름이 안정적이라고 보기 어렵다. 현재는 플레이 가능한 핵심 루프보다는 UI 기능 조각을 연결하는 단계이며, 진행도는 약 34%로 보는 것이 타당하다.
4. 다음 권장사항
StageStartButton.cs와 실제 MonoBehaviour 클래스명을 맞추고,Main_NodSelect.unity에서 Missing Script가 없는지 확인해야 한다.- 노드 생성, 노드 클릭, 정보 패널 표시, 입장 버튼 실행까지 하나의 플레이모드 테스트로 묶어야 한다.
MapInfoPanel의 열기·닫기·입장 버튼 콜백을 코드에서 명시적으로 연결하고 실패 로그를 남겨야 한다.App.csproj,Rougelike.sln등 생성 파일 추적 여부를 정리하고 절대 경로가 repo에 남지 않게 해야 한다.node_display.json과 prefab enum 매핑이 어긋나면 에디터 검증에서 바로 실패하도록 만들어야 한다.
5. 문서화 상태
design 점수는 4점이다. README와 Visualizer 문서가 일부 갱신된 것으로 보이나, 게임의 코어 루프·노드 선택의 의도·플레이어 경험 목표가 아직 설계 문서 수준으로 정리되어 있지 않다.
technical 점수는 4점이다. App/Core/Model/Presenter/View 분리는 코드 구조 측면에서 설명 가치가 있지만, 신규 개발자가 데이터 흐름과 씬 연결 방식을 문서만 보고 이해할 수준은 아니다. 특히 UI 이벤트 흐름, prefab 참조 규칙, asmdef 의존 관계 설명이 필요하다.
spec 점수는 3점이다. 노드 표시 JSON은 생겼지만 확률, 보상, 해금 조건, BO 쿨다운, 클리어 판정 같은 테스트 가능한 수치 사양이 부족하다. _sample/docs 수준의 사양서와 비교하면 아직 체크리스트로 쓰기 어렵다.
6. Backlog
- 테스트 코드·플레이모드 검증 절차 부재는 계속 남아 있다. 이번 변경은 UI 연결이 많아 검증 부재의 비용이 더 커졌다.
- 확률 노드 가중치와 BO 쿨다운 근거 수치는 여전히 확인되지 않는다. 밸런싱 판단 기준이 문서와 데이터 양쪽에 필요하다.
- 사서·기록자·최종 보스 등 핵심 인물 특성과 밸런싱 수치도 아직 문서 근거가 부족하다.
- README의 placeholder와 작성자 표기 혼용은 이번 스냅샷만으로 해결을 확인할 수 없다. 다음 문서 정리 때 함께 제거해야 한다.
7. 이전 Backlog 해결
- 노드 prefab 3종 삭제 후 동등 대체 prefab 미확인 항목은 해결로 본다.
Assets/Prefabs/UI/Nodes에 6종 노드 prefab이 추가되었고,Main_NodSelect.unity의NodeMapContainer가 6개 노드 타입 prefab을 참조한다.