문제제기

자료구조 공부 중, 노드 삭제를 하게 되면, C언어의 경우에는 free를 통해 할당했던 메모리를 해제하게 된다. 그렇다면, JS는 어떻게 메모리를 관리하는 것일까?

JS의 메모리 관리

JS에서는 객체가 더 이상 필요하지 않을 때, 자동으로 메모리를 해제한다(가비지 컬렉션). 그렇다면, JS 프로그래머들은 메모리 관리를 할 필요가 아예 없는 것일까?

그건 아니다! 기본적으로 JS에서 메모리를 어떻게 관리하고 처리하는지 이해하고 적절하게 코딩해야 한다!

JS의 메모리 할당, 사용, 해제

위의 두 가지 관리 방법을 제공함에도 불구하고 JS에서 메모리 관리에는 한계가 존재한다. 바로 JS에서 수동으로 메모리 해제를 하기위한 명시적 기능이 존재하지 않는다는 것이다.

결론

JS는 애초에 메모리의 크기가 충분하다는 가정에서 생성된 언어이다. 따라서 메모리 관리를 특별히 할 필요는 없지만, 메모리가 크게 필요한 경우에는 해당 실행프로그램이 어떤 방식의 GC를 사용하는지 파악하고 돌려서 해제할 필요가 있다.

참고자료

JS 메모리 관리 MDN 문서 참고https://developer.mozilla.org/ko/docs/Web/JavaScript/Memory_management

JS 메모리 할당 참고https://velog.io/@uiseop/%EA%B8%B0%EC%B4%88-%EB%A9%94%EB%AA%A8%EB%A6%AC%EC%99%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-JS%EC%97%90%EC%84%9C