블로그
-
C++ 초경량 HTTP 웹 프레임워크 바닥부터 만들기
Express나 FastAPI 같은 사용감을 C++로 최소 구현하면서 요청 파싱, 경로 파라미터를 지원하는 라우터, 로깅·공통 헤더·인증 미들웨어 체인, 응답 직렬화를 차례로 만듭니다. Hello World 서버에서 라우팅과 미들웨어를 합친 예제까지 빌드해 봅니다.
-
C++로 작은 DB 엔진 만들기: Pager·B-Tree 저장 엔진, SQL 파서, 실행기, WAL 트랜잭션
페이지 기반 Pager, B-Tree 인덱스, SQL 토크나이저/파서, 실행기, WAL 트랜잭션까지 간단한 DB 엔진의 핵심 구성 요소를 C++로 구현합니다. 풀 스캔 병목, 부분 커밋, WAL fsync 누락 같은 실전 문제 시나리오를 함께 다룹니다.
-
C++ CMake 링크 에러 LNK2019 | 원인과 해결
컴파일은 되는데 링크에서 undefined reference나 LNK2019가 날 때 에러 메시지를 읽는 법부터 원인별 해결까지 다룹니다. 정의 누락, target_link_libraries 누락, 라이브러리를 못 찾는 경우, C 함수 호출 시 extern "C", 링크 순서와 중복 정의를 다룹니다.
-
C++ Asio 데드락 디버깅 | 비동기 콜백 실전
Asio 서버가 가끔 멈출 때 흔한 원인인 핸들러 안에서 비동기 완료를 동기로 기다리는 패턴, 락을 쥔 채 블로킹하는 코드, 락 순서 불일치를 시퀀스 다이어그램으로 설명합니다. strand로 락을 줄이는 설계, std::scoped_lock, 멈춘 프로세스의 스레드 덤프로 원인을 좁히는 방법을 다룹니다.
-
C++ 앱의 DB 쿼리 최적화: 인덱스 선택, 실행 계획, 통계 기반 비용 모델
API 응답이 수 초씩 걸리거나 인덱스가 있는데도 풀 스캔이 나는 문제를 인덱스 설계와 실행 계획 분석으로 풉니다. 복합 인덱스 컬럼 순서, 커버링·부분 인덱스, PostgreSQL·SQLite 실행 계획 읽기, 통계 갱신과 N+1 쿼리 개선을 다룹니다.
-
C++ 채팅 서버 아키텍처: Acceptor-Worker 구조, 방 관리, 메시지 라우팅, 커넥션 풀
동시 접속 폭주, 메시지 전송 중 데이터 레이스, 느린 클라이언트 한 명이 전체를 늦추는 문제를 채팅 서버 설계로 풀어 봅니다. Acceptor-Worker 구조와 io_context 풀, RoomManager 기반 방 관리, 메시지 라우터, 연결 수 제한을 구현합니다.
-
C++로 REST API 서버 만들기: 라우터·미들웨어 체인·JWT 인증·요청 검증
Express.js처럼 쓰기 쉬운 REST API 서버를 C++로 만들면서 라우터, 로깅·CORS 미들웨어 체인, Request·Response 클래스, JWT 인증, 요청 검증과 에러 핸들러, Swagger 문서를 차례로 구현합니다. CORS preflight 실패와 토큰 만료 대처도 다룹니다.
-
C++ 게임 엔진 기초 | 렌더링·물리·입력·스크립팅 시스템 구현 [#50-3]
ECS 아키텍처를 기반으로 2D 게임 엔진의 렌더링·물리·입력·Lua 스크립팅 시스템을 구현합니다. 충돌 감지 누락, 물리 터널링, Lua 콜백 nil 에러 같은 실전 트러블슈팅과 Box2D 연동까지 다룹니다.
-
C++ 서버 배포: Docker 멀티스테이지, systemd, Kubernetes 무중단 배포, Prometheus 모니터링
C++ 서비스를 프로덕션에 배포하는 방법. Docker 멀티스테이지 빌드, systemd 서비스, Kubernetes Deployment·Ingress·readinessProbe, 롤링 업데이트, CI/CD, Prometheus·Grafana·spdlog, glibc·OOM·502 에러 대응을 다룹니다.
-
C++ 실시간 모니터링 대시보드: Grafana·Prometheus 통합
새벽에 API가 멈췄는데 로그로는 원인을 못 찾을 때를 가정해, C++ 서버에 Counter·Gauge·Histogram 레지스트리를 직접 만들어 /metrics로 노출하고 Prometheus·Grafana 패널과 알람 규칙을 붙입니다. 카디널리티 폭증과 버킷 설정 실수도 다룹니다.