# ⚡ 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 🫡