자바스크립트는 눈에 보이지 않는 곳에서 메모리 관리를 수행한다.
우리가 만드는 모든 것은 메모리를 차지한다.
가비지 컬렉션
: 도달 가능성이라는 개념을 사용해서 메모리 관리를 수행한다
모든 객체를 모니터링하고 도달할 수 없는 객체는 삭제한다.
도달 가능성..?
=> 어떻게든 접근하거나 사용할 수 있는 값을 의미한다.
도달 가능한 값은 메모리에서 삭제되지 않는다.
let user={
name:'hello'
}
참조가 사라지게 하려면?
다른 값으로 덮어쓰면 참조가 사라진다.
user=null;
이제 hello는 도달할 수 없는 상태가 되었고,
가비지 컬렉터는 이제 hello에 저장된 데이터를 삭제하고,
hello를 메모리에서 삭제한다.
즉,
hello를 참조하는 변수가 없고,
hello를 찾는 변수가 없을 때,
삭제된다.
도달 할 수 없는 섬 같은 구조일 경우
섬을 구성하는 객체 전부가 메모리에서 삭제된다.
가비지 컬렉션은 자동으로 수행하므로,
개발자는 이를 억지로 실행하거나 막을 수 없다.
객체는 도달 가능한 상태일 때 메모리에 남는다.
출처
ko.javascript.info/garbage-collection
가비기 컬렉션 원리에 대해 추가 조사 필요
'여니의 프로그래밍 study > JavaScript' 카테고리의 다른 글
[Javascript] 심볼형에 대해 알아보기 (0) | 2021.03.25 |
---|---|
4-4 메서드와 'this' (Javascript) (0) | 2021.03.11 |
4-2 참조에 의한 객체 복사 (Javascript) (0) | 2021.03.11 |
4-1 객체 (Javascript) (0) | 2021.03.10 |
좋은 주석을 작성하는 방법 (0) | 2021.03.10 |