Abseil Code Review — Google production-grade C++ 라이브러리 분석
Google이 만든 Abseil C++ 라이브러리를 code review의 시선으로 읽는다. std를 보완하는 industrial-grade 도구의 설계 의도와 사용 패턴을 13 Parts 68편으로 살펴본다.
53개의 포스트 · 1/3 페이지
Google이 만든 Abseil C++ 라이브러리를 code review의 시선으로 읽는다. std를 보완하는 industrial-grade 도구의 설계 의도와 사용 패턴을 13 Parts 68편으로 살펴본다.
Meta(Facebook)가 production에서 검증한 Folly C++ 라이브러리를 code review의 시선으로 읽는다. performance-first 철학과 fbcode 환경의 산물을 14 Parts 63편으로 살펴본다.
Modern CMake의 고급 도구 모음 — 자주 안 보이지만 실무에서 결정적인 기능들.
타겟 중심 접근법, 피해야 할 안티패턴, 대규모 프로젝트 구성 전략.
install 명령으로 빌드 결과물 배포, CPack으로 플랫폼별 패키지 생성.
CMake 테스트 프레임워크 CTest와 Google Test, Catch2 연동 방법.
외부 라이브러리 탐색, FetchContent, 그리고 의존성 관리.
사용자 설정 가능한 빌드 옵션과 CMake 캐시 시스템.
Modern CMake의 핵심: 타겟 중심 접근법과 라이브러리 생성.
CMake 스크립트의 기본 문법: 변수, 리스트, 조건문, 반복문, 함수.
왜 메타 빌드 시스템이 필요한가, CMake가 그 자리에서 무엇을 하는가, 그리고 5줄 짜리 첫 프로젝트.
RTOS C API를 C++ 객체로 감싸는 패턴을 정리합니다. RAII MutexGuard와 ScopedIRQDisable, std::thread/std::mutex의 한계와 직접 xTaskCreate가 결정성을 갖는 이유, ETL로 STL을 대체하는 법, C++20 coroutine을 RTOS 위에 얹는 방식까지 다룹니다.
범용 HAL 구조 — 벤더 종속성 격리, 다중 보드/MCU 지원, 시리즈 마무리.
UART, SPI, I2C — peripheral을 type-safe class로. Blocking, interrupt, DMA 패턴.
GPIO pin = type — 컴파일 타임에 핀 설정 검증, runtime 비용 0.
MMIO를 type-safe하게 — volatile, bit field, register wrapper class.
임베디드의 DI 패턴 — Construct-On-First-Use, static dependency injection, service locator.
constexpr state machine — 컴파일 타임에 전이 검증, runtime 코드 0.
타입 안전한 상태 머신 — enum + switch부터 std::variant, etl::fsm까지.
enum class + bit operators — type-safe 비트 플래그. 의도하지 않은 변환 차단.
SPSC queue, MPMC stack, ring buffer — lock-free 자료구조 구현 패턴.
Atomic, CAS, memory order — mutex 없이 동시성. 임베디드의 ISR-safe 패턴.
Embedded Template Library — heap 없는 STL 대체, fsm, message router 포함.
객체가 자기 next pointer 보유 — 동적 할당 없는 linked list와 tree.