From 0de33a1409d5f582a8adcee6a8cecdf30c07db5b Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 8 Sep 2026 20:31:11 +0900 Subject: [PATCH] chore: remove unrelated performance notes --- .jules/bolt.md | 4 ---- CHANGELOG.md | 3 --- 2 files changed, 7 deletions(-) diff --git a/.jules/bolt.md b/.jules/bolt.md index 4780ee2fd..fa2deda3f 100644 --- a/.jules/bolt.md +++ b/.jules/bolt.md @@ -26,7 +26,3 @@ ## 2024-05-24 - [React Component Memoization] **Learning:** In React components like `WorkspaceHome`, when layout state or polling changes trigger parent re-renders, expensive child components like `EmailDetail` will also re-render unnecessarily if not memoized. **Action:** Always consider `React.memo` for heavy child components that rely on stable props (like IDs) when the parent component has frequent unrelated state updates. - -## 2023-10-27 - O(N) Array Mapping Blocked Main Thread in NetworkGraph -**Learning:** When using `Array.from(map.values()).slice(0, N)` inside `useMemo` hooks, it creates a full intermediate O(N) array allocation before truncating to N items. In components with large Maps like `NetworkGraph`, this degrades performance during each render pass. -**Action:** Replace `Array.from(map).slice(0, N)` with a bounded `for...of` loop over `map.values()` and an early `break` when the limit is reached, maintaining O(1) performance and avoiding intermediate array allocations. diff --git a/CHANGELOG.md b/CHANGELOG.md index 00f722ae3..7ec84c36f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2760,6 +2760,3 @@ ### 문서 (Documentation) - `yaml.load()`와 관련해 발생한 Bandit B506 항목에 대해 규칙 한정적 오탐지(false-positive) 판정 및 처분 근거(disposition)를 담은 `docs/doctoring/bandit-b506-false-positive-disposition.md` 문서를 추가했습니다. 이는 제품의 실제 취약점 패치가 아니며, PyYAML의 `SafeLoader`를 명시적으로 사용하는 사용자 정의 로더에 대해 오탐지를 억제하는 조건과 롤백 기준을 테스트 증거와 함께 기록한 문서입니다. - -### 변경 사항 -- **성능 (Performance)**: `NetworkGraph` 컴포넌트에서 `useMemo` 내부의 `Array.from(map).slice()` 패턴을 크기 제한이 있는 `for...of` 루프로 변경하여 대규모 데이터 처리 시 발생하는 불필요한 중간 배열 할당을 제거하고 O(1) 성능을 달성하도록 최적화했습니다.