2026년 09월
-
프로세스와 스레드, 그리고 뮤텍스 — 리눅스에서 clone()과 futex로 직접 확인하기
프로세스는 격리되고 스레드는 공유한다는 설명은 어디에나 있지만, 리눅스 커널 입장에서 둘은 clone() 플래그 몇 개 차이일 뿐입니다. Debian 12 컨테이너에서 fork와 pthread_create가 실제로 부르는 시스템콜을…
-
[메일 인프라] Postfix·OpenSMTPD·Haraka·Mailu·Mailcow는 각각 무엇을 맡나 — 리눅스 프로세스 트리로 본 메일 서버 지형도
메일 서버를 직접 띄우려고 검색하면 Postfix·Haraka·OpenSMTPD·Mailu·Mailcow가 한 줄에 나열되지만, 이들은 경쟁 관계가 아니라 서로 다른 층에 있습니다. 세 MTA를 리눅스 컨테이너에서 실제로 띄워 프로세스 트리·스레드…
-
Docker vs Podman — 같은 컨테이너, 다른 철학 (daemonless·rootless·Pod)
Podman은 흔히 ‘Docker 대체재’로 소개되지만, 실은 컨테이너를 바라보는 철학 자체가 조금 다르다. Docker는 개발자 경험과 생태계를, Podman은 리눅스 표준·보안·쿠버네티스 친화성을 앞세운다. daemonless·rootless·Pod 세 축으로 둘의…
-
코드를 안 고치고 추적하는 법 — 관측과 보안 후킹의 공통 조상
서비스는 멀쩡히 도는데 로그를 남기려면 보통 모든 함수를 고쳐야 한다. 그런데 Tempo·Beyla는 코드 수정 없이 추적을 해냈다. 그 마법의 정체는 auto-instrumentation이고, 알고 보면 보안 업계가…
-
[프로젝트] Claude Code 자동화 플러그인 만들기 — 하나의 문서로 Slack·GitHub·Apidog/Postman/Swagger 연동과 Clean/Hexagonal·MVC·GitOps 자동화, 그리고 APM 로드맵
한 줄 요약: Claude Code 자동화 플러그인 AIDD.Architecture-Patterns 에 지금까지 구현한 것(Slack·GitHub·Apidog/Postman/Swagger 연동, Clean+Hexagonal·MVC, GitHub Actions·ArgoCD)과 앞으로 붙일 계획(봇·기획 연동·모니터링)을 한자리에 정리했습니다 — 연동도 아키텍처도…
-
관측 스택 한 줄 정의 — Prometheus·Loki·Tempo·Grafana, 그리고 Beyla·Linkerd
관측 프레임워크는 이름만 보면 다 비슷하다. ‘어떤 불편을 없애려고 만들어졌나’로 읽으면 갈린다. Prometheus는 측정항목, Loki는 로그, Tempo는 추적, Grafana는 시각화. 그리고 코드 무수정 관측의 다리인…
-
격리의 안쪽 — namespace와 cgroup으로 OS를 나누기 (QoS 등급까지 실측)
A1에서 ‘컨테이너=namespace(격리)+cgroup(제한)’이라고 했다. 이번엔 그 안쪽을 연다. QoS 3등급(Guaranteed/Burstable/BestEffort) Pod를 만들어 requests/limits가 실제 cpu.max·memory.max로 내려가는 걸 실측하고, namespace 6종 중 user는 기본적으로 호스트와 공유돼 ‘완전…
-
[UML] 클래스 다이어그램의 네 관계 — 화살표가 아니라 ‘수명’을 읽는 법
UML 클래스 다이어그램의 *–(합성)·o–(집합)·–>(연관)·..>(의존)을 화살표 모양이 아니라 객체의 ‘수명’으로 읽는다. 집합=탈착 가능, 합성=한 몸이라는 흔한 직관이 왜 반대인지 포켓몬 게임 코드로 구분하고, 여기에 일반화(상속, ◁────)와…
-
eBPF 정리 — 커널을 고치지 않고 커널을 바꾸는 법, 그리고 “어디까지 eBPF 인가”라는 질문
eBPF 는 커널을 재컴파일하거나 재부팅하지 않고 커널 안에서 내 코드를 돌리는 장치입니다. 검증기·JIT·맵·훅이라는 구조를 먼저 정리하고, 그 위에서 관측 자동계측과 네트워크 데이터패스가 각각 무엇을 얻고…