블로그
-
C++ 서버 메모리 누수 디버깅 사례: Valgrind·ASan·Heaptrack으로 리스너 누적 찾기
계속 늘어나는 C++ 채팅 서버 메모리를 예로, RSS 지표로 누수 여부를 판단하고 Valgrind, ASan, Heaptrack을 각각 어디에 쓰는지, 해제되지 않는 이벤트 리스너를 어떻게 찾아 RAII로 고치는지 설명합니다. CI에 ASan을 넣을 때 잡히지 않는 누수의 종류도 다룹니다.
-
C++ 크래시 디버깅 실전 사례 | 간헐적 Segmentation Fault 해결기
가끔만 터지는 C++ 채팅 서버 세그폴트를 예제로 꾸며, 코어 덤프와 gdb로 크래시 지점부터 잡고 로컬 재현이 안 되면 rr 역방향 디버깅으로 데이터 경쟁을 찾는 과정을 따라갑니다. 뮤텍스, shared_ptr·weak_ptr, Asio strand 세 가지 수정안과 TSan 검증을 다룹니다.
-
JavaScript 비동기 디버깅 예제 | Unhandled Rejection과 Promise 체인 에러 추적하기
간헐적으로 Unhandled Rejection만 남는 Node.js·Express 코드를 예로, 에러 핸들러가 빠진 Promise 체인에서 에러가 왜 사라지는지 재현하고, 비동기 스택 트레이스로 호출 위치를 찾는 조건, async/await 전환, 전역 핸들러, Express 에러 미들웨어, Sentry 연동, 타임아웃·재시도 패턴까지 설명합니다.
-
C++ 변수와 자료형: int, double, string과 초보자가 자주 하는 실수
C++ int·long long·double·char·bool·std::string의 크기와 범위, 플랫폼마다 long 크기가 다른 이유, 중괄호 초기화와 auto·const·constexpr, 정수 나눗셈·signed 오버플로·unsigned 혼합 비교처럼 초보자가 자주 밟는 함정을 예제로 정리합니다.
-
C++20 std::ranges 알고리즘: projection으로 중복 줄이기와 concept 기반 에러
C++20 std::ranges 알고리즘을 다룹니다. std::sort 대비 안전성, projection으로 코드 중복 줄이기, concept 기반 컴파일 에러, subrange 반환까지 실전 예제로 정리합니다.
-
C++ 연산자 오버로딩: 멤버·비멤버 선택, 산술·비교·입출력 연산자 구현
C++ 연산자 오버로딩으로 복소수, 분수, 행렬, 문자열 클래스에 산술·비교·입출력 연산자를 정의하는 방법을 정리합니다. 멤버·비멤버 선택, friend, 자기 대입, const 정확성 함정까지 다룹니다.
-
C++ Asio Composed Operation | 비동기 함수 설계 [#7]
헤더를 읽고 길이만큼 바디를 읽는 두 단계 수신을 async_read_packet 하나로 묶는 Boost.Asio Composed Operation을 설계합니다. 상태 머신으로 비동기 호출을 연쇄하는 법과 async_initiate, 완료 토큰으로 콜백과 코루틴을 모두 지원하는 방법을 설명합니다.
-
C++ 인라인 어셈블리: GCC 확장 asm 제약 문자·clobber, MSVC 차이, 인트린식이 나은 경우
GCC/Clang 확장 asm의 출력·입력 피연산자, 제약 문자, clobber 목록을 읽고 쓰는 법과 MSVC 문법의 차이, memory clobber로 컴파일러 배리어를 만드는 원리를 CPUID·타임스탬프 카운터 예제로 설명하고, 인트린식이 더 나은 경우를 구분합니다.
-
C++ GUI | Qt 프레임워크: 위젯부터 MOC·시그널/슬롯·이벤트 루프·Graphics View까지
Qt Widgets 기초 예제(버튼, 레이아웃, 메뉴, 텍스트 에디터)와 함께 MOC가 하는 일, 시그널/슬롯 연결 타입, 이벤트 루프, Graphics View, 부모-자식 소유권과 스레드 친화성을 정리하고, vtable 링크 에러나 Cannot queue arguments 같은 실제 오류의 원인을 설명합니다.
-
CMake find_package로 외부 라이브러리 연결하기: Config vs Module 모드와 커스텀 Find 모듈
CMake find_package로 외부 라이브러리를 통합하는 방법. 기본 사용법, 주요 라이브러리 예제, Config 모드와 Module 모드의 차이, 커스텀 FindModule 작성과 자주 생기는 오류를 정리합니다.