---
type: 시행착오_아카이브
scope: 개발팀_통합
author: 개발팀장
date: 2026-04-21
version: v1
project_source: 수상한잡화점 (NerdNavis, 2025-2026)
project_target: EerieVillage (BurningTimes, 2026~)
---

# 개발팀 통합 시행착오 아카이브 v1 — 서버·클라이언트·QA 총괄 관점

## 1. 개요 — 핵심 교훈 10건 요지

1. **C11(개발 관점 3축) 판정을 기획 요청 수용 전에 반드시 선행한다** — 자원 효율성·코드 직관성·범용성 3축을 통과하지 못하는 설계는 은폐하지 말고 제기(C3).
2. **시뮬레이터 이원화(Python vs Unity C#)는 조직 생존급 리스크** — 동일 로직 2언어 유지는 밸런스 신뢰도 붕괴 경로. Unity MCP EditMode 단일 SOT 전환이 근원 해결.
3. **서버 Critical 보안 3종(IAP 영수증·AES 하드코딩·클라 전투 연산)은 서비스 오픈 블로커**. 서버팀 가동 전 "보류"로 잠시 미뤘더라도 복원 계획과 메모리 SOT(`project_shop_security_pending.md`)를 반드시 유지.
4. **Unity MCP 편집은 6단계 표준 워크플로우(SHA 확보→원본 Read→백업→commit→편집→검증) 없이 진행 금지** — C6-1 원본 보호 재발 방지 단일 SOT.
5. **Agent 호출 시 절대 경로 하드코딩 금지 (C34-11)** — worktree 경계를 넘어 main 체크아웃에 변경이 기록되는 실증 사건 재발 방지. `git rev-parse --show-toplevel` 기반 상대 경로.
6. **worktree-local 저장 자산은 조직 생존급 위험 (C34-15 5문항 체크)** — `.live/`·`memory/org/`·audit 3종 중앙 Junction 근원 해결. 신규 설정·저장소 설계 시 5문항 체크 통과 의무.
7. **코어 프레임워크(BT.Framework)는 현 프로젝트 비투입·조직 자산 계승(P29)** — 수상한잡화점 R&D 자산 경로(`수상한잡화점/개발/06_*`)에 코어 설계 문서를 두면 오인 유발. `프로젝트/코어프레임워크/` 단일 SOT.
8. **콘솔 병렬 실행·핫리로드 대안은 기술 검토 없이 결론 금지** — SessionStart/UserPromptSubmit hook 경계, `@import` 구문의 "세션 시작 1회만 확장" 한계 등 Claude Code 내부 메커니즘 실측 선행.
9. **서버 권한 분배표를 명시하여 "클라가 SOT인 영역"을 정직하게 기록** — Q-P1·Q-P2·Q-P3 같은 기획 질의에 "클라 코드가 실질 SOT"임을 명시해야 괴리 재발 차단.
10. **QA 게이트: Unity 빌드 오류·콘솔 에러 잔존 상태로 작업 종료 금지 (P14)** — 회귀 검증은 동일 경로 재현 포함. "임시로 돌아가는 코드"는 C2·C11 동시 위반.

---

## 2. 시도한 방법·이유·결과·교훈 (4필드 표)

### 2-1. 아키텍처·설계

| 시도한 방법 | 이유 | 결과 | 교훈 |
|------------|------|------|------|
| Python 3종 시뮬(`battle_sim`·`full_stage_sim`·`stage_sim_v2`) + Unity C# 실코드 병행 | 기획팀 Python 숙련도·빠른 밸런스 반복 | 메커닉 SOT 불일치(예: `PCDefence_Mul=0.3f` 실측 vs 기획 가정 50%) · 괴리 발견 루프 무한 발생 | Unity MCP EditMode 단일 SOT로 일원화. Python은 참조 구현으로만 존치(동기화 검증 테스트 동반) |
| 카드 311장을 개별 스크립트로 구현 시도(초기) | 카드별 특수 효과 구현 편의 | 신규 카드 추가 = 코드 수정 필요 · 시너지 조합 폭증 대응 불가 | 데이터 드리븐 아키텍처 강제(`e_CardType` enum + 파라미터 JSON). "신규 카드가 JSON 한 줄 수정으로 끝나는가?" 핵심 질의 |
| 수상한잡화점 내부에 `BurningTimesCore` 네임스페이스 일부 혼재 | 초기 분리 부족 | 프로젝트 특수 로직과 범용 모듈 경계 모호 · 차기 프로젝트 재활용 어려움 | P29 코어 프레임워크 독립 레포(`BT.Framework`) 분리. 수상한잡화점은 비투입, 개발 과정에서 추출 대상만 식별(`02_수상한잡화점_추출대상_v1.md`) |
| Tier 1 16종 단일 라운드 일괄 구현 시도 | 빠른 완결 | Data·Event·Container 3종은 상호작용 설계 재검증 필요 · 아키텍처 부채 우려 | 13종 선행 라운드 완결 후 3종을 #36 신규 지시로 분리. 라운드 완결 아카이브 원칙(`feedback_log_round_completion.md`) 정착 |

### 2-2. 서버·보안

| 시도한 방법 | 이유 | 결과 | 교훈 |
|------------|------|------|------|
| PlayFab 주 백엔드 + Firebase 병행 시도 | 분석·크래시 수집 | `google-services.json` 부재 · Firebase 사실상 비활성 | INetworkService 추상화(BurningTimesCore 누락 모듈)로 백엔드 교체 가능 구조 선행 |
| 12시간 자동 재로그인 · `ServerInfo.cs` 단일 허브 | 세션 유지 단순화 | 구조 직관성 확보 · 한편 PlayFab 직접 의존 고착 | 허브 패턴은 유지하되 인터페이스 추상화. 교체 시 허브만 재구현 |
| 전투 연산 100% 클라이언트 | Unity 내부 연산 편의·초기 속도 | 변조 방어 불가 · 랭킹·이벤트 보상 악용 경로 | 최소한 "스테이지 클리어 판정·보상 지급"은 서버 재연산 필수(P0). 전체 재연산은 점진 확장 |
| AES 키 소스 평문 하드코딩 · IL2CPP 의존 | 빌드 난독화 신뢰 | 메모리 덤프로 추출 가능 · 사실상 무의미 | 런타임 유도(디바이스ID 해시 혼합) + 서버 전송 페이로드 HMAC 서명. 키 회전 경로 확보 |
| IAP 영수증 검증 주석처리 상태로 방치 | 서버팀 미가동 대기 | 결제 우회 경로 오픈 상태 · 오픈 블로커급 | "보류" 상태에서도 반드시 메모리 SOT(`project_shop_security_pending.md`) + PD 지시 로그 보류 사유·사후 조치 기록(P19). 서버팀 가동 즉시 P0 복원 |
| ACTk 약 10개 필드만 `Obscured*` · Detector 미사용 | 초기 최소 적용 | SpeedHack·TimeCheck 방어 공백 | 재화·레벨·카드 보유 수량 전면 `Obscured*` · `SpeedHackDetector`·`TimeCheckDetector` 활성화 |

### 2-3. 코어 프레임워크(BT.Framework)

| 시도한 방법 | 이유 | 결과 | 교훈 |
|------------|------|------|------|
| 코어 설계 문서를 `수상한잡화점/개발/06_*`에 배치 | 작성 편의 | R&D 비투입 방향 확정 후 "수상한잡화점 산출물"로 오인 유발 | `프로젝트/코어프레임워크/01~04` 단일 SOT로 이동·참조 경로 교체. 06은 "대체됨" 표식 |
| `Convert.ChangeType` 캐시 방식 Enum 변환 | BCL 표준 | 박싱 발생·핫패스 성능 저하 | `Unsafe.As<,>` 제로-박싱 전환. EnumToInt 단일 SOT |
| KeyMaker 구분자 `_` 혼용 | 관례 | 수상한잡화점 `_`/`:` 혼재로 조회 실패 경험 | `:` 단일 표준. 전 프로젝트 강제 |
| UnityEngine 의존 허용 시도 (일부 Util) | Unity 편의 | 서버·배치 재사용 불가 · C11 범용성 위반 | Tier 1은 순수 BCL 의존만. Unity 의존 모듈은 별 asmdef 분리 |
| CsvHelper 외부 라이브러리 검토 | 파서 완결성 | Tier 1 외부 의존 최소 원칙 위반 · PC 독립 설치 리스크 | RFC 4180 핵심(쉼표·따옴표·escape)만으로 자체 구현. 기획팀 통제 CSV라 충분 |
| Newtonsoft.Json 도입 검토 | Dictionary·polymorphism 지원 | PC 독립 설치 보장 어려움 | Unity `JsonUtility` + 래퍼 채택. 한계 명시 후 고급 케이스는 호출자 자체 파싱 경로 안내 |
| 3개 모듈(Event·Container·Data) asmdef 분리 검토 | 경계 명확화 | 현 파일 수 규모에서 단일 참조 소비자 경험 우위 | 단일 asmdef 유지. Tier 2 확장 시 재검토 |

### 2-4. 개발 인프라·운영

| 시도한 방법 | 이유 | 결과 | 교훈 |
|------------|------|------|------|
| 같은 디렉토리에서 CLI 여러 개 병렬 실행 | 가장 간단 | 동일 파일 동시 수정 시 덮어쓰기 · git 이력 꼬임 | 서로 다른 파일/영역·읽기 전용에만 허용. 수정 작업은 `--worktree` 격리 |
| `CLAUDE_LIVE.md` 핫 리로드 시도 | 세션 중 규칙 반영 | `@import`는 세션 시작 1회만 확장 · 자동 반영 불가 | UserPromptSubmit hook의 `.live/` 증분 주입 경로로 근원 해결(C34) |
| `.live/` 더미를 `$REPO_ROOT/.live/`에 저장 | 레포 내부 단순화 | worktree마다 물리 격리 발생 · 세션 간 실시간 공유 실패 | `$HOME/.claude/nerdnavis-live/` 중앙 저장 + worktree junction 연결 (C34-3) |
| `memory/org/`를 junction만으로 관리 | 중앙화 편의 | Windows core.symlinks 이슈·한국어 경로 리스크·clone 후 접근 불가 | 레포는 실체 디렉토리 유지 + sync 스크립트 4계층 양방향 동기화 (C34-16) |
| Agent 프롬프트에 절대 경로 `E:\...` 지정 | 호출 편의 | worktree 경계 이탈 · main 체크아웃에 파일 생성 실증(2026-04-18) | cwd 기준 상대 경로 의무 + `git -C` 교차 확인 + 경계 이탈 복구 절차 정착 (C34-11) |
| 빌드 오류·콘솔 에러 잔존 상태로 PR 머지 | 속도 우선 | 회귀 버그 빈발 · QA 비용 누적 | P14 QA 게이트: 빌드 오류·콘솔 에러 0 원칙. 회귀 검증은 동일 경로 재현 포함 |
| git 동기화 Phase 0~4 체계(NAS·post_receive·sync_signal·post-commit hook) | PC 독립 실시간 공유 | 초기 단계에서 경로·권한 이슈 다수 → 점진 안정화 | setup 스크립트 단일 SOT로 PC 독립 셋업 보장(C16). 신 PC 합류 시 `verify_setup` 3축 검증 |

### 2-5. Agent 경계·대화로그

| 시도한 방법 | 이유 | 결과 | 교훈 |
|------------|------|------|------|
| 서브에이전트 인용 응답을 PM이 직접 작성(역할 연기) | 편의 | C23 위반 (2026-04-15 실증) · 조직 신뢰 훼손 | Task 도구 실제 호출 결과만 인용. 미확인 항목은 "미확인" 태그 |
| 완료 후 PD 지시 로그 갱신 누락 | 작업 우선 | 다른 세션이 "진행중"으로 오인 (2026-04-16 #27 실증) | C27·C29-4 동기화 4종(PD 로그·대화로그·소통 채널·Live 더미) 동시 수행 |
| 설계 문서 참조만 남기고 본문 미작성 | 속도 | "유령 문서" 발생 · P18 위반 | 참조 시점 즉시 작성 착수 또는 "작성 예정(담당·재개 트리거)" 명시 |
| 08 전투시스템 SOT와 시뮬레이터 SOT 간 실측값 전파 누락 | 단일 작업만 수행 | #37 완료 후 08이 기획 가정값 유지 · 괴리 재발 위험 | 수치 확정 시 "해당 수치 등장하는 모든 SOT 전수 grep" 완료 체크리스트 편입 |

---

## 3. BT 조직 착수 시 체크리스트 (개발팀장 기준)

### 3-1. 세션 시작 직후 (C10-1·C16-4 연속 이행)
- [ ] `git fetch origin && git status` (조직 레포)
- [ ] Unity 프로젝트(`${UNITY_PROJECT_ROOT}`) `git fetch && git status` (C30)
- [ ] 코어 프레임워크(`BT.Framework`) `git fetch && git status`
- [ ] `공유/PD_지시_트래킹/개발팀_PD_지시_로그.md` 활성 테이블 전수 Read
- [ ] `공유/대화로그/EerieVillage/` 최근 2일 Read + `공유/대화로그/코어프레임워크/` 최근 2일 Read

### 3-2. 신규 기능·시스템 설계 착수 전
- [ ] C11 3축 판정 (자원 효율성·코드 직관성·범용성) 자문
- [ ] "신규 {카드·적·아이템·이벤트} 추가가 JSON 한 줄로 끝나는가?" 데이터 드리븐 성립 확인
- [ ] 프로젝트 특수 vs 범용 모듈 경계 명시 (범용은 BT.Framework 추출 대상 식별)
- [ ] P18 설계 문서 선행 작성 (배경·대안·구현 가이드·검증 방법·변경 이력 5요소)
- [ ] 기획 요청이 C11과 충돌하면 C3에 따라 우려 즉시 제기

### 3-3. Unity 코드·씬·프리팹 편집 전
- [ ] Unity MCP 편집 대상이면 6단계 표준 워크플로우(`공유/개발팀_자산/Unity_MCP_편집_표준_워크플로우_v1.md`) 준수
- [ ] 백업 파일: `공유/개발팀_백업/EerieVillage/{원본}.bak_{YYYYMMDD_HHMM}.{ext}`
- [ ] `precondition_sha_256` 파라미터로 외부 변경 방어
- [ ] 편집 후 `get_sha` 재확인 + 콘솔 에러 0 검증

### 3-4. 서버 연동 작업 전
- [ ] 전투·재화·IAP·랭킹·보상 중 어느 영역인지 식별
- [ ] 해당 영역의 서버 권한 vs 클라 권한 표 갱신
- [ ] Critical 보안 3종(IAP 영수증·암호화 키·전투 연산) 재발 여부 체크
- [ ] 신 프로젝트는 백엔드 추상화(INetworkService) 선행 — PlayFab 직접 의존 금지

### 3-5. Agent 호출·worktree 작업 전
- [ ] Agent 프롬프트에 "cwd 기준 상대 경로 사용 의무" 명시 (C34-11)
- [ ] 산출물 경로는 `$(git rev-parse --show-toplevel)` 기준 또는 상대 경로
- [ ] Agent 응답 수령 직후 `git -C <레포루트> status` + 본 worktree `git status` 병행 확인
- [ ] 신규 공용 저장소·hook·설정 도입 시 C34-15 worktree 경계 5문항 체크 통과

### 3-6. 작업 완료 시 (C29-4 동기화 4종)
- [ ] `공유/PD_지시_트래킹/개발팀_PD_지시_로그.md` 상태 갱신 (완료 아카이브 즉시 이동 + 즉답 접두)
- [ ] `공유/대화로그/{프로젝트}/YYYY-MM-DD.md` 엔트리 추가 (결정·설계는 "기각안" 필드 필수)
- [ ] 소통 채널 응답서 `status: 완료` + `공유/소통/완료/`로 이동
- [ ] `.live/` 더미 기록 (세션 갱신 전 즉시 트래킹)
- [ ] 수치·SOT 변경 시 "해당 수치 등장 모든 SOT 전수 grep" 수행 (#37 누락 재발 방지)

---

## 4. PM 보고 안건 (특이사항)

1. **서버 Critical 보안 3종 복원 계획 수립** — 신 프로젝트 EerieVillage의 서버팀 가동 시점에 수상한잡화점 보류분 3종(IAP·AES·전투 연산)의 복원 전략을 PD님께 사전 보고. 메모리 SOT `project_shop_security_pending.md` 계승 여부도 결정 필요.

2. **코어 프레임워크 Tier 2·3 진입 경계 확정** — Tier 1 16/16 완료 시점에서 Tier 2(Network·Persistence·UI 공용)·Tier 3(게임 장르별) 진입 조건을 EerieVillage 요구사항과 연계하여 PD님 결정 안건화. P29 "현 프로젝트 미활용·차기 프로젝트 적극 활용" 원칙 적용.

3. **Unity MCP 편집 표준 워크플로우 v1 EerieVillage 적용 범위 확정** — BT.Framework 편집은 명시 적용. Unity 씬·프리팹(비스크립트)은 현 버전 미포함. v2 확장 여부 PD 결정.

4. **시뮬레이터 이원화 재발 방지** — EerieVillage는 착수 시점부터 "Unity MCP EditMode 단일 SOT" 확정. Python 시뮬은 참조 구현으로만 허용하되 자동 동기화 검증 테스트 의무화를 PD 승인 안건화.

5. **PC 독립 셋업 신 PC 합류 프로토콜** — 신 스태프·신 PC 추가 시 `setup_windows.ps1`·`setup_macos.sh` + `verify_setup` 3축 검증 의무. 실패 시 Degraded 운영이 아닌 조직공지 이슈화.

6. **dev-auditor 모드 A(중요 기술 결정)·모드 B(주기 감사) 운영 정착** — 3축 감사 체계 중 개발 영역 감사가 실무 정착 초기 단계. EerieVillage 착수 초반에 모드 A 호출 빈도를 높여 학습 데이터 축적.

---

## 5. 참조 원본 파일 목록 (감사 재현 가능)

### 5-1. 수상한잡화점 개발 산출물
- `프로젝트/수상한잡화점/개발/01_기획실_인수인계_v1.md`
- `프로젝트/수상한잡화점/개발/02_개발자관점_점검_v1.md`
- `프로젝트/수상한잡화점/개발/03_Unity프로젝트_구조_v1.md`
- `프로젝트/수상한잡화점/개발/04_코어_범용성_분석_v1.md`
- `프로젝트/수상한잡화점/개발/05_서버연동_현황_v1.md`
- `프로젝트/수상한잡화점/개발/06_신규코어_설계안_v1.md` (대체됨 → `프로젝트/코어프레임워크/01~04`)
- `프로젝트/수상한잡화점/개발/07~13_*.md` (Phase 3 재개 로드맵 포함)

### 5-2. 코어 프레임워크 (BT.Framework)
- `프로젝트/코어프레임워크/01_아키텍처_개요_v1.md`
- `프로젝트/코어프레임워크/02_수상한잡화점_추출대상_v1.md` (완료 실적 아카이브)
- `프로젝트/코어프레임워크/03_배포방식_안건_v1.md`
- `프로젝트/코어프레임워크/04_Tier1_3종_상호작용_설계_v1.md`
- `코어코드/BT.Framework/Runtime/Core/` 전체

### 5-3. 대화로그
- `공유/대화로그/코어프레임워크/2026-04-16.md`
- `공유/대화로그/코어프레임워크/2026-04-17.md`
- `공유/대화로그/코어프레임워크/2026-04-18.md`

### 5-4. 소통 채널 (완료)
- `공유/소통/완료/2026-04-16_콘솔병렬실행_기술검토_개발팀.md`
- `공유/소통/완료/2026-04-16_핫리로드대안_기술검토_개발팀.md`
- `공유/소통/완료/2026-04-16_하이브리드구조_개발실의견.md`
- `공유/소통/완료/2026-04-16_코어코드_git통합_점검_개발팀.md`
- `공유/소통/완료/2026-04-16_유니티프로젝트_점검_기획팀.md`
- `공유/소통/완료/2026-04-17_RPT_서버역할_정리_초안.md`
- `공유/소통/완료/2026-04-17_서버_작업_참고자료.md`
- `공유/소통/완료/2026-04-17_서버개발자_업무지시서_최종본.md`
- `공유/소통/완료/2026-04-17_업무공유체계_점검_서버팀.md`

### 5-5. 개발팀→PM 자체 감사·검토
- `공유/소통/개발팀→PM/2026-04-17_전수감사_자체교차검증_개발팀장관점.md`
- `공유/소통/개발팀→PM/2026-04-18_worktree_격리_근원해결_실무검토.md`
- `공유/소통/개발팀→PM/2026-04-20_C6-1_재발방지_Unity_MCP_워크플로우.md`
- `공유/소통/개발팀→PM/2026-04-20_Tool_Left_버그유무_점검.md`
- `공유/소통/개발팀→PM/2026-04-20_몬스터_미등장_A_집행완료.md`

### 5-6. 조직 자산·표준 워크플로우
- `공유/개발팀_자산/Unity_MCP_편집_표준_워크플로우_v1.md`
- `공유/서버_작업_참고자료/2026-04-17_서버_작업_참고자료_v1.2.docx` (접근 가능 시)
- `공유/개발팀_백업/` (원본 백업 SOT)

### 5-7. feedback 메모리 (재발 방지 SOT)
- `memory/org/feedback_agent_path_boundary.md` — Agent 절대 경로 유출 실증
- `memory/org/feedback_worktree_isolation.md` — worktree 격리 5문항 체크
- `memory/org/feedback_git_scope_shortcut.md`
- `memory/org/feedback_dev_auditor_*.md` — 개발 감사 실증
- `memory/org/feedback_memory_sync_overwrite.md` — memory sync 덮어쓰기 실증
- `memory/org/feedback_c6_backup_before_edit_violation.md` — Unity MCP 편집 백업 누락
- `memory/org/feedback_log_round_completion.md` — 라운드 완결 아카이브 원칙
- `project_shop_security_pending.md` — Critical 3종 보류 SOT

---

*본 아카이브는 BurningTimes 조직이 EerieVillage 및 차기 프로젝트 착수 시 동일한 시행착오를 반복하지 않고 검증된 방법을 재활용하기 위한 개발팀 통합 관점 SOT이다. PD 지시 2026-04-21 "조직 자산 계승" 이행 산출물.*
