블로그
-
shared_ptr 심화: enable_shared_from_this와 aliasing 생성자 활용
this를 shared_ptr로 감싸다 이중 해제로 크래시한 적 있나요? enable_shared_from_this, aliasing 생성자, shared_ptr 스레드 안전성, 멤버 포인터 수명 관리까지. 실전 문제 시나리오와 프로덕션 패턴.
-
C++ 생성 패턴 실무 활용: Singleton·Factory·Builder·Prototype
전역 설정 접근, 다형적 객체 생성, 파라미터가 너무 많은 생성자 같은 문제를 Singleton, Factory, Builder, Prototype이 각각 어떻게 푸는지 보여줍니다. 스레드 안전 Singleton, 정적 초기화 순서 문제, 얕은 복사 함정도 다룹니다.
-
C++ 디자인 패턴 | Adapter·Decorator
외부 라이브러리 인터페이스가 맞지 않거나 기존 코드를 고칠 수 없을 때 Adapter와 Decorator로 감싸는 방법을 먼저 보여주고, Proxy·Bridge·Composite까지 구조 패턴을 예제로 비교합니다. 세 래퍼 패턴이 헷갈리는 지점과 Decorator 체인의 메모리 관리도 다룹니다.
-
C++ PIMPL과 브릿지 패턴 | 구현 숨기기와 추상화 [#19-3]
private 멤버 하나를 추가했을 뿐인데 이 클래스를 include하는 모든 .cpp가 다시 컴파일됩니다. PIMPL로 컴파일 의존성을 끊는 방법, unique_ptr와 불완전 타입 함정, 브릿지 패턴으로 추상과 구현을 분리하는 방법을 정리합니다.
-
C++ 디자인 패턴 | Observer·Strategy
데이터 변경을 여러 UI에 알리다 강한 결합이 생기는 문제에서 출발해, C++로 Observer·Strategy·Command·State·Template Method 패턴을 구현하고 notify 중 detach, 상태 전이 시 수명 문제 같은 함정을 다룹니다.
-
C++ 디자인 패턴 실전 | Singleton·Factory·Observer·Strategy·PIMPL 예제와 자주 하는 실수
전역 설정 접근, if-else로 늘어나는 객체 생성, 여러 UI에 변경 알리기, 알고리즘 교체, 헤더 하나 고쳤는데 오래 걸리는 재빌드를 Singleton, Factory, Observer, Strategy, PIMPL로 푸는 예제를 모았습니다. 패턴별로 자주 하는 실수도 짚습니다.
-
C++ HTTP 클라이언트 직접 만들기: TCP 소켓부터 Boost.Beast, 연결 풀, 타임아웃까지
C++로 HTTP 클라이언트를 구현하는 방법. HTTP 기초와 TCP 연결, Boost.Beast로 REST API 호출하기, 연결 풀과 Keep-Alive, 타임아웃 처리, 자주 나는 에러와 성능 벤치마크를 다룹니다.
-
C++ JSON 파싱: nlohmann/json vs RapidJSON, 커스텀 타입 직렬화, null·타입 에러 처리
C++ REST API 응답·설정 파일 파싱 시 타입 에러·null 접근·메모리 폭발 문제를 해결합니다. nlohmann/json, RapidJSON, 커스텀 타입 직렬화, 자주 발생하는 에러와 API 응답 처리 패턴을 예제 코드로 다룹니다.
-
C++ 작업 큐 설계: 워크 스틸링으로 스레드 풀 성능 끌어올리기
메인 스레드에서 무거운 작업을 돌려 UI가 멈추는 문제를 조건 변수 기반 작업 큐와 스레드 풀로 푸는 과정을 구현합니다. std::future로 결과 받기, 부하 불균형을 줄이는 워크 스틸링, spurious wakeup과 shutdown 타이밍, 예외로 워커가 죽는 문제도 다룹니다.
-
C++ REST API 클라이언트: cpr·cpp-httplib·libcurl 비교, 인증, 재시도와 서킷 브레이커
C++ REST API 클라이언트 구현. cpr(C++17 libcurl 래퍼), cpp-httplib(헤더 온리), libcurl의 선택 기준, CRUD와 Bearer·API 키 인증, 재시도·서킷 브레이커 같은 에러 처리 패턴을 다룹니다.