블로그
-
임베디드 C++ 최적화: 플래시 크기, RAM 정적 할당, 전력 소모, 실시간성(WCET)
64KB 플래시에 펌웨어가 안 들어가고, 스택이 넘치고, 배터리가 하루를 못 가는 상황을 다룹니다. LTO와 printf 제거로 플래시 줄이기, 정적 할당과 풀 allocator, 슬립 모드와 DMA, ISR 최소화와 WCET 예측을 C++ 관점에서 설명합니다.
-
C++ 테스트 전략 세우기: 테스트 피라미드, GTest 단위·통합·E2E, GMock 모킹
리팩터링이 두려운 C++ 코드베이스에 테스트 피라미드를 세우는 방법입니다. GTest 파라미터화 테스트와 픽스처, 플러그인 로드 통합 테스트, E2E 테스트, GMock으로 DB 의존성 격리, CI에서만 실패하는 테스트 대응을 다룹니다.
-
C++ 크로스 플랫폼 테스트: Win/Linux/macOS CI 매트릭스, Docker 환경, 엔디안 검증
Windows에서는 되는데 Linux CI에서만 실패하는 C++ 테스트를 잡는 방법입니다. GitHub Actions·GitLab CI 매트릭스, Docker와 ARM64 에뮬레이션 테스트, 경로 구분자·정수 크기·엔디안 차이 검증, dyld 라이브러리 로드 에러를 다룹니다.
-
C++ 디버깅 실전: GDB·LLDB watchpoint와 코어 덤프, ASan·TSan·UBSan, 메모리 누수·데드락, 프로덕션 크래시 추적
C++ 버그를 재현하고 좁혀 가는 방법. GDB/LLDB 고급 기법(watchpoint, 조건부 브레이크포인트, 코어 덤프, 멀티스레드), ASan·TSan·UBSan·MSan과 Valgrind, 메모리 누수·데드락·반복자 무효화 추적, 구조화 로깅과 크래시 리포터까지 실전 시나리오로 정리합니다.
-
C++ 보안 프로그래밍 | 메모리 안전·인젝션·하드닝
할당 크기 정수 오버플로우로 생기는 힙 손상, 스마트 포인터로도 막지 못하는 댕글링(string_view·span·반복자 무효화), SQL·명령어·포맷 스트링 인젝션, 민감 메모리 제로화, 표준 라이브러리 하드닝 모드와 컴파일러 보호 옵션, Sanitizer·퍼징까지 C++ 메모리 안전 중심으로 다룹니다.
-
AGV·AMR 플릿 게이트웨이 개발 가이드 - 이기종 로봇과 관제 시스템을 잇는 미들웨어 아키텍처
VDA5050을 쓰지 않는 로봇까지 섞인 AGV·AMR 플릿을 WMS/MES에 연결할 때, 어댑터형·브로커 중심·사이드카형 게이트웨이 중 무엇을 고르고 재연결·멱등성·페일세이프를 어떻게 설계할지 다룹니다.
-
바이브 코딩을 제대로 쓰는 법: Cursor·Copilot·Claude의 컨텍스트 수집과 검증 습관
Cursor·Copilot·Claude 같은 AI 코딩 도구가 LSP와 FIM 완성 모델, 컨텍스트 수집 파이프라인으로 어떻게 제안을 만드는지 살펴보고, 그 구조를 알면 프롬프트와 결과 검증 습관을 어떻게 바꿔야 하는지 설명합니다.
-
알고리즘 최적화 실전 사례 | 코딩테스트 시간 초과(TLE) 해결기
중복 제거, 구간 합, 최단 경로, 부분합, 문자열 매칭의 TLE 코드를 복잡도 관점에서 고친 사례와 Big-O·상각 분석, 공간-시간 트레이드오프, 캐시·분기 예측까지 정리합니다.
-
소프트웨어 엔지니어가 알아야 할 AMR 기초: AGV와의 차이, SLAM, 경로 계획, ROS2
AMR이 정해진 길을 따라가는 AGV와 어떻게 다른지, SLAM·센서 퓨전·파티클 필터·전역/지역 경로 계획이 어떻게 이어지는지, ROS2의 노드와 토픽 구조가 코드베이스를 읽는 데 왜 필요한지 소프트웨어 엔지니어 관점에서 설명합니다.
-
AMR 경로 계획에서 미션 실행까지: A*·DWA·Nav2와 VDA5050 오더의 물리 동작 검증
코스트맵 위에서 A*가 전역 경로를 찾고 DWA·TEB가 매 제어 주기마다 속도를 고르는 과정, Nav2가 이를 하나의 스택으로 묶는 방식, 그리고 VDA5050 오더가 리프트·컨베이어·그리퍼 동작으로 실행되고 검증되는 과정을 다룹니다.