블로그
-
C++ shared_ptr vs unique_ptr | '어떤 스마트 포인터?' 선택 가이드
C++ shared_ptr vs unique_ptr 비교. 기본은 오버헤드 적은 unique_ptr, 여러 소유자가 필요할 때 shared_ptr. 참조 카운트 비용·weak_ptr·실무 선택 기준을 성능 관점과 함께 설명합니다.
-
C++ 배열 vs vector | '어느 게 나을까?' 성능과 안전성 비교
C++ C 배열·std::array vs vector 비교. 고정·동적 크기, 스택·힙, 경계 검사. 최적화 빌드에서의 성능과 안전성 트레이드오프, 언제 무엇을 쓸지 실전 선택 가이드입니다.
-
C++ std::optional vs 포인터 | 'null 처리' 안전하고 명확한 선택
C++ std::optional vs nullptr 포인터 비교. 값 없음을 타입으로 표현하는 optional, 다형성·비소유 참조는 포인터. 힙 할당 없는 optional의 이점과 언제 무엇을 쓸지 선택 기준을 설명합니다.
-
C++ emplace vs push | '성능 차이' 컨테이너 삽입 완벽 비교
C++ emplace_back vs push_back 비교. 제자리 생성으로 임시 객체·복사·이동을 줄이는 emplace, 단순 타입은 차이 미미. 컨테이너 삽입 성능과 explicit 생성자까지 실전 선택 가이드입니다.
-
C++ std::variant vs union | '타입 안전성' 완벽 비교
타입 안전성 관점에서 std::variant와 전통적인 union의 차이를 비교합니다. 언제 variant를 쓰고 언제 union이 더 적합한지 실전 예제로 설명합니다.
-
C++ 반복자 무효화 에러 | 'vector iterators incompatible' 크래시 완벽 해결
STL 컨테이너를 순회·삭제하는 도중 반복자가 무효화되면 미정의 동작과 크래시로 이어집니다. 이 글에서는 vector·list·map 등 컨테이너별 무효화 규칙, 안전한 erase 패턴, 범위 기반 for 주의점과 디버깅 방법을 정리합니다.
-
C++ 메모리 누수 찾기 | Valgrind·ASan으로 'leak 0 bytes' 만들기
Valgrind와 AddressSanitizer로 C++ 메모리 누수를 찾는 방법을 다룹니다. 메모리 누수의 5가지 주요 원인과 RAII를 이용한 예방법을 설명합니다.
-
C++ 초보자가 자주 하는 실수 Top 15 | 컴파일 에러부터 런타임 크래시까지
C++ 초보자가 자주 하는 실수 Top 15에 대해 정리한 개발 블로그 글입니다. C++를 처음 배우는 사람들이 반드시 겪는 실수들이 있습니다. 세미콜론 하나, 헤더 파일 하나 빠뜨려도 수십 줄의 에러 메시지가 쏟아집니다. 이 글은 C++ 입문자가 가장 자주 하는 실수 15가지를 정리하고.
-
C++ 프로그램 느림 원인 찾기 | 프로파일링으로 병목 5분 만에 찾는 법
C++ 프로그램이 느린 원인을 프로파일링으로 5분 만에 찾는 방법을 정리했습니다. 알고리즘 복잡도 문제와 실제 병목 지점을 구분하는 법.
-
C++ 미정의 동작 (UB) 완벽 가이드 | '릴리스에서만 크래시' 원인과 해결
C++ 미정의 동작 (UB) 완벽 가이드에 대해 정리한 개발 블로그 글입니다. 미정의 동작(Undefined Behavior, UB)은 C++ 표준에서 . Start now.'어떤 일이 일어날지 정의하지 않은' 코드입니다.