가비지 콜렉터(garbage collector)

권순성·2022년 6월 19일
2

Javascript

목록 보기
3/28
post-thumbnail
var num; // undefined
num = 1; // 1
num = 2; // 2

위의 예시를 보자 num 변수의 최종적인 값은 2이다.

변수에 값을 재할당 하게되면 본래의 기존에 할당되어 있던 메모리의 값을 변경하는 것이 아니고 새로운 메모리에 값을 추가하게 된다.

num 변수의 이전의 값인 undefined와 1은 어떤 변수도 값으로 가지고 있지 않다.
다시 말해, 어떤 식별자와도 연결되어 있지 않다. 이것은 undefined와 1이 더 이상 필요하지 않다는 것을 의미한다.

이러한 불필요한 값들은 가비지 콜렉터에 의해 메모리에서 자동 해제된다. 단, 메모리에서 언제 해제될지는 예측할 수 없다.

이처럼 가비지 콜렉터는 애플리케이션이 할당한 메모리 공간을 주기적으로 검사하여 더 이상 사용되지 않는 메모리 공간을 해제하는 역할을 한다.
더 이상 사용되지 않는 메모리 공간이란 간단히 말하자면 어떤 식별자도 참조하지 않는 메모리 공간을 의미한다.

자바스크립트는 가비지 콜렉터를 내장하고 있는 매니지드 언어로서 가비지 콜렉터를 통해 메모리 누수(memory leak)를 방지한다.

profile
개발을 즐기는 개발자입미다!

0개의 댓글