--- type: 조직자산 — 시행착오 아카이브 (기획 컨텐츠 기획자 관점) 추출 원본: 수상한잡화점 프로젝트 (NerdNavis) 추출일: 2026-04-20 추출자: 기획팀장 (BurningTimes) 적용 대상: EerieVillage 착수 시 및 차기 컨텐츠 설계 전반 참조 규칙: P30 재미 우선 · P17 배타 배치 · C22 용어 일관 · C23 허위 보고 금지 · C10-5 선행 검증 --- # 기획 컨텐츠 설계 — 시행착오 아카이브 v1 > **본 문서의 용도**: NerdNavis 수상한잡화점 개발 과정에서 컨텐츠 기획자(몬스터·아이템·스킬·장비·인장·퀘스트)가 겪은 시행착오를 BurningTimes 조직 자산으로 추출. EerieVillage 착수 시 동일 실수 반복을 차단한다. --- ## §1. 몬스터·적 등장 패턴 설계 시행착오 ### §1-1. 단독 보스 vs 혼합 등장 정합성 문제 **실증 사건 (수상한잡화점 #57)** Unity 테스트 플레이 "랜덤 패턴"에서 몬스터 미등장 증상이 2회 연속 발생했다. 1차(commit `9e5fd5b59`)·2차(commit `521a76641`) 수정 모두 근본 원인을 해결하지 못하고 **fallback 가드 추가라는 proxy 개선**만 반복했다. 근본 원인은 `ToolData.json` 125/125 스테이지 전부의 `list_MobData`가 빈 배열이었다. 기획 설계 단계에서 "몬스터 그룹 ID를 CreateMapConfig에서 참조"하는 데이터 파이프라인이 실제 ToolData.json에 반영되지 않은 채 방치됐다. **교훈 1 — 몬스터 등장 데이터 파이프라인 설계 시 검증 의무** 몬스터 등장 패턴을 기획할 때 "어떤 JSON/CSV 파일이 런타임 몬스터 ID를 결정하는가"를 설계 단계에서 명시적으로 추적해야 한다. 수상한잡화점의 경우 파이프라인은 다음과 같았다. ``` CreateMapConfig.n_AppearMonsterGroup → ApprearMonsterPattern (그룹 ID별 몬스터 ID 목록) → ToolData.json list_MobData (런타임 주입) → MyValue.cs:380-388 (ID 풀 구성) → MonsterNodeControler.Get_MobID (추첨) ``` 이 파이프라인 중 어느 한 단계가 비어있으면 플레이어에게 몬스터가 보이지 않는다. **기획 설계 문서에 데이터 파이프라인 기술 경로를 1줄이라도 명시**하면 개발팀이 연결 누락을 조기 감지할 수 있다. **교훈 2 — C9 조건(보스 집중)과 스테이지 구조 정합성** P17 배타 조합 중 "C9(보스 집중) ∧ 단독 보스·보스 미등장 스테이지"는 논리 불성립이다. 수상한잡화점 Stage1_1과 Stage1_3은 `n_AppearBossGroup=0`(보스 없음)이므로 이 스테이지에 C9를 배치하면 달성 불가 조건이 된다. 기획자는 스테이지별 보스 등장 여부를 **CreateMapConfig.n_AppearBossGroup 실측 후** 조건 배치를 확정해야 한다. 추측으로 배치하면 P17 위반 조합이 숨어든다. ### §1-2. 몬스터 종족 전환 패턴 수상한잡화점 지역 1에서 초반(14XXX 수인형/마법생물) → 후반(11XXX 인간형)으로 종족을 점진 전환하는 설계는 유효한 패턴이었다. 플레이어가 새로운 종족 특성을 한 번에 처리하지 않고 단계적으로 학습하게 된다. EerieVillage에서는 초반 잡귀·원령 → 중반 강령술사 → 후반 봉황·이매망량 같은 서사적 종족 전환에 동일 원칙을 적용할 수 있다. --- ## §2. 아이템·장비·인장 구조 설계와 JSON 실측 기반 원칙 ### §2-1. 기존 SOT 맹신 금지 — 데이터 구조 오해 재발 방지 (#42·#43) **실증 사건** 수상한잡화점 기획팀은 `스테이지난이도곡선_v1.md §1`의 "WorldMap_1~4 4개 그룹" 표현을 실측 없이 SOT로 신뢰했다. 이 전제 아래 Phase 4 지역 1 v1을 "Stage 1~6 = 지역 1 = 6개 스테이지"로 설계했다. 실측 결과 실제 지역 1은 Stage1_1·1_2·1_3·1_4 = 4개였고, v1 전면 폐기 + v2 재작성이 필요했다. **교훈 — 데이터 실측 5대 의무** 모든 기획 작업에 착수하기 전 Unity Export CSV/JSON을 직접 Read해야 한다. 1. **실측 선행**: 기획 문서의 수치·구조를 무비판 수용 금지. 기존 문서에 "SOT"라고 명기되어 있어도 실측과 교차 검증한다. 2. **용어 준수**: PD가 확정한 용어 체계는 기획팀 전원이 일관 사용한다. "WorldMap_1~4" 같은 용어를 이름 기반으로 추정해서 데이터 구조로 해석하는 것은 C22 위반이다. 3. **PD 확인**: 추측으로 결정 진행 금지. 불확실하면 기획팀 내부 논의 → PM 조율 → PD 에스컬레이션 3단계를 밟는다. 4. **SOT 맹신 금지**: 실측 일시를 문서 상단에 명기(`데이터 소스: CreateMapConfig.csv 실측 2026-04-20`)한다. 실측 일시 미기입 문서는 참조 금지. 5. **재사용 검증**: 기존 문서를 인용·확장할 때 §2-1 실측 결과와 대조한다. 전제가 틀릴 경우 자기 산출물도 전면 재작성 대상이다. **EerieVillage 적용** 인장 대신 부적, 장비 대신 도구와 도복 같은 테마로 변경되더라도 동일한 JSON 파이프라인 함정이 존재한다. 새 프로젝트 착수 시 가장 먼저 "데이터 테이블 구조 재정비 v1"에 해당하는 문서를 실측 기반으로 작성하고, 이후 모든 기획 작업은 그 문서를 1차 참조로 삼아야 한다. ### §2-2. 장비 음수 스탯 — 트레이드오프 설계 원칙 **실증 사건 (REQ002)** 수상한잡화점 장비(`EquipmentList.json`)의 MainOption2에는 `CriDmg -20%`·`Avoid_Melee -3%`·`HitRate -3` 같은 음수 스탯이 존재했다. 기획팀은 이것이 데이터 오류인지 의도적 설계인지 알 수 없어 개발팀에 REQ를 발행했다. 개발팀 확인 결과 이 음수값은 **의도적인 고정 페널티**였다. 무기 라인마다 주 스탯(MainOption1) + 트레이드오프 페널티(MainOption2) 구조였으며, 강화해도 페널티는 불변(`UpgradeStatValuePara1=0`)이었다. 단, `AttackCoolTime -10%`는 예외로 공격 쿨타임 감소 = 공속 증가 = 보너스였다. **교훈** 장비 옵션에 음수값을 설계할 때는 다음 3종을 설계 문서에 명시한다. 1. 어떤 스탯이 음수이며 그것이 "페널티인가 / 보너스인가"를 명시한다(`AttackCoolTime` 사례처럼 음수가 보너스인 역방향 스탯이 존재한다). 2. 강화 시 음수값이 완화되는지 고정인지를 명시한다(수상한잡화점은 고정). 3. 세트 옵션과의 상호작용을 명시한다(예: `MaxHP -10% + MaxShield +10%` 세트). 이 3가지를 문서화하지 않으면 밸런서가 DPS/EHP 시뮬레이션에서 오계산한다. ### §2-3. 인장(소울 장착 아이템) 슬롯 구조 설계 **실증 사건 (REQ003)** 기획팀은 인장 장착 슬롯 수를 3개와 6개 중 하나로 추정하여 기여도 분석을 진행했다. 실제는 **기본 슬롯 6개, 단 캐릭터 진화 단계에 따라 순차 개방**이었으며, 속성 매칭 제한까지 존재했다. 이 구조는 JSON에 없고 코드에 하드코딩되어 있어 JSON만 봐서는 알 수 없었다. **교훈** 장착 슬롯 계열 컨텐츠를 설계할 때는 다음을 사전에 개발팀과 확인한다. 1. 슬롯 수가 데이터 테이블에 있는가, 코드에 하드코딩되어 있는가. 2. 슬롯 개방 조건이 있는가 (진화·각성·레벨 등). 3. 슬롯별 속성·타입 제한이 있는가. 이 3가지 중 하나라도 코드에 있으면 기획 변경 시 개발팀 수정이 필수다. 기획팀이 독자적으로 "슬롯 수를 4개로 조정하자"고 결정해도 반영이 안 된다. EerieVillage에서 부적 슬롯, 오행 속성 슬롯 등을 설계할 때 동일한 사전 확인 절차를 적용한다. --- ## §3. 스킬·장비 옵션 상호작용 (음수값·디버프·상태이상) ### §3-1. 디버프성 옵션의 역할 — 선택의 다양성 확보 수상한잡화점 장비 트레이드오프 구조(§2-2)는 결과적으로 빌드 다양성에 기여했다. "치명타 피해 -20%" 페널티를 감수한 무기를 선택하면 다른 보너스를 확보하는 구조이므로, 플레이어가 자신의 빌드 방향에 따라 장비를 선택하게 된다. 컨텐츠 기획자 관점에서 음수 스탯은 "역할 없는 컨텐츠"가 아니다. 다음 조건을 충족하면 명확한 역할을 가진다. 1. 해당 페널티를 감수할 만한 보상이 같은 아이템 또는 세트 효과에 있다. 2. 특정 빌드에서는 해당 스탯이 페널티가 아닌 무관 스탯이 된다(치명타 빌드가 아닌 플레이어에게 `CriDmg -20%`는 체감 손실이 작다). 3. 강화해도 음수가 유지되거나, 강화할수록 음수가 개선되거나를 의도적으로 결정한다. ### §3-2. 상태이상 조건과 빌드 축 충돌 P17 배타 조합 7종은 이 교훈의 체계화 결과다. 수상한잡화점에서 조건 × 빌드 120개 조합을 전수 점검한 결과 다음 패턴이 반복됐다. 1. **완전 배타**: 빌드 목표와 조건 달성 방향이 논리적으로 상충한다(물약 빌드 × 포션 절제). 2. **구조적 충돌**: 동시 추구가 가능하지만 높은 난이도를 요구한다(치명타 빌드 × 완벽 클리어). 3. **강시너지**: 빌드 플레이가 조건을 자동 충족에 가깝게 만든다(보호막 빌드 × 고HP 완주). EerieVillage 퀘스트·미션·스테이지 클리어 조건 설계 시 동일한 120개(빌드 N개 × 조건 M개) 매트릭스를 작성하고, E(배타) 조합을 동일 스테이지에 동시 배치하지 않는 원칙을 초기에 확립한다. --- ## §4. 컨텐츠 간 상호작용 배타 규칙 설계 방법론 (P17 추출) ### §4-1. 배타 규칙을 만드는 4단계 방법론 수상한잡화점의 P17 신설 과정에서 다음 4단계가 유효했다. 1. **조건 풀과 빌드 풀을 독립 열거한다.** 두 목록을 각각 완성한 뒤 교차 매트릭스를 그린다. 직관으로 "이 두 개는 나쁘다"고 판단하기 전에 목록을 먼저 만든다. 2. **각 교차 지점에 E/X/S/SS/-를 배정한다.** 배정 근거는 "이 빌드를 진행하는 플레이어가 이 조건을 달성하려면 어떤 행동을 해야 하는가"를 기준으로 판단한다. 3. **E(배타) 조합에서 동일 스테이지 슬롯에 동시 배치 금지 규칙을 추출한다.** 배타 조합이 동시 존재하면 해당 빌드 플레이어는 달성 불가 상태가 된다. 4. **신규 조건·빌드 추가 시 기존 배타 목록과 교차 검증한다.** 추가 단계에서 검증을 빠뜨리면 배타 조합이 누적된다. ### §4-2. 논리 불성립 조건 사전 차단 수상한잡화점 P17 배타 조합 #5 "C9(보스 집중) ∧ 단독 보스·보스 미등장 스테이지"는 스테이지 구조에서 비롯된 논리 불성립이다. 이는 조건 풀의 문제가 아니라 **스테이지 데이터 구조와 조건 설계의 정합성 문제**다. EerieVillage에서 "퇴마 집중" 같은 보스 특화 조건을 설계할 때, 해당 조건을 배치할 스테이지에 실제로 보스(봉황·이매망량 등)가 등장하는지를 데이터 테이블 실측으로 확인한 뒤 배치한다. --- ## §5. EerieVillage 착수 가이드 — 조선 시대 퇴마 테마 컨텐츠 셋 구성 ### §5-1. 컨텐츠 셋 구성 원칙 수상한잡화점의 시행착오를 바탕으로 EerieVillage 컨텐츠 셋 착수 시 다음 순서를 권고한다. **1순위 — 데이터 구조 SOT 확립 (착수 불가 전제 조건)** 신 프로젝트 데이터 체계(JSON/CSV/SQLite 등)를 실측하여 "데이터 구조 재정비 v1"에 해당하는 문서를 가장 먼저 작성한다. 몬스터·아이템·스킬·장비·퀘스트 각 테이블의 필드 목록, 레코드 구조, 참조 관계를 실측 기반으로 명시한다. 이 문서 없이 컨텐츠 셋 설계를 시작하면 수상한잡화점 v1 전면 폐기 사건이 반복된다. **2순위 — PD 용어 확정 (설계 착수 전)** 조선 시대 세계관에서 다음 용어를 PD와 확정한다. - 지역 단위 명칭 (예: 마을·고을·영·유배지) - 스테이지 단위 명칭 (예: 길목·처소·관아) - 서브맵 단위 명칭 (예: 노드·조우·구역) - 몬스터 분류 명칭 (예: 잡귀·원령·악귀·봉황·이매망량) 이 용어가 데이터 테이블 필드 명칭과 어떻게 매핑되는지를 문서화한다. **3순위 — 컨텐츠 셋 다양성 축 정의** EerieVillage 퇴마 테마에서 자연스러운 다양성 축은 다음과 같다. | 축 | 한쪽 극단 | 다른 쪽 극단 | 기획 역할 | |----|---------|------------|---------| | 접근 방식 | 직접 퇴마(근거리 전투) | 부적 원격 제압(원거리) | 빌드 방향 분기 | | 오행 속성 | 금·수 방어형 | 화·목 공격형 | 상성 시스템 | | 처치 수단 | 정화(약화→마무리) | 즉결(직접 처치) | 전투 스타일 | | 시간 축 | 지속전(장기전·회복) | 속결전(버스트) | 클리어 조건 분기 | | 위험 감수 | 안전 빌드(회피·방어) | 공격적 빌드(디버프 감수) | 트레이드오프 | **4순위 — 배타 조합 매트릭스 초안 작성** 위 다양성 축에서 추출한 빌드 N개 × 클리어 조건 M개의 교차 매트릭스를 P17 방법론(§4-1)으로 작성한다. 이 매트릭스는 스테이지 조건 배치 이전에 완성되어야 한다. 조건 풀이 확정되면 배타 조합 목록을 추출하고, 스테이지 설계 시마다 배타 조합 전수 체크를 의무화한다. ### §5-2. 조선 시대·퇴마 테마 특화 주의사항 **음수 스탯의 테마 일관성** 장비 트레이드오프로 음수 스탯을 도입할 경우, 조선 시대 세계관과 일관성이 있어야 한다. 예를 들어 "부적 강화 → 무술 능력 저하" 또는 "오행 금기 위반 → 회피 감소" 같은 형태로 서사적 납득이 가능한 페널티를 설계한다. 수상한잡화점의 "치명타 피해 감소" 페널티는 세계관 맥락이 없는 순수 수치 트레이드오프였다. EerieVillage에서는 세계관 맥락과 수치 설계를 함께 제시해야 한다. **몬스터 보스 등장 패턴과 퇴마 서사 정합성** 퇴마 서사에서는 보스(이매망량·봉황 등)의 등장이 단순 전투 도전이 아닌 서사적 클라이맥스 역할을 한다. 스테이지 구조 설계 시 보스 등장 여부(`n_AppearBossGroup` 등가 필드 실측)와 서사 이벤트 배치를 연계한다. 수상한잡화점에서 보스 미등장 스테이지에 "보스 집중" 조건이 배치될 뻔한 사건처럼, 서사 클라이맥스 조건을 보스 미등장 스테이지에 배치하는 실수가 동일하게 발생할 수 있다. --- ## §6. 참조 원본 (실측 기반 항목만) - `프로젝트/수상한잡화점/기획/테이블_데이터_구조_재정비_v1.md` — 데이터 구조 SOT (#42) - `프로젝트/수상한잡화점/기획/기획팀_데이터_실측_의무_v1.md` — 5대 의무 룰 (#43) - `프로젝트/수상한잡화점/기획/Phase4_지역1_노드구성_v2.md` — 실측 후 재작성 (#44) - `프로젝트/수상한잡화점/기획/빌드_조건_충돌점검_v1.md` — 120개 배타 매트릭스 - `공유/소통/완료/2026-04-16_REQ002_응답_장비옵션_음수값.md` — 트레이드오프 코드 근거 - `공유/소통/완료/2026-04-16_REQ003_응답_인장_장착수제한.md` — 슬롯 구조 코드 근거 - `공유/대화로그/수상한잡화점/2026-04-20.md` — #42 테이블 데이터 구조 재정비 · #57 몬스터 미등장 근본 원인