가비지 컬렉션(Garbage Collection)은 자바스크립트 엔진이 더 이상 사용되지 않는 메모리를 자동으로 찾아내어 해제하는 시스템입니다.
변수나 객체를 만들면 메모리가 할당되는데, 주요 알고리즘인 'Mark-and-Sweep(표시하고 쓸기)' 방식은 루트(전역 객체)부터 시작해 참조(Reference)가 연결된 모든 객체를 '도달 가능(Reachable)'하다고 표시합니다. 도달할 수 없는 외딴 섬이 된 객체들은 메모리에서 자동 삭제됩니다.
하지만 전역 변수를 남발하거나, 클로저/이벤트 리스너를 해제하지 않으면 가비지 컬렉터가 지우지 못해 메모리 누수(Memory Leak)가 발생하여 페이지가 점점 느려집니다.