기술 블로그
실무에서 직접 설계·운영한 백엔드 시스템과 의사결정 기록. Go·Java/Spring·PostgreSQL·Kubernetes 기반의 분산 시스템 패턴, 음성 AI 파이프라인(WebRTC·STT·LLM·TTS)의 latency·동시성 트레이드오프, OCR/문서 탐지 모델의 평가 지표(F1·Precision·Recall) 적용기 등을 다룹니다. 모든 글은 본인이 직접 운영하며 측정한 1차 데이터에서 출발합니다.
-
격리의 안쪽 — 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·맵·훅이라는 구조를 먼저 정리하고, 그 위에서 관측 자동계측과 네트워크 데이터패스가 각각 무엇을 얻고…
-
규모의 벽 — iptables에서 IPVS·eBPF로 (직접 IPVS 모드로 전환해 실측)
B1의 iptables 룰은 서비스마다 선형으로 쌓인다. 서비스가 수천 개면? kube-proxy를 실제로 IPVS 모드로 전환해 /proc/net/ip_vs를 떠서, 확률 트릭이 사라지고 rr 스케줄러로 균등 분배되며 ClusterIP가 kube-ipvs0에…
-
Service는 실체가 없다 — kube-proxy가 iptables로 트래픽을 꽂는 법
A4에서 ‘ClusterIP는 IP지만 :Port 고정이라 L4’라고 했다. 그 ‘왜’의 실체는 iptables다. 지금 이 클러스터의 kube-proxy에서 실제 룰을 그대로 떠서, ClusterIP가 어떤 프로세스도 아니라 KUBE-SERVICES▸KUBE-SVC(확률 분기)▸KUBE-SEP(DNAT)라는…
-
[관측 확장 #2] 접속자를 지도 위에 올리기 — 똑같이 생긴 “No data” 를 네 갈래로 가르는 법
접속자 IP 를 좌표로 바꿔 Grafana Geomap 에 올리는 일에서 어려운 쪽은 배선이 아니라 빈 패널의 원인을 가르는 일이었습니다. 라벨 폭발로 로그가 상류에서 버려지는 것,…
-
ConfigMap·Secret — 코드와 값을 떼어놓기 (그리고 cgroup으로 수미상관)
같은 이미지를 dev·prod에서 그대로 쓰되 바뀌는 값만 밖에서 주입한다 — 그 장치가 ConfigMap(설정)과 Secret(민감값)이다. 실제 kubectl 콘솔로 주입을 확인하고, ‘Secret은 암호화가 아니라 base64’라는 함정과, limits가…
-
[관측 확장 #1] 활동 모니터를 PostgreSQL 위에 다시 그리기 — 누적 카운터와 순간 표본은 다른 물건이다
진단 화면은 베낄 수 있지만 그 화면을 떠받치는 계측은 베낄 수 없습니다. SQL Server 의 활동 모니터를 PostgreSQL 대시보드로 옮기면서, 누적 카운터와 순간 표본의 차이…
-
[측정 보고서] 홈서버의 TCP 수신 윈도우·MSS·수신 처리량 — 값이 아니라 식을 남긴다
집 서버의 TCP 수신 창과 MSS를 재고, 그 값이 어떤 식에서 나오는지 커널 파라미터까지 거슬러 확인했습니다. 소켓에서 파일 버퍼로 읽는 속도는 858 MB/s, 실제 네트워크…
-
[게임] 몬스터 능력치는 코드가 아니라 데이터다 — Type Object 패턴과 포켓몬의 두 시트
몬스터 종류가 늘 때마다 클래스를 하나씩 만들면 어디서 무너질까. ‘종족은 무엇인가’와 ‘이 개체의 지금 상태’를 나누는 Type Object 패턴을, 포켓몬의 종족값 시트와 인카운터 테이블이라는 실제…