TECH NOTES
기술노트
현장에서 검증된 개발 지식을 기록합니다.
7654321
Tools
coreutils 교체 검증하기 — uutils 전환 전에 돌려 볼 것들
GNU coreutils를 Rust 구현으로 바꿀 때 실제로 깨지는 지점을 정리한다. 출력 문자열 파싱, 로케일 의존, 플래그 차이, 종료 코드까지 스크립트를 안전하게 지키는 검증 절차를 다룬다.
Infra
eBPF 프로그램 성능 튜닝 — 맵 조회 비용을 줄이는 실전 기법
eBPF 프로그램이 CPU를 먹는 주된 원인은 맵 조회와 과도한 이벤트 발생이다. 맵 타입 선택, per-CPU 자료구조, 결과 메모이제이션, 샘플링, 링버퍼 사용까지 오버헤드를 줄이는 방법을 정리한다.
Backend
malloc 고르기 — glibc·jemalloc·tcmalloc·mimalloc, 무엇을 언제 쓰나
메모리 할당자를 바꾸는 것만으로 처리량과 RSS가 달라진다. glibc malloc·jemalloc·tcmalloc·mimalloc의 구조적 차이, 단편화와 반환 정책, 교체 방법과 측정법을 실무 기준으로 정리한다.
Infra
systemd 서비스 하드닝 — systemd-analyze security로 공격면 줄이기
systemd-analyze security로 노출 점수 9.6을 받고 시작한 하드닝. 컨테이너 없이 유닛 파일 몇 줄로 파일시스템·권한·시스템콜을 잠가 공격면을 줄이는 법.
Infra
NUMA와 hugepages — 메모리 지역성 튜닝의 기본
멀티소켓 서버의 NUMA 원격 접근과 hugepages의 TLB 최적화, THP의 지연 스파이크 함정까지. 언제 손대고 언제 두어야 하는지 실전 기준으로 설명합니다.
Infra
journald — systemd의 구조화 로깅 제대로 쓰기
journald가 로그를 구조화 필드로 저장하는 원리와, journalctl 필터 실전, 재부팅 시 로그가 날아가는 휘발성 함정과 영구 저장 설정까지 정리했습니다.
Infra
TCP 혼잡 제어 — CUBIC vs BBR, 무엇이 다른가
손실 기반 CUBIC과 대역폭·지연을 재는 BBR의 차이, 그리고 sysctl 한 줄로 바꾸는 법. 언제 어떤 혼잡 제어를 써야 처리량이 오르는지 실전 관점으로 설명합니다.