⚠️ 이 일감은 T-085로 흡수됐다 (2026-09-24). 조사 내용·근거·처리 항목은 전부 그쪽에 합쳐져 있다 — 여기서는 굴러가지 않는다. 이 파일은 그때의 경위 기록으로만 남긴다.
배경
한글 산업 이름을 런타임에 주는 곳이 없다. 이름이 세 군데에 흩어져 있고, 이미 어긋나 있다.
산업만의 문제가 아니다 (2026-09-16 확인).
GlobalRarity도 똑같다 — 창고 도구 줄의 일괄 담기 드롭다운(일반 이하·고급 이하…)이 화면에 등급 이름을 내는데, 그 이름은StorageToolPresenter.RarityNames코드 배열에서 온다.Enum.xlsx의Desc("일반, 흰색/회색 #9D9D9D")는Enum.cs에 주석으로만 나가 런타임에 읽히지 않는다. 색도 같은 처지다(RarityPalette가 사본). 이 일감이 닫는 구멍이 등급까지 포함이다.
| 어디 | 무엇 | 런타임에 읽히나 |
|---|---|---|
GameDesign/Excel/Enum.xlsx의 Desc 칸 |
농사·낚시·채광… |
❌ — EnumGenerator가 // 농사 주석으로만 내보낸다 |
| 씬의 산업 버튼 5개 TMP 텍스트 | 농사·낚시·채굴·벌목·사냥 |
사람이 손으로 박아 둔 값 |
Assets/Scripts_Client/UI/Shared/IndustryLabel.cs |
농사·낚시·채굴… |
✅ — 2026-09-11에 클라가 급히 만든 사본(T-046) |
🔴 엑셀은 "채광", 씬과 기획은 "채굴"이다. 기획 문서에 미해결로 이미 적혀 있다 —
mining/README.md157행: "IndustryType.Mining·ItemType.Mining주석이 둘 다 '채광'인데 기획 용어는 '채굴'이다.Enum.xlsx에서 용어를 통일할 것" 이 일감이 그 항목도 함께 닫는다.
왜 서버에 요청하나
이름의 출처가 될 파이프라인이 서버 영역이다. 클라가 손댈 수 없다.
Server/ExcelGenerator/EnumGenerator.cs—Enum.xlsx→Enum.cs생성기GameDesign/generate-tables.ps1— 생성물을Server/GameData·Assets/Scripts_Server/GameData로 미러링
클라에서 할 수 있는 것은 "코드에 한 벌 더 적어 두기"뿐이고, 그게 지금 상태다.
IndustryLabel.cs는 급한 자리를 막은 사본이지 출처가 아니다 — 기획이 이름을 바꾸면
엑셀과 코드 두 곳을 고쳐야 하고, 한쪽을 잊으면 화면만 옛 이름으로 남는다.
할 일 — A안 기준 (B안 선택지는 아래)
A. Enum.xlsx의 표시 이름을 런타임 데이터로도 내보낸다
- [ ] ⚠️
Desc칸을 그대로 쓰지 않는다.Desc는 표시 이름 전용이 아니라 메모 칸이다 —GlobalRarity의Desc는"일반, 흰색/회색 #9D9D9D"다. 그대로 화면에 내면 등급 이름이 저렇게 뜬다. 표시 이름 전용 컬럼(예:Label)을 새로 두고, 비어 있으면 멤버 이름(영문)으로 떨어뜨린다. - [ ]
EnumGenerator가 그 컬럼을 조회 가능한 형태로 함께 생성한다 (Enum.cs옆에 라벨 맵 — enum 값 → 표시 이름.GameData네임스페이스여야 서버·Unity가 같이 쓴다) - [ ] 빈 칸·오타 대응을 정한다 — 없는 값을 물으면 무엇을 돌려주나 (영문 이름 권장. 빈 문자열은 화면에서 조용히 사라져 무엇이 빠졌는지 드러나지 않는다)
- [ ]
Mining의 표시 이름을채굴로 통일한다 (기획 용어) —IndustryType·ItemType둘 다 - [ ] 재생성 + 미러링 확인 (
generate-tables.ps1→Assets/Scripts_Server/GameData)
덤이 크다. 산업만이 아니라
ItemType·GlobalRarity·GachaRewardType등 모든 enum이 같은 경로로 이름을 얻는다. 지금은 등급 이름도 화면에 낼 수단이 없다.
B. 대신 산업 마스터 시트를 만드는 선택지
산업이 "이름 하나"로 끝나지 않게 되면 A로는 부족하다. 아이콘·설명·정렬 순서·대표 색이 붙기 시작하면 그건 enum의 라벨이 아니라 행(row) 이다.
GameDesign/Excel/Industry.xlsx에 산업 마스터 시트(IndustryTable)를 두고IndustryType· 표시 이름 · (뒤에 아이콘·정렬순서…)를 담는다- 클라는
GameDataLoader로 읽는다 — 다른 테이블과 같은 경로라 새 구조가 아니다
판단은 서버가 한다. 가르는 질문 하나:
이름 말고 더 붙을 것이 지금 보이는가? 안 보이면 A — 모든 enum이 한 번에 해결되고 표가 하나도 안 늘어난다. 보이면 B — A로 가면 아이콘이 붙는 날 표를 새로 만들면서 이름만 두 군데가 된다. (둘 다 하지는 않는다. 이름의 출처가 또 둘이 된다)
⚠️ B를 고르면 클라 후속 작업의 호출 코드가 달라진다(테이블 조회 vs 라벨 맵). 고른 쪽을 이 일감에 적어 주면 클라가 그에 맞춰 걷어낸다.
서버가 끝나면 클라가 할 일
이건 클라 담당이고 이 일감 안에서 이어서 한다. 선행은 위 A(또는 B)뿐이다.
- [ ]
Assets/Scripts_Client/UI/Shared/IndustryLabel.cs삭제 (.meta까지 — 유니티에서 지운다) - [ ]
UI/Storage/StorageToolPresenter/StorageToolPresenter.cs의RarityNames배열 삭제 — 일괄 담기 드롭다운(BuildRarityOptions)과 "담을 자원이 없습니다" 알림 두 곳이 쓴다.SellRarities는 남긴다(값의 목록이지 이름이 아니다) - [ ] 호출부를 새 출처로 교체 — 둘이다 (2026-09-20 재확인)
-
→ ✅ 호출이 사라졌다 (2026-09-12 · T-048) — 창고 칸의 적성 표시가 문구에서 5칸 스트립으로 바뀌어 산업 이름을 아예 쓰지 않는다 -UI/Storage/StorageGridPresenter/CharacterSlotSource.csUI/Main/WorkStationListPresenter/WorkStationSlotView.cs:58— 작업슬롯 칸의 산업 이름 -UI/Storage/StorageGridPresenter/EquipSlotSource.cs:128— 장비 효과 문구 (2026-09-19 T-043에서 생겼다) ⚠️ 여기는None을IndustryLabel에 넘기지 않는다 — '미지정'이 아니라 '전체'로 읽혀야 한다 - [ ] 씬의 산업 버튼 5개 라벨도 코드가 채우게 한다 —
WorkStationSelectPresenter.BindIndustryButtons에서 버튼 순서와 산업이 이미 1:1로 묶이므로 라벨도 그 자리에서 넣으면 된다. ⚠️ 이걸 해야 3중이 1중이 된다. 안 하면 씬에 손으로 박은 이름이 그대로 남아 엑셀에서 이름을 바꿔도 버튼만 옛 이름으로 남는다 > 같은 화면의 산업 레벨 버튼 5개는 이미 코드가 채운다(2026-09-20 · T-068) — > 이름이 산업마다 다른 파생값(IndustryLevelTable.Name)이라 씬에 박을 수가 없었다. 산업 버튼도 같은 자리에서 하면 된다. > 특성 화면(TraitPresenter)도IndustryLabel을 쓰지 않는다 — 노드 이름을 테이블에서 그대로 읽는다. - [ ] 문서 갱신
-
UI/System/System 규칙.md— 정적 변환표에서IndustryLabel.cs줄 삭제 -→ ✅ 대상이 이미 없다 (2026-09-12) — T-048이 그 절을 다시 쓰면서UI/Storage/Storage 규칙.mdIndustryLabel언급이 함께 사라졌다(문서에 0건) -UI/UI 배치 현황.md— 산업 버튼 라벨이 코드에서 온다는 사실 반영 -mining/README.md157행 — 채광/채굴 항목을 닫는다 (공용 영역이라 서버와 함께) - [ ]
.claude/Agent/2026-09-11-assign-list-filter-and-row-prefab.md의 "한글 산업 이름은 테이블에 없다" 지뢰 항목에 해소됨 한 줄
완료 조건
엑셀에서 산업 이름을 고치고 파이프라인을 돌리면, 코드를 한 줄도 안 고쳐도 화면의 이름이 바뀐다. (창고 칸 · 작업슬롯 칸 · 산업 버튼 셋 다) 등급 이름도 같은 경로로 온다(창고 도구 줄 드롭다운).
막고 있는 것 / 선행 일감
- 서버 쪽은 선행이 없다. 지금 착수 가능하다.
- 클라 후속은 서버 쪽 완료가 선행이다. 그전까지
IndustryLabel.cs가 그 자리를 대신한다 — 급하지 않다. 산업 5종은 패킷 enum(EIndustryType)에 박혀 있어 산업이 늘어나려면 어차피 엑셀·서버·클라를 동시에 고쳐야 한다(PacketEnumTest가 두 enum의 어긋남을 잡는다). 실제 위험은 "이름만 바뀌는 경우" 하나다.
관련 커밋
- 없음
참고
Server/ExcelGenerator/EnumGenerator.cs—AppendEnum(Desc→ 주석) ·ResolveColumns(1행EID/Name/Desc)Server/ExcelGenerator/ExcelGenerator.cs·TableCodeGenerator.cs— 표 쪽 생성·JSON 사이드카GameDesign/generate-tables.ps1— 생성 → 미러링 순서GameDesign/CLAUDE.md·excel-table-creator— 시트·컬럼 규칙- T-046 —
IndustryLabel.cs가 생긴 경위