javaScript
WeakMap과 WeakSet
와이다이어리
2025. 5. 12. 21:29
반응형
WeakMap과 WeakSet은 일반 Map과 Set과 비슷하지만 메모리 관리 측면에서 중요한 차이가 있습니다.
WeakMap은 키가 객체일 경우만 저장할 수 있으며, 가비지 컬렉션이 가능한 자료구조입니다. 객체가 더 이상 참조되지 않으면, 해당 키-값 쌍은 자동으로 삭제됩니다. 이 때문에 메모리 관리가 용이합니다.
let obj = {};
let weakMap = new WeakMap();
weakMap.set(obj, 'some value');
obj = null; // obj가 더 이상 참조되지 않음
// 가비지 컬렉션에 의해 WeakMap에서 자동으로 삭제됨
WeakSet은 값이 객체일 경우만 저장할 수 있으며, WeakMap과 마찬가지로 가비지 컬렉션이 지원됩니다. 객체가 더 이상 참조되지 않으면, 해당 객체는 자동으로 삭제됩니다.
*가비지 컬렉션(Garbage Collection, GC) : 사용되지 않는 메모리를 자동으로 관리하는 시스템
반응형