C++ RAII란 무엇일까? new/delete 없이 자원을 안전하게 관리하는 방법: 스코프와 소멸자로 정리 책임을 묶는 C++ 습관
댓글수 ·
2026.07.01
한 줄 요약: RAII는 파일, 메모리, 락 같은 자원을 객체가 생성될 때 획득하고 객체 수명이 끝날 때 자동으로 해제하게 만들어 예외와 조기 반환에서도 정리 코드를 놓치지 않게 하는 C++의 핵심 설계 방식입니다.먼저 알아야 할 배경C++에서 자원 관리는 단순히 `delete`를 잘 호출하는 문제가 아닙니다. 함수 중간에서 예외가 발생하거나 여러 return 경로가 생기거나 유지보수 중 분기가 추가되면, 처음에는 맞아 보이던 `new/delete`, `open/close`, `lock/unlock` 짝이 쉽게 깨집니다.RAII는 정리 코드를 사람이 기억해야 하는 절차에서 타입이 책임지는 규칙으로 옮깁니다. 객체가 스코프에 들어올 때 자원을 잡고 스코프를 벗어날 때 소멸자가 자원을 놓으면, 정상 종료와 ..