메모리 관리와 누수 방지
개념 설명
가상 메모리 시스템과 JavaScript 런타임의 메모리 관리 방식을 이해하여 메모리 누수를 방지하는 기법.
핵심 포인트
- 가상 메모리는 페이지 단위(4KB)로 관리되며 디스크 스왑 가능
- JavaScript GC는 마크 앤 스위프 방식으로 도달 불가능한 객체 수집
- 순환 참조, 타이머 미해제, 클로저가 주요 메모리 누수 원인
- WeakMap/WeakSet으로 약한 참조 활용하여 누수 방지
예시 코드
// 메모리 누수 방지 패턴
class MemoryEfficientComponent {
constructor() {
this.timers = new Set();
this.listeners = new Map();
}
addTimer(callback, interval) {
const id = setInterval(callback, interval);
this.timers.add(id);
return id;
}
addEventListener(element, event, handler) {
element.addEventListener(event, handler);
this.listeners.set(element, { event, handler });
}
destroy() {
// 타이머 정리
this.timers.forEach(id => clearInterval(id));
this.timers.clear();
// 이벤트 리스너 정리
this.listeners.forEach((info, element) => {
element.removeEventListener(info.event, info.handler);
});
this.listeners.clear();
}
}더 많은 내용을 확인하세요! 📚
“메모리 관리와 누수 방지”의 전체 내용을 보시려면 프리미엄 플랜이 필요합니다.
✨ 모든 기술 문서 무제한 액세스
📝 실습 예제와 상세한 코드 설명
🎯 면접 예상 질문과 답변 가이드