메모리 누수(memory leak)
메모리 누수(memory leak) 란
일단 누수라는 표현을 왜 썼는지 이해하자. 누수라는 건 뭔가 제대로 밀봉이 되지 않아서 새어나가는 것을 의미한다. 메모리 누수는 말 그대로 메모리가 의도치 않게(원치 않게) 새어 나가는 것을 의미한다. 메모리는 유체나 기체가 아니니까 실제로 새어 나갈 수는 없고, '잃는다' 고 이해하면 좋을 것 같다. 정리를 하자면 메모리 누수라는 말을 사전적으로 이해하자면 메모리를 의도치 않게 조금씩 잃는 것이라고 할 수 있다.
프로그래밍에서의 메모리 누수란 더 이상 사용하지 않는 객체인데 이것이 메모리를 반환하지 않아서(=반환 시키지 않아서) 메모리가 낭비되는 것을 의미한다.
대표적으로 어떤 경우가 있을까
이펙티브 자바에서도 나오는데 커스텀한 컬렉션을 만드는 경우 특히 넣고 빼고 하는 과정에서 element 의 메모리를 제대로 반환시키지 않으면 점점 실제로 참조되진 않지만 계속 활성 객체로 머물게 되어 낭비되는(=새어 나가는) 메모리가 쌓여나갈 수 있다.
Last updated