Memory leak
컴퓨터 과학에서 메모리 누수(memory leak) 현상은 컴퓨터 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상이다. 할당된 메모리를 사용한 다음 반환하지 않는 것이 누적되면 메모리가 낭비된다. 즉, 더 이상 불필요한 메모리가 해제되지 않으면서 메모리 할당을 잘못 관리할 때 발생한다. 일부 서적에서 메모리 손실이라는 용어로 뜻을 옮기기도 하지만 leak라는 표현은 단순히 잃는 것 이상의 개념이므로 누수라는 표현이 더 정확하다.
중요한 부분
특히 다음 경우들에서, 메모리 누수는 더 심각하고, 중요하게 다루어져야 한다.
- 메모리를 할당하며 오랫동안 실행되는 프로그램(서버의 백그라운드 작업이나 임베디드 장치)
- 메모리 할당 주기가 짧은 경우(컴퓨터 그래픽의 프레임 단위 처리)
- 공유 메모리와 같이 프로그램 종료 후에도 해제되지 않는 메모리를 할당하는 경우
- 임베디드 시스템이나 휴대용 장치와 같이 사용 가능한 메모리가 제한적인 경우
- 운영 체제나 메모리 관리자의 내부
- 시스템의 신뢰성에 심각한 영향을 미치는 경우(장치 드라이버)
- 프로그램을 종료할 때 운영체제에서 메모리 해제를 수행해 주지 않는 경우.