태그: RAII
8편
-
C++ 소멸자와 RAII: 가상 소멸자, 규칙 0, 소멸자에서의 예외
소멸자 호출 순서, 가상 소멸자가 필요한 정확한 조건과 대안(protected 비가상), Rule of 0/3/5, 소멸자에서의 예외·this 사용 함정, 스마트 포인터와의 조합까지 실무 기준으로 정리합니다.
-
C++ 메모리 누수 찾기: Valgrind·ASan·CRT 디버그 힙 사용법과 누수 패턴
Valgrind memcheck와 AddressSanitizer, Visual Studio CRT 디버그 힙으로 C++ 메모리 누수를 찾는 방법을 설명하고, new/delete 불일치, 예외 경로, shared_ptr 순환 참조, 컨테이너에 저장한 포인터 같은 누수 원인과 RAII 해결법을 다룹니다.
-
C++ 개발자 기술 면접 | 자주 나오는 질문과 답변 스크립트(30초·90초)·꼬리 질문 대비
C++ 면접에서 RAII, 이동 의미론, vtable, data race, 반복자 무효화, ODR 같은 단골 주제를 30초 요약과 90초 확장 답변으로 나눠 말하는 법, 그리고 이어지는 꼬리 질문에 한 줄로 대응하는 요령을 다룹니다.
-
C++ malloc vs new vs make_unique: 메모리 할당 방식별 안전성 비교
C++ malloc, new, make_unique를 생성자 호출·타입 안전성·실패 처리(nullptr, bad_alloc, nothrow)·예외 안전성으로 비교하고, 속도 차이가 거의 없는 이유와 벤치마크가 0ms로 나오는 이유까지 정리합니다.
-
C++20 std::jthread: 자동 join과 stop_token으로 스레드 협조적 중단하기
C++20 std::jthread가 소멸 시 자동으로 join하는 방식과 stop_token·stop_source·stop_callback으로 스레드를 협조적으로 중단하는 방법을 std::thread와 비교하고, 중단 체크 누락이나 detach 같은 실수를 예제로 짚습니다.
-
C++ 복사 생성자와 이동 생성자: 호출 시점, Rule of Five와 Rule of Zero
C++ 복사 생성자와 이동 생성자가 호출되는 시점을 동적 배열, 파일 핸들러, 간단한 스마트 포인터 예제로 보여 주고, Rule of Five와 Rule of Zero, 얕은 복사·자기 대입·noexcept 누락 문제를 설명합니다.
-
[[nodiscard]]로 반환값 무시 막기: 에러 코드, RAII 타입, 사유 메시지, Clang-Tidy 검증
C++ [[nodiscard]] 정리. 반환값을 무시해서 생기는 버그, 에러 코드와 RAII 타입에 붙이는 법, C++20 사유 메시지와 생성자 적용, Clang-Tidy 검증, C++26 std::ignore 논의를 다룹니다.
-
C++ RAII: 생성자에서 획득하고 소멸자에서 해제하는 자원 관리 클래스 만들기
early return 때문에 파일 핸들이 새는 코드에서 시작해, 생성자에서 획득하고 소멸자에서 해제하는 RAII로 파일, 뮤텍스, 소켓, DB 트랜잭션을 관리하는 클래스를 직접 만들고 복사와 이동 규칙을 정하는 방법을 보여줍니다.