여니의 프로그래밍 study/JavaScript

4-3 가비지 컬렉션 (Javascript)

여니's 2021. 3. 11. 15:18

자바스크립트는 눈에 보이지 않는 곳에서 메모리 관리를 수행한다.

우리가 만드는 모든 것은 메모리를 차지한다.

 


가비지 컬렉션

: 도달 가능성이라는 개념을 사용해서 메모리 관리를 수행한다

모든 객체를 모니터링하고 도달할 수 없는 객체는 삭제한다.

 

도달 가능성..?

=> 어떻게든 접근하거나 사용할 수 있는 값을 의미한다.

도달 가능한 값은 메모리에서 삭제되지 않는다.

 

let user={

name:'hello'

}

 

참조가 사라지게 하려면?

다른 값으로 덮어쓰면 참조가 사라진다.

 

user=null;

 

이제 hello는 도달할 수 없는 상태가 되었고,

가비지 컬렉터는 이제 hello에 저장된 데이터를 삭제하고,

hello를 메모리에서 삭제한다.

 

즉,

hello를 참조하는 변수가 없고,

hello를 찾는 변수가 없을 때,

삭제된다.


도달 할 수 없는 섬 같은 구조일 경우

섬을 구성하는 객체 전부가 메모리에서 삭제된다.

 


가비지 컬렉션은 자동으로 수행하므로,

개발자는 이를 억지로 실행하거나 막을 수 없다.

객체는 도달 가능한 상태일 때 메모리에 남는다.


출처

ko.javascript.info/garbage-collection


가비기 컬렉션 원리에 대해 추가 조사 필요