환경을 만들었는데 런에 안 보인다
새 시뮬레이션 환경을 정성껏 만들었습니다. 카탈로그에도 등록했습니다. 그런데 런을 돌리려니 — 그 환경이 목록에 없습니다. 분명 만들었는데 시스템은 모릅니다. 어디가 어긋난 걸까요?
여러 개의 "진실" — 어느 게 진짜인가
흔한 원인은, 데이터를 담는 곳이 여러 군데인데 런이 실제로 읽는 곳은 하나뿐이라는 것입니다.
도식 렌더링 중…
- 카탈로그 테이블 — 사람이 보는 목록. 여기 있으면 UI엔 뜹니다.
- 런 실행 레지스트리 — 오케스트레이터가 실제로 읽어 런을 띄우는 곳. 여기 없으면 런이 못 씁니다.
둘 다 채워야 하는데 카탈로그에만 넣으면, "보이지만 못 쓰는" 유령 환경이 됩니다.
💡 "런 실행 경로가 읽는 곳"이 유일한 진실 — 데이터가 여러 테이블에 흩어져 있으면, 런이 실제로 조회하는 그 하나가 진실 공급원(SSOT)입니다. 새 자산을 추가할 땐 "어디에 넣어야 런이 보는가?"를 먼저 확인하세요. 보여주기용 테이블에만 넣는 건 절반만 한 것입니다.
더 교묘한 함정 — 내용은 안 보고 플래그만 본다
이것의 사촌격인 더 위험한 버그가 있습니다. 거버넌스 게이트가 메타데이터만 보고 통과시키는 경우입니다.
⚠️ "등록됨" 플래그 ≠ "실제로 채워짐" — 어느 검증 게이트가 "환경이 준비됨"이라는 메타데이터 플래그만 보고 PASS를 줬습니다. 그런데 실제 환경 파일은 바닥(Floor)만 있는 1.9KB placeholder였습니다 — 187개 중 132개가 그랬습니다. 게이트가 파일 내용이 아니라 플래그만 봤기에 false PASS가 양산된 것입니다. "NorthernIsle 환경이 안 보인다"의 근본이 이거였습니다.
검증 게이트는 "있다고 적혀 있는가(메타데이터)"가 아니라 "실제로 있는가(파일 내용)"를 봐야 합니다. 이건 strict_pass·프로덕션 경로 검증과 같은 가족 — 실측이 아닌 선언을 믿으면 거짓이 쌓입니다.
교훈
- 진실 공급원은 하나로 — 런이 읽는 그 한 곳이 진짜다. 보여주기용 사본과 혼동 금지.
- 게이트는 내용을 검사 — 플래그가 아니라 실제 파일·데이터를 본다.
- "있다"와 "쓸 수 있다"는 다르다 — UI에 보이는 것과 런이 쓰는 것은 별개다.
한 줄 정리
📌 새 환경이 런에 안 보이면, 카탈로그(보여주기)에만 넣고 런 실행 레지스트리(오케스트레이터가 읽는 곳)엔 누락한 경우다. 런이 읽는 그 하나가 단일 진실 공급원(SSOT)이다. 더 위험한 건 게이트가 메타데이터 플래그만 보고 빈 placeholder를 PASS시키는 것 — 게이트는 선언이 아니라 실제 내용을 검사해야 한다.
