memory defense stack

메모리 문제는 예방, 정적 검사, 실행 계측, 장시간 검증을 겹쳐 줄인다

한 도구가 모든 누수와 해제 후 사용을 잡지 못하므로, 개발 단계별 방어선을 겹쳐야 합니다.

1. 작성 단계
RAII / smart pointer

소유권과 해제 책임을 타입에 묶어 누수 가능성을 줄입니다.

막는 문제

반환 누락, 예외 경로 누수, 중복 해제.

2. 리뷰 전
clang-tidy / static analysis

실행하지 않아도 보이는 위험한 패턴을 먼저 걷어냅니다.

막는 문제

잘못된 소유권 규칙, 위험한 캐스팅, 초기화 누락.

3. 테스트 실행
ASan / UBSan / TSan

런타임에서 실제 접근 오류와 레이스를 계측합니다.

잡는 문제

use-after-free, out-of-bounds, data race.

4. 장시간 실행
stress test / snapshot

짧은 테스트에서 안 보이는 누적 증가를 추적합니다.

잡는 문제

느린 누수, 특정 경로에서만 쌓이는 객체 증가.

실전 조합: 새 코드는 RAII를 기본값으로 두고, CI에서 sanitizer를 켜며, 릴리스 전에는 장시간 시나리오로 메모리 증가를 비교합니다.