쓰레기 수집 (Garbage Collection)
프로그래밍을 하다가 웬 쓰레기 수집...인가 싶었지만 개념을 듣고 보니 이것만큼 이름을 잘 지은 것도 없는 것 같다.
쓰레기 수집(혹은 가비지 컬렉션)은 Javascript의 메모리 관리 방법으로, JavaScript Engine이 자동으로 데이터가 할당된 메모리에서 더이상 사용되지 않는 데이터를 해제하는 것을 말한다.
이 가비지 컬렉션은 사람이 직접 강제 실행하거나 관리할 수 없다고 한다.
여담으로, C나 C++은 가비지 컬렉션 없이 손으로 직접 메모리 관리를 해주어야 한다는데 얼마나 헬일지 상상도 안간다. C나 C++ 다루는 사람에게 경의를 표한다.
장점
메모리 관리를 철저하게 해줄 필요는 없다.
단점
가비지 컬렉션이 언제 일어나는지 알 수 없다. 이를테면 객체가 쓸모 없어지는 시점에 정확히 메모리가 해제되지는 않기 때문에, 최적의 메모리 관리를 기대할 수 없다.
let a = {x:1};
let b = a;
b.x = 2;
console.log(b); // {x:2}
console.log(a); // {x:2}
// 이때, 1에 할당된 메모리는 사용되지 않으므로 자바스크립트는 해당하는 데이터를 메모리에서 해제한다.
'JAVASCRIPT' 카테고리의 다른 글
[JavaScript] Web APIs - Cookie (0) | 2023.04.28 |
---|---|
[JavaScript] 클로저(Closure) (0) | 2023.04.28 |
[JavaScript] 메모리 누수 (Memory Leak) (0) | 2023.04.27 |
[JavaScript] 얕은 복사와 깊은 복사 (0) | 2023.04.27 |
[JavaScript] 불변성과 가변성 (0) | 2023.04.27 |