본문으로 바로가기

클로저의 남용으로 인한 메모리 누수

category JS/JavaScript 2016. 4. 21. 10:14

출처 : https://developer.mozilla.org/ko/docs/A_re-introduction_to_JavaScript

내용을 보면,

JavaScript 객체(함수)와 고유 객체간(함수 안의 객체 참조)에 참조하는 중 자기 자신을 참조 (circular reference, 순환 참조)하게 되는 일이 발생할 경우라면 언제든지 발생하게 됩니다.

게 있는데, 

왠지 설계상의 실수 같다..

클로저 개념을 읽어 봐도 그렇듯이, 희안하게 한번 호출하고 나면 그 속에 선언된 객체들이 완전히 사라지는것이 아닌 어느 메모리 공간속에 저장하고 다시 호출 하면 사용할 수 있게 해줘서 메모리가 무한정으로 늘어나는 고질적인 문제가 있다.

외부 라이브러리 처럼 즉시 실행 함수 호출등으로 참조를 끊어주는등 여러 방법으로 해결을 하고 있는데,

나도 이런씩의 패턴을 지향해야 할듯 싶다.