memory reference
메모리 누수 참조 점검표
가비지 컬렉션은 도달 가능한 객체를 남긴다. 누수를 찾을 때는 전역, 타이머, 이벤트 리스너, 클로저가 불필요한 참조를 계속 잡고 있는지 본다.
01
Global
전역 변수와 캐시에 큰 객체가 남아 있는지 본다.
02
Timer
setInterval과 지연 작업이 해제되는지 확인한다.
03
Listener
제거된 DOM에 이벤트 리스너가 남지 않게 한다.
04
Closure
클로저가 오래된 상태와 DOM 참조를 붙잡는지 본다.
| 참조 경로 | 누수 신호 | 해제 방법 | 확인 도구 |
|---|---|---|---|
| 전역 변수 | 페이지 이동 후에도 데이터가 유지됨 | 스코프 축소, 명시적 초기화 | Heap Snapshot |
| 타이머 | 화면 제거 후에도 콜백 실행 | clearInterval, clearTimeout | Performance |
| 리스너 | DOM 제거 후 참조 유지 | removeEventListener, AbortController | Memory 탭 |
비교
동일 동작을 반복한 뒤 힙이 계속 증가하는지 본다.
도달성
루트에서 객체까지 이어지는 참조 경로를 추적한다.
정리
컴포넌트 제거 시 타이머와 리스너를 함께 해제한다.