Beyond Memory Leaks In Javascript

https://medium.com/outsystems-experts/beyond-memory-leaks-in-javascript-d27fd48ae67e#.grvvsvdwd 을 번역하였습니다.


들어가기에 앞서..

메모리 누수는 졸업파티 밤에 찾아오는 당신의 코에 생긴 뾰루지와 같습니다. 당신은 그것들이 존재하고, 아무데도 가지 않는다는걸 알고있으며, 당신은 단지 그들이 확 올라오지 않거나 마술을 할 시간이 올 때 아무도 알아차리지 않기를 기도합니다.
뾰루지들은 불편하고, 더럽습니다. 마치 거리에서 당신의 코를 세상에 알리려고 하는 신호처럼 느껴집니다. 당신이 원했던 것은 모두 당신의 스매싱 댄스 동작으로 신사 숙녀에게 인상을 주는것 뿐이었습니다. (레코딩을 위해 무도회 밤에는 여드름이 없었고 나는 챔피언처럼 춤을 췄습니다.)

댄스타임

OutSystems를 포함하여 모든 프론트-개발자들은 자바스크립트 누수를 한번 또는 여러번 겪었습니다. 이와 관련해서 다음 3가지 유형의 개발자가 있습니다:

  1. 정통한 사람 : 그들이 무엇을 다루고 있는지를 알고 문제를 해결 한 사람들.
  2. 인식하는 사람: 그들이 무엇을 다루는지를 알지만, 문제를 해결하지 못하는 사람들.
  3. 망각하는 사람: 처음에는 문제가 있는지를 못느끼는 사람들

이 3가지를 염두에 두고, 우리는 3번 유형의 사람들이 망각에서 벗어나고, 2번 유형의 사람들이 더 깊이있게 파고 들수 있도록 몇가지 가이드라인을 모아봤습니다. 그리고 당신은 결코 알지 못하겠지만, 영리한 1번 유형 사람들은 이런 팁중 일부를 즐기고,추천을 할 수 있습니다. 우리는 토론을 위해 열려있습니다. 또한 우리는 모두를 위한 간식이 준비 되어 있습니다.
무서운 자바스크립트 메모리 누수에 관해서 어디서부터 시작해야 할지 알고 싶은 사람이라면, 이곳에 잘 찾아오셨습니다.

큰그림 - 자바스크립트 생명 주기

처음에는 먼저, 자바스크립트가 객체, 배열, 문자열 또는 DOM 요소를 생성할 때마다 자동으로 메모리를 할당합니다.
메모리 누수는 어플리케이션에 코드가 메모리를 사용하려고 할 때 발생합니다. 이후 작업이 완료된 후에 메모리가 해제 되어야 하지만, 그렇게 되지 않습니다. 몇몇 이유로, 어플리케이션이 메모리 해제를 게을리 하여, 실제로 필요없는 메모리를 소비하게 됩니다. 이는 뾰루지가 처음 나타났을 때와 같아서, 당신은 퍼지거나 터지는 것을 막기 위하여 조치를 취해야 할 때입니다.
메모리 누수의 가장 큰 문제점은 고유한 코드 결함이고, 당신이 검증 할 수 있는 결과 에러가 아니라는 것입니다. 컴파일된 유효한 코드로 부터 나온 결과이기 때문에 모호합니다. 이로인해 메모리 누출 코드가 시스템에 의도적으로 보입니다. (They’re dubious, because they result from valid code that compiles, which makes the runaway, memory-leaking code seem intentional for the machine.) 그 코드들은 분명한 기능이 아니고, 쉽게 디버깅하기도 힘듭니다.

Written on January 1, 2018