블로그
-
C++ map vs unordered_map: 레드-블랙 트리와 해시 테이블의 성능·메모리 비교
레드-블랙 트리인 map과 해시 테이블인 unordered_map을 삽입, 조회, 순회 비용과 메모리 사용량으로 비교합니다. 정렬 순회나 범위 탐색이 필요할 때와 평균 조회 속도가 중요할 때 무엇을 고를지, 커스텀 키 타입 작성법까지 설명합니다.
-
C++ vector reserve vs resize: capacity와 size의 차이와 쓰임
vector의 reserve는 capacity만 늘리고 size는 그대로 두지만, resize는 요소를 실제로 만들고 초기화해 size를 바꿉니다. 이 차이 때문에 reserve 뒤 인덱스로 접근하거나 resize 뒤 push_back을 하면 생기는 버그와 재할당 횟수 차이를 예제로 보여 줍니다.
-
C++ STL 컨테이너: 연산별 성능 비교와 상황별 선택 기준
vector, map, unordered_map, deque, list의 내부 구조와 반복자 무효화 규칙, 메모리 할당 전략, 캐시 성능 차이를 측정 방법과 함께 비교하고 상황별 컨테이너 선택 기준을 정리합니다.
-
C++ Copy Elision 심화 | RVO·NRVO·필수 생략·예외 안전
C++17에서 prvalue 반환에 복사 생략이 의무가 된 규칙과 NRVO처럼 여전히 컴파일러 재량인 경우를 구분하고, NRVO가 실패하는 조건, 이동 폴백과 noexcept, return std::move가 최적화를 막는 이유를 설명합니다.
-
C++ 반복자 무효화: vector iterators incompatible 크래시 원인과 해결
vector iterators incompatible 같은 크래시를 일으키는 반복자 무효화를 vector·list·map·unordered_map·deque별 규칙으로 정리하고, 범위 기반 for에서 erase하는 실수를 포함한 10가지 오류 패턴과 안전한 삭제 방법을 설명합니다.
-
C++ 프로그램이 느릴 때 병목 찾기: perf·Flame Graph·VS Profiler와 흔한 병목 7가지
C++ 프로그램이 예상보다 느릴 때 perf·Flame Graph·Visual Studio Profiler로 핫스팟을 찾고, 불필요한 복사, 과도한 메모리 할당, 캐시 미스, 락 경합 같은 흔한 병목을 코드로 고치는 과정을 보여줍니다.
-
C++ 예외 처리: try/catch/throw, 예외 안전성, 언제 예외를 쓰나
예외를 던질지 에러 코드를 반환할지 결정하는 기준부터, 예외를 참조로 잡아야 하는 이유, 소멸자에서 던지면 안 되는 이유, RAII로 예외 안전성을 지키는 법, 스택 풀기와 noexcept의 실제 효과까지 C++ 예외 처리를 코드로 짚습니다.
-
C++ 상속과 다형성: virtual 함수, 추상 클래스, 가상 소멸자 누락과 슬라이싱
C++의 상속(Inheritance)과 다형성(Polymorphism)을 게임 캐릭터·결제 시스템 예제로 정리합니다. virtual 함수, 순수 가상 함수, 가상 소멸자 누락과 슬라이싱 같은 실무에서 자주 겪는 함정을 다룹니다.
-
C++ 신입 면접 준비: 자주 나오는 기술 질문 15개와 개인 프로젝트 설명법
신입 C++ 면접에서 자주 나오는 포인터와 참조, 메모리 누수, 가상 함수, 복사 생성자 같은 기술 질문 15개에 어떻게 답할지 예시로 보여주고, 실무 경력이 없을 때 개인 프로젝트를 이력서와 GitHub 포트폴리오로 설명하는 방법을 정리합니다.
-
C++ 개발자 기술 면접 | 자주 나오는 질문과 답변 스크립트(30초·90초)·꼬리 질문 대비
C++ 면접에서 RAII, 이동 의미론, vtable, data race, 반복자 무효화, ODR 같은 단골 주제를 30초 요약과 90초 확장 답변으로 나눠 말하는 법, 그리고 이어지는 꼬리 질문에 한 줄로 대응하는 요령을 다룹니다.