블로그
-
C++ remove·remove_if가 원소를 지우지 않는 이유: erase-remove와 C++20 erase_if
std::remove와 remove_if가 실제로 요소를 지우지 않고 뒤로 밀어 내기만 하는 이유를 설명하고, erase-remove 관용구, 정렬 후 unique로 중복 제거하는 방법, C++20 std::erase·erase_if로 간결하게 쓰는 법을 다룹니다.
-
우분투 MySQL 설치 후 root 접속 안 됨: ERROR 1045 Access denied와 auth_socket, 원격 접속 설정
우분투 22.04/24.04에 apt로 MySQL 8.0을 설치한 직후 mysql -u root -p가 ERROR 1045로 막히는 이유(auth_socket), mysql_secure_installation 무한 반복 오류, 앱 전용 계정 생성, 원격 접속과 ERROR 2002 해결을 설명합니다.
-
C++와 Rust: 두 언어의 상호 운용성과 Memory Safety 논쟁의 실체
레거시 C++ 코드를 유지하면서 새 기능을 Rust로 쓰려면 C ABI를 경계로 삼아야 합니다. extern "C"와 #[no_mangle]로 양방향 호출하기, 구조체 레이아웃 맞추기, bindgen과 cxx 크레이트, FFI 경계의 소유권 꼬임과 panic 전파 문제를 다룹니다.
-
자율주행 로봇 개발 독학 로드맵 | 하드웨어 없이 시작하는 현실적인 순서
실물 로봇 없이 자율주행 로봇 개발을 독학하는 순서를 단계별로 제시합니다. Linux 기초와 ROS2 노드·토픽에서 시작해 시뮬레이터 선택, SLAM·Nav2 실습, 포트폴리오 프로젝트, 저가 실물 플랫폼 검증까지 이어집니다.
-
Core Dump로 크래시 원인 찾기: 생성 설정, GDB 분석, 프로덕션 수집 자동화
Core Dump 생성 설정과 GDB 분석, Segmentation Fault 디버깅을 정리합니다. Ubuntu apport·systemd-coredump가 코어를 가져가는 위치, Docker·Kubernetes에서 core_pattern이 호스트 전역인 문제, debuginfod와 분리 심볼, 코어에 남는 비밀 정보까지 프로덕션 기준으로 다룹니다.
-
메모리 누수 찾기: 프로파일러 선택과 재현 시나리오 | Valgrind·ASan·Heaptrack
메모리가 계속 늘어나는 서비스에서 C++는 ASan·LSan, Valgrind, Heaptrack, Python은 tracemalloc과 memory_profiler, Node.js는 힙 스냅샷으로 누수를 찾는 방법을 보여줍니다. 재현 시나리오를 문서화하는 법과 누수와 단편화의 구분도 다룹니다.
-
Docker 멀티스테이지 빌드: 레이어 캐시 순서, BuildKit 캐시 마운트, distroless로 이미지 줄이기
빌드 스테이지와 런타임 스테이지를 나눠 Node.js·Go·Rust·Python 이미지를 가볍게 만드는 Dockerfile 작성법을 예제로 보여 줍니다. 레이어 캐시 순서, BuildKit 캐시 마운트, distroless와 Alpine 선택, COPY --from 실패와 런타임 의존성 누락 같은 문제도 다룹니다.
-
바이브 코딩을 제대로 쓰는 법: Cursor·Copilot·Claude의 컨텍스트 수집과 검증 습관
Cursor·Copilot·Claude 같은 AI 코딩 도구가 LSP와 FIM 완성 모델, 컨텍스트 수집 파이프라인으로 어떻게 제안을 만드는지 살펴보고, 그 구조를 알면 프롬프트와 결과 검증 습관을 어떻게 바꿔야 하는지 설명합니다.
-
C++ std::variant vs union: 타입 안전성과 비용 비교
C++ union이 활성 멤버를 추적하지 않아 생기는 문제와 std::variant가 이를 해결하는 방식을 비교하고, std::visit와 overloaded 패턴으로 타입별 처리를 작성하는 방법, JSON 값·AST 노드·에러 처리 예제를 다룹니다.
-
C++ fill·generate·iota로 범위 채우기: 테스트 데이터 생성 예제
std::fill과 fill_n으로 범위를 같은 값으로 채우고, generate에 람다나 함수 객체를 넘겨 난수·ID·구조체 데이터를 만들며, iota로 연속 값을 생성하는 방법을 테스트 데이터 생성기 예제와 함께 설명합니다.