# ⚡ Skybound: Stability & [[Optimization|Optimization]] Report (2026-04-21)

## 1. Executive Summary (요약)
대규모 교전 및 아이템 사용 시 발생하는 성능 저하와 런타임 크래시를 해결하기 위한 엔진 안정성 보강 작업을 수행하였습니다.

## 2. Key Optimization Areas (주요 최적화 영역)

### 💥 Particle Effect [[Management|Management]] (이펙트 제어)
- **Problem**: 폭탄 사용 시 수천 개의 파편(Shard) 객체가 생성되어 FPS 급락.
- **[[Solution|Solution]]**: 
  - **Hard Cap**: 최대 파티클 개수를 500개로 제한.
  - **TTL (Time To Live) Acceleration**: 파티클 소멸 속도를 6배 상향(0.1 -> 0.6)하여 자원 회수 주기를 단축.

### 🛡️ Runtime [[Robustness|Robustness]] (런타임 강건성)
- **Problem**: 존재하지 않는 엔티티 배열 접근으로 인한 `TypeError`.
- **Solution**: 
  - `GameRenderer` 내 모든 순회 로직에 옵셔널 체이닝(`?.`) 및 기본값(`|| []`) 처리 의무화.
  - 인터페이스(`types.ts`)와 실제 상태 객체 간의 동기화 정밀 검수.

### 🔄 Entity Pool Intelligence (엔티티 풀 고도화)
- **Problem**: ID(String)와 객체 참조 간의 혼선으로 인한 해제 실패.
- **Solution**: 
  - `EntityManager`에 `releaseById` 메서드 추가.
  - 객체 여부와 관계없이 안전하게 리소스를 반납할 수 있는 추상화 레이어 구축.

## 3. Post-Mortem (사후 분석)
- **Silo Effect**: 엔티티 매니저 도입과 같은 대규모 인프라 변경 시, 관련 인터페이스를 동시에 업데이트하지 않아 발생한 '느슨한 계약(Loose Contract)' 문제가 근본 원인이었습니다.
- **Guideline**: 시스템 간 데이터 교환 방식(ID 기반 vs 참조 기반)을 프로젝트 표준으로 확정하고 준수해야 합니다.

---
**Related Cluster**: Performance Tuning
**Status**: Verified by QA 🫡
