docs(BT5-Dev #111 + 최적화 분석): 좁은 발판 patrol 정정 + 개발팀장 Opus C49 Phase 1

PD 직접 지시 2026-05-08 — 2건:
1. (i)+(iii) 진행 — 좁은 발판 5건 정정
2. 프로젝트 반응 속도 최적화 분석·정리

#1 BT5-Dev #111 정정 (EerieVillage commit 8b54816 push 완료):
- 본 PM (iii) 자인 — 코드 영역 이미 양 Tilemap 검색 정합
- (i) 적용 — 위·아래 1 cell 인접 cell 검색 (계단·1 cell 폭 발판 patrol 정합)

#2 개발팀장 Opus 분석 (C49 Phase 1·dev-auditor 호출):
- 진단 13 파일 + 보조 8 파일 직접 Read
- 핵심: Debug.Log 매 frame 영역 (BT17·EnemyDiag·BT20) = 주 원인 추정
- Legacy 5 파일 정리 = 차기 혼란 차단

옵션 (PD 결정):
- A. 최소 #1만 (30K·매우 낮음 위험)
- B. 권고 #1 + #7 legacy 정리 (50K·낮음 위험)
- C. 적극 #1 + #7 + #3 BoxCast (Phase 분리·중 위험)

본 PM 권고 = 옵션 B (개발팀장 권고 일치)

산출물:
- 공유/대화로그/EerieVillage/2026-05-08.md 엔트리 4

매니페스트: 2026-05-08_BT5Dev111 archived

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-05-08 17:14:36 +09:00
parent 089dd453e9
commit d7b789bc29
1 changed files with 81 additions and 0 deletions

View File

@ -301,3 +301,84 @@ EerieVillage commit `19e00d3` (BT110) push 완료.
- **#2 검증 대기**: PD Editor Refresh + Play → `[Enemy@N]` log 영역 chosenFootY·startTm 영역 정합 검증 → 16건 maxR/maxL 정합 도달 확증
- **#1 PD 추가 정보 수령**: (a/b/c) 1~2건 후 본 PM 진단 재개·정정 분량 결정
- **잔여 BT12-Dev / BT7-Dev / BT7-Plan**: 본 영역 처리 후 PD 결정
---
## 엔트리 4. BT5-Dev #111 좁은 발판 patrol 정정 + 코드 최적화 분석 (개발팀장 Opus·C49 Phase 1)
**시각**: 2026-05-08 후반
**주체**: 총괄PM + 개발팀장 Opus
**영역**: BT5-Dev — #1 (i) 적용 + #2 최적화 분석 (PD 직접 지시 2건)
**유형**: 본 PM 직접 정정 + 개발팀장 Opus C49 Phase 1 분석 보고
### PD 직접 지시 (2026-05-08)
1. (i)+(iii) 진행 (B 영역 좁은 발판 5건 정정)
2. 프로젝트 반응 속도 최적화 — 개발팀에 분석·정리 위임
### #1 — BT5-Dev #111 정정
**본 PM (iii) 자인**: 본 PM 직전 권고 (iii) "AutoForeground Tilemap도 좌·우 검색" = **이미 정합** (코드 영역 `groundTilemaps` = Level + AutoForeground 양 Tilemap 검색·`HasTileInAnyTilemap` 함수 정합). 본 PM 진단 시 정확한 코드 인지 결손. (i)만 실효.
**(i) 정정 (BT111)**:
```
nextSame / nextUp / nextDown 중 어느 하나라도 HasTile = 발판 연속
```
- 좌·우 same-y cell 즉시 break 영역 폐기
- 위·아래 1 cell 인접 cell 영역 검색 추가
- 계단 영역 발판 연속 + 1 cell 폭 발판 (위/아래로 연결된 영역) 정합 도달
### #2 — 개발팀장 Opus 분석 결과 (C49 Phase 1)
본 PM이 C43 "개발팀" 호칭 영역 dev-auditor (개발팀장 역할) 직접 호출. 13 파일 + 보조 8 파일 직접 Read 후 분석.
#### 진단 — 우선순위 매트릭스
| # | 영역 | 진단 | 효과 추정 | 위험 | 우선순위 |
|---|------|------|---------|------|---------|
| 1 | EnemyController.Update 매 frame Debug.Log (BT17·EnemyDiag·BT20) | `#if UNITY_EDITOR` 또는 `[Conditional]` 가드 | 16몬 × 60fps = frame당 16~32 string boxing 제거 | 낮음 | **H** |
| 7 | Legacy 5 파일 영역 (PlatformDropThrough.cs·PatrolPath.cs·PatrolPath.Mover.cs + EnemyController.path/mover) | 자동 Destroy 영역 + 미참조. 빌드 잔존 + Layer 8 영역 차기 혼란 | 인지 부담 ↓·차기 시행착오 차단 | 낮음 | **H** |
| 3 | PlayerController footHit 3 raycast → BoxCast 1회 | 발판 standing 시 frame당 3→1 raycast | 가장자리 jitter 회귀 위험 | 중 | **M** |
| 4·5·6·8·9·10·11 | UpdatePatrol Raycast·Vector struct alloc·Tilemap 전수 순회 등 | 모두 효과 미미 또는 회귀 위험 매우 큼 | 0 또는 매우 작음 | - | **L (skip)** |
#### 핵심 진단 — 반응 속도 저하 주 원인 추정
**#1 Debug.Log 영역 = 주 원인 추정** — 16마리 몬스터 시나리오 기준 frame당 string interpolation·boxing·I/O. BT5-Dev 시행착오 28+23회 누적 영역 = `Debug.Log` 잔존이 가장 합리적 추정 (C44 추정 태그·Profiler 미실측).
#### Phase 2 옵션 (PD 결정 영역)
| 옵션 | 범위 | 회귀 위험 | 분량 |
|------|------|---------|------|
| **A. 최소** | #1만 (Debug.Log 가드) | 매우 낮음 | 단일 Task 30K |
| **B. 권고** | #1 + #7 (legacy 정리) | 낮음 | 단일 Task 50K |
| **C. 적극** | #1 + #7 + #3 (BoxCast) | 중 (가장자리 jitter 영역) | Phase 분리 — Task1 50K + Task2 40K |
**개발팀장 권고 = 옵션 B**. C 옵션 #3 BoxCast = BT47~75 발판 시행착오 영역 핵심 = 회귀 시 BT5-Dev 누적 노하우 흔들 위험. Profiler 실측 입증 후 별도 Phase 권고.
#### 본 PM 권고 (옵션 B)
- 효과 추정 = 명확 (frame당 string boxing·I/O 제거)
- 회귀 위험 낮음 (Debug.Log 가드 + legacy 자동 Destroy 영역 정리)
- 분량 단일 Task 50K (C50 사전 승인 영역)
### 산출물
- `Assets/Scripts/Mechanics/EnemyController.cs` (BT111 — 위·아래 1 cell 인접 검색)
- `공유/개발팀_백업/EerieVillage/EnemyController.cs.bak_20260508_1830.cs`
- EerieVillage commit `8b54816` (BT111) push 완료
- 매니페스트 `2026-05-08_BT5Dev111` archived
### 관련 규칙·자산
- C2 근본 해결 (좌·우 same-y cell 즉시 break 폐기·위·아래 인접 cell 검색)
- C5·C44 정직성 (본 PM (iii) 자인 + 개발팀장 #1 효과 추정 명시)
- C43 호칭 — "개발팀" 직접 수령 (개발팀장 호출)
- C49 Phase 1 표준 프로세스 — 분석·설계 단일 Task
- C50 분량 — 본 분석 Task 80K + Phase 2 옵션별 분량 사전 보고
- `feedback_pm_root_diagnosis_priority` (본 PM (iii) 잘못 식별 자인)
- `feedback_pm_solution_proactive_proposal` (분석 + 권고 능동 제시)
### 후속 영역
- **#1 BT111 검증**: PD Editor Refresh + Play → 16 몬스터 patrol 정합 검증 (잔여 #12 발판 미배치 영역 제외)
- **#2 옵션 결정**: PD 결정 (A·B·C) → C49 Phase 2 별도 Task 호출 → 구현 + 검증
- **잔여 A 영역 (#12 startX=139.27, startY=-6.50)**: PD Scene 영역 시각 검증 후속