블로그
-
C++ 이름 맹글링: _Z 심볼 읽기, nm·c++filt로 디맹글링, extern C 링크 에러
C++ 컴파일러가 오버로딩과 네임스페이스를 구분하려고 함수 이름을 _Z로 시작하는 심볼로 바꾸는 방식, nm과 c++filt로 심볼을 확인하고 디맹글링하는 방법, extern "C"로 C와 연결할 때 생기는 링크 에러 해결법을 설명합니다.
-
C++ 바이너리 직렬화: 엔디안·구조체 패딩 문제와 버전 관리·체크섬
게임 세이브 파일이 다른 PC에서 깨지는 원인을 엔디안과 구조체 패딩으로 추적하고, string·vector 같은 동적 데이터를 길이와 함께 안전하게 저장하는 방법을 보여줍니다. 포맷 버전 관리, 체크섬, 원자적 쓰기와 백업 같은 운영 패턴도 다룹니다.
-
C++ 소켓 프로그래밍: TCP/UDP 구현, SO_REUSEADDR 같은 소켓 옵션, select·poll·epoll 비교
TCP 서버와 클라이언트를 에러 처리와 EINTR 재시도까지 포함해 구현하고, SO_REUSEADDR·SO_KEEPALIVE·TCP_NODELAY를 언제 켜는지 설명합니다. 논블로킹 소켓과 select·poll 멀티플렉싱, EADDRINUSE·ECONNRESET·EPIPE 같은 에러 대처도 다룹니다.
-
npm install -g 권한 오류 EACCES: permission denied 해결 (우분투·맥, sudo 없이)
npm install -g가 EACCES: permission denied, mkdir /usr/local/lib/node_modules로 실패하는 이유와, sudo 대신 nvm 또는 npm prefix 변경으로 해결하는 방법, root 소유가 된 ~/.npm 캐시 복구, npx 활용, 윈도우 EPERM까지 다룹니다.
-
우분투 apt Could not get lock /var/lib/dpkg/lock-frontend 해결: unattended-upgr 대기와 dpkg was interrupted 복구
우분투 22.04·24.04에서 apt의 Could not get lock, Unable to acquire the dpkg frontend lock 오류 원인과 잠금 프로세스 확인, 자동 업데이트 대기·중지, dpkg was interrupted 복구 순서를 다룹니다.
-
우분투 24.04 고정 IP 설정: netplan(서버)과 nmcli·설정 앱(데스크톱), 적용 안 될 때 해결
우분투 24.04에서 고정 IP를 설정하는 방법을 서버(netplan + networkd)와 데스크톱(NetworkManager)으로 나눠 설명합니다. gateway4 경고, 권한 경고, cloud-init 덮어쓰기, netplan try 롤백, DNS 확인까지 다룹니다.
-
우분투 24.04 ROS 2 Jazzy 설치: apt 저장소 등록부터 talker/listener 테스트, rosdep·colcon, 자주 나는 오류
우분투 24.04에 ROS 2 Jazzy를 apt로 설치합니다. 로케일, universe, ros2-apt-source 등록, desktop·ros-base 선택, setup.bash, rosdep·colcon 순서와 NO_PUBKEY·패키지 없음·노드 미검색 오류 해결법을 다룹니다.
-
C++ Segmentation fault 원인 5가지와 디버깅 방법 | GDB로 추적하기
C++ Segmentation fault의 대표 원인인 널 포인터 역참조, 해제 후 사용, 스택 오버플로, 배열 범위 초과, 잘못된 캐스팅을 코드로 재현하고, core dump를 활성화해 GDB·LLDB로 충돌 위치를 추적하는 방법을 설명합니다.
-
GStreamer 실전 가이드 | 파이프라인·C/Python·gst-launch로 멀티미디어 다루기
GStreamer 1.x로 재생·인코딩·스트리밍 파이프라인을 구성하는 방법을 정리합니다. Element·Pad·Caps 개념, gst-launch-1.0, C API, Python gi 예제, Bus 메시지·GST_DEBUG까지.
-
Linux 디스크 full vs inode full 해결 순서 | 용량·아이노드 트러블슈팅
“No space left on device”가 떴을 때 df -h와 df -i로 블록 부족과 inode 고갈을 먼저 구분하고, 큰 디렉터리·작은 파일이 몰린 경로·Docker 잔여물·삭제됐지만 열려 있는 파일(lsof +L1)을 차례로 찾아 정리하는 순서를 다룹니다.