리엑트네이티브에서 메모리 누수를 잡아라.

JungKuk Jo·2023년 4월 14일
0

메모리 누수(memory leak)란, 프로그램이 메모리를 할당했지만, 더 이상 필요하지 않은 객체나 변수들이 해제되지 않아서 메모리가 계속해서 쌓이는 현상을 말합니다. 이는 결국 시스템의 성능 저하나 다운 등의 심각한 문제를 초래할 수 있습니다.

예를 들어, React 컴포넌트에서는 componentWillUnmount() 메서드를 사용하여 컴포넌트가 언마운트 될 때 사용된 자원을 해제할 수 있습니다. 이를 하지 않으면, 컴포넌트가 제거되더라도 해당 컴포넌트에서 사용된 자원이 계속해서 메모리에 쌓이는 메모리 누수 현상이 발생할 수 있습니다.

또한, 이벤트 리스너를 등록한 경우, 이를 등록한 컴포넌트가 언마운트되더라도 이벤트 리스너가 계속해서 메모리에 남아있을 수 있습니다. 이 경우, componentWillUnmount() 메서드에서 이벤트 리스너를 해제하여 메모리 누수를 방지할 수 있습니다.

또 다른 예시로는, JavaScript에서는 클로저(closure)를 사용할 때, 외부 변수를 참조하는 내부 함수가 외부 함수보다 오래 살아남을 경우, 해당 변수는 계속해서 메모리에 쌓일 수 있습니다. 이를 해결하기 위해서는, 내부 함수에서 외부 변수를 참조하는 것이 아니라, 변수를 인자로 전달하거나, 내부 함수에서 새로운 변수를 선언하여 사용해야 합니다. 이를 통해, 사용되지 않는 변수가 메모리에 쌓이는 것을 방지할 수 있습니다.

0개의 댓글