메모리 누수 원인을 valgrind로 특정 후 해결
임베디드 프로젝트에서 장시간 운용 후 응답이 느려지는 성능 문제를 겪었습니다. 처음엔 알고리즘 문제로 봤는데, valgrind로 메모리 사용량을 추적하니 특정 함수 호출마다 메모리가 조금씩 증가하고 있었습니다. 동적 할당 후 해제가 누락된 포인터를 찾았고, 소멸자에서 명시적 해제를 추가하니 증상이 사라졌습니다.
메모리 누수는 발생 즉시 티가 나지 않아서 장시간 테스트 없이는 잡기 어려웠습니다. 이 경험 이후로 동적 메모리 할당은 최소화하고 가능하면 정적 할당으로 대체하는 방향으로 코딩 습관이 바뀌었습니다. 문제는 증상에서 원인으로, 원인에서 코드로 좁혀가는 순서가 가장 효율적이라는 걸 배웠습니다.