가비지 컬렉션

가비지 컬렉션이란 무엇인가?

자바스크립트에서 변수는 직접적으로 참조 값(문자열, 객체, 배열 등)을 담고 있지 않으며, 해당 값은 다른 어떤 메모리 상의 위치에 저장된다.

자바스크립트 프로그램에서 문자열이나 배열, 또는 객체를 생성할 경우 인터프리터에서는 반드시 해당 개체를 저장하기 위한 메모리를 할당해야 하고 최종적으로 메모리는 재사용을 위해 반드시 비워져야 한다.

자바와 마찬가지로 자바스크립트도 가비지 컬렉션(garbage collection) 기법에 의존하는데, 자바스크립트 인터프리터는 객체가 언제 다시는 프로그램에서 사용되지 않을 것이고 그 객체에 도달할 수 없는지 알아낼 수 있다. 그러면 그 객체는 더는 필요하지 않다는 사실을 알고 그것이 점유한 메모리도 회수할 수 있다.

가비지 컬렉션은 자동적으로 이뤄지고 프로그래머가 확인할 수 없다.

자바스크립트 가비지 컬렉션 예제

자바스크립트 가비지 컬렉션 예제는 다음과 같다.

var user = {name: 'tom'};   // 객체에 대한 메모리를 할당
user = {name: 'jerry'};     // 또 다른 객체를 참조

이 코드를 실행하고 나면 첫 번째 객체({name: 'tom'})에는 더는 도달할 수 없고 프로그램에서 해당 객체를 가리키는 참조가 없으므로 자바스크립트에서는 재사용을 위해 해당 객체가 점유한 저장공간을 비울 것이다.

관련 수업

← 이전다음 →