블로그
-
ROS2 시뮬레이션 환경 혼자 구축하기 | Docker + Gazebo 설정
실물 로봇 없이 ROS2와 Gazebo 시뮬레이션 환경을 Docker로 혼자 구축하는 방법을 정리합니다. Linux/Mac/Windows(WSL2)별 GUI 포워딩 설정, docker-compose 구성, 자주 겪는 X11/그래픽 문제 해결까지 다룹니다.
-
팀 빌드 환경 표준화 | 누구나 한 번에 빌드되는 환경을 유지하는 방법
복잡한 빌드 환경에서 "내 컴퓨터에선 되는데" 문제를 없애고, 새 팀원도 한 번의 명령으로 빌드할 수 있는 환경을 유지하는 방법을 정리합니다. devcontainer, CI-로컬 환경 일치, 환경 드리프트 방지 전략을 다룹니다.
-
윈도우 개발자를 위한 우분투 데스크톱 적응 가이드 | 복붙·단축키·터미널 습관 전환
윈도우에서 우분투 데스크톱으로 옮긴 개발자가 헷갈리는 두 개의 클립보드와 터미널의 Ctrl+C 동작, Super 키 기반 창 관리, .exe 대신 apt·snap으로 설치하는 방식, 한/영 전환 설정을 왜 그렇게 동작하는지와 함께 설명합니다.
-
VS Code 단축키 실전 활용: 멀티커서·심볼 탐색·정규식 치환·리팩토링
Ctrl+D·Alt+클릭 멀티커서, Ctrl+P 빠른 열기, F12·Ctrl+T 심볼 탐색, F2 이름 변경, 정규식 치환 같은 VS Code 단축키가 마우스보다 빠른 이유를 설명하고, Windows와 Mac의 키 차이와 단축키가 오히려 손해인 경우도 짚습니다.
-
WebRTC 레퍼런스 — PeerConnection·ICE·STUN·TURN·시그널링·SFU
W3C WebRTC API, SDP·ICE, STUN·Coturn, WebSocket 시그널링, Perfect Negotiation, Simulcast·SVC, 혼잡 제어·FEC, SFU(mediasoup·Janus·Jitsi) 운영까지 실무 기준으로 정리한 참조 문서입니다.
-
C++ 스레드 풀 직접 구현하기: 작업 큐, packaged_task로 결과 받기, 종료 시 데드락
조건 변수로 작업을 기다리는 워커 루프와 작업 큐로 C++ 스레드 풀을 직접 만들고, packaged_task와 future로 결과와 예외를 돌려받게 확장합니다. 병렬 계산·파일 처리·웹 크롤러 예제와 종료 시 데드락, 적절한 스레드 수 정하기도 다룹니다.
-
CSS 선택자: 속성 선택자, 가상 클래스, :has()까지
속성 선택자의 ^= $= *= 차이와 i 플래그, :focus-visible·:nth-child(An+B of S)·:has() 같은 가상 클래스, 특이도 계산과 :is/:where의 차이까지 예제로 짚어 봅니다.
-
Linux 시스템 콜 — 커널 경계, 동작 원리, 분류, strace·ltrace, errno, vDSO, seccomp
Linux 시스템 콜 — 사용자·커널 모드, syscall 번호·소프트웨어 인터럽트, glibc 래퍼, 아키텍처별 차이, strace·ltrace, errno, 성능·vDSO, seccomp, 실습 C, 디버깅. 리눅스 시스템 프로그래밍·SRE·백엔드 엔지니어용 개념·실무를 한글로 정리한 튜토리얼입니다.
-
Linux 시리즈 #09 — Namespace·cgroups: 컨테이너 격리와 리소스 제한의 커널 기반
unshare·clone·setns로 PID·네트워크·마운트 namespace를 직접 만들어 보고, cgroup v2의 cpu.max·memory.max·pids.max로 자원 한도를 거는 방법, systemd slice와 Docker가 같은 커널 기능을 어떻게 쓰는지 예제로 연결합니다.
-
CMAF(Common Media Application Format) 레퍼런스 — ISO 23000-19·fMP4·HLS+DASH·저지연
CMAF가 ISO BMFF 기반 fMP4 세그먼트 하나로 HLS와 DASH를 동시에 서빙하는 구조를 트랙·헤더·프래그먼트 단위로 설명하고, LL-HLS·LL-DASH 저지연 구성, FFmpeg·Shaka Packager 패키징, CDN 캐싱과 프래그먼트 크기 튜닝을 다룹니다.