블로그
-
CMakePresets.json으로 빌드 설정 통일하기: 멀티 플랫폼 프리셋, vcpkg 바이너리 캐시, CI
CMakePresets.json의 configure·build·test·workflow 프리셋 구조와 스키마 버전별 기능, 멀티 플랫폼·MSVC+Ninja 설정, 2025년에 x-gha가 제거된 뒤의 vcpkg 바이너리 캐시 구성, Conan 2 연동, CI 자동화와 자주 나는 에러를 다룹니다.
-
C++에서 PostgreSQL 연동: libpq vs libpqxx, 트랜잭션, Prepared Statement, COPY와 연결 풀
C++에서 PostgreSQL을 쓰는 방법을 정리합니다. C 기반 공식 라이브러리 libpq와 C++ 래퍼 libpqxx 비교, 트랜잭션과 자동 롤백, Prepared Statement로 SQL 인젝션 방지, COPY 기반 대량 입출력, 연결 풀과 재연결·재시도를 다룹니다.
-
C++에서 Kafka 쓰기: librdkafka 프로듀서·컨슈머 그룹, 오프셋 관리, 리밸런싱과 메시지 유실
C++에서 Apache Kafka 연동. librdkafka로 프로듀서와 컨슈머 그룹 구현, 오프셋 관리, 연결 타임아웃·메시지 유실·리밸런싱 같은 흔한 문제 해결, 배치·압축 성능 최적화를 다룹니다.
-
AWS SDK for C++: S3 멀티파트 업로드, DynamoDB CRUD, Lambda 호출, IAM 자격 증명
AWS SDK for C++로 S3 업로드·다운로드·멀티파트 업로드, DynamoDB PutItem·GetItem·UpdateItem·Query, Lambda 동기·비동기 호출, 자격 증명 체인을 다룹니다. InitAPI/ShutdownAPI 수명 문제, FunctionError, upsert 같은 조용한 오류 지점도 짚습니다.
-
C++에서 RabbitMQ 쓰기: SimpleAmqpClient·rabbitmq-c, 토픽 라우팅, Dead Letter, 메시지 TTL
이메일 발송 같은 느린 작업 때문에 API 응답이 막힐 때 RabbitMQ로 비동기 처리하는 방법. SimpleAmqpClient와 rabbitmq-c 설치·연결, 프로듀서·컨슈머, 토픽 라우팅, 우선순위 큐, Dead Letter와 TTL을 다룹니다.
-
CLion으로 C++ 개발하기: CMake 프로젝트 설정, 툴체인, 디버깅, 리팩토링 단축키
CLion에서 툴체인과 CMake 프로파일을 설정하고 vcpkg·Conan을 연동하는 과정부터, 역디버깅·데이터 브레이크포인트·로그포인트 활용과 Change Signature 같은 리팩토링 단축키까지 VSCode, Visual Studio와 비교하며 설명합니다.
-
C++ 개발자를 위한 Go 언어 2주 학습 커리큘럼: Day별 일정과 C++ 개념 대응
C++ 개발자가 Go를 배울 때 클래스 없는 구조체와 인터페이스, 에러 값 반환, 고루틴과 채널로 사고방식을 옮기는 과정을 Day별 2주 일정으로 정리했습니다. M:N 스케줄러와 채널 내부 구조, C++ 코드를 Go로 옮길 때의 주의점도 다룹니다.
-
C++ filesystem::path: 경로 결합·분해, absolute·canonical·relative 차이
std::filesystem::path의 / 연산자로 경로를 결합하고 filename, stem, extension으로 부분을 추출하는 법, absolute, canonical, relative의 차이, 확장자 일괄 변경과 백업 경로 생성 예제로 Windows와 Linux에서 같은 코드가 동작하게 만드는 방법을 다룹니다.
-
C++ 리플렉션 구현 | 타입 정보·메타데이터·자동 직렬화
구조체마다 to_json·from_json을 손으로 짜는 대신 타입 레지스트리로 멤버 메타데이터를 등록해 직렬화와 설정 로딩을 자동화하는 C++ 리플렉션 구현입니다. 매크로로 반복을 줄이는 법, RTTR 라이브러리, 중복 등록 같은 함정도 다룹니다.
-
C++26 리플렉션 기초: ^^ 연산자, std::meta::info, template for로 멤버 순회하기
C++26에 채택된 정적 리플렉션(P2996)의 실제 문법을 정리합니다. ^^ 연산자와 std::meta::info, identifier_of·nonstatic_data_members_of·access_context, [: :] 스플라이스, template for와 define_static_array, [[=...]] 어노테이션, 컴파일러 지원 현황과 C++20 대안까지 다룹니다.