블로그
GPU·LLM·MLOps·쿠버네티스, 그리고 마음가짐에 관한 글 · 3704 편
#2026-03 762#culture 283#deep-dive 275#kubernetes 262#career 233#ai 223#llm 217#devops 198#2026-04 158#security 149#observability 118#database 113#communication 108#history 107#architecture 101#productivity 98#performance 93#linux 90#networking 89#finance 87#economy 84#mindset 80#psychology 79#ai-papers 78#food 78#it 78#travel 78#japanese 76#deep-learning 75#english 74#gpu 74#ai-agent 69#business-travel 69#postgresql 67#cs-fundamentals 63#rag 63#systems 63#python 56#learning 54#self-improvement 53
AI 스토리지와 KV 캐시 오프로드: 가중치 로딩 경로부터 LMCache 실측까지 ♪ 들을 수 있어요
대형 모델 서빙에서 콜드 스타트를 결정하는 가중치 로딩 경로와, GPU 메모리에 다 들어가지 않는 KV 캐시를 CPU 메모리와 디스크로 내리는 방법을 정리합니다. 필자가 잰 LMCache 실측(TTFT 576ms 에서 48.6ms)과 그 한계를 그대로 밝힙니다.
2026-10-07 · 35 분 읽기 #AI스토리지#모델로딩#KV캐시#LMCache#vLLMRDMA와 NCCL로 읽는 GPU 네트워크: InfiniBand, RoCE, 쿠버네티스 배치 ♪ 들을 수 있어요
GPU 서버 안팎의 통신 계층과 대역폭 차이를 정리하고, InfiniBand 와 RoCE v2 의 차이, GPUDirect RDMA, NCCL 의 동작과 측정법, 흔한 장애를 설명합니다. 마지막으로 쿠버네티스에서 RDMA 를 쓰는 구성 요소를 정리하고 추론에서 RDMA 가 필요한 지점을 6편과 연결합니다.
2026-10-07 · 41 분 읽기 #RDMA#InfiniBand#RoCE#NCCL#GPUDirectLLM 추론의 기본과 vLLM 내부: KV 캐시, PagedAttention, 스케줄러
decode 가 메모리 대역폭 한계인 이유를 산술 강도로 설명하고, KV 캐시 크기 식과 vLLM v0.30.0 의 블록 관리, 접두사 캐시, 스케줄러, 선점, 운영 파라미터를 소스와 문서로 확인해 정리합니다. 8GB급 노트북 GPU 에서 잰 실측과 그 한계도 있는 그대로 적습니다.
2026-10-07 · 29 분 읽기 #LLM 추론#vLLM#KV 캐시#PagedAttention#스케줄링GPU Operator 스택 해부와 트러블슈팅
GPU Operator 의 구성요소와 파드가 GPU 를 받기까지의 경로를 해부하고, 같은 Insufficient nvidia.com/gpu 문장 뒤에 숨은 원인을 가르는 진단 순서와 용량 계획의 관점을 정리합니다. 소비자용 GPU 를 쓰는 필자의 실험 환경에서 겪은 containerd 드롭인 병합 사고를 근거로 쓰되, 데이터센터 GPU 와 대규모 프로덕션 경험이 아니라는 한계를 밝힙니다.
2026-10-07 · 20 분 읽기 #GPU Operator#Kubernetes#디바이스 플러그인#containerd#CDI팔란티어 온톨로지 — 데이터 위에 "행동" 을 얹은 운영 계층을 공식 문서로 읽는다 ♪ 들을 수 있어요
팔란티어가 말하는 온톨로지는 철학 용어가 아니라 제품의 한 층이다. 객체·속성·링크(의미)와 액션·함수(운동)라는 여섯 조각, 데이터셋이 객체가 되는 경로, 사용자 편집이 원본과 충돌할 때의 규칙, 규모 상한과 OSv1 폐기 일정, 그리고 LLM 이 그 위에서 어떻게 도구를 쓰는지를 팔란티어 공식 문서의 문장으로만 정리한다.
2026-09-11 · 15 분 읽기 #palantir#ontology#foundry#aip#data-platformAI 에이전트 하네스 해부 — 규칙이 스스로 지켜지게 만든 35개 파일
모델은 똑같은데 어떤 저장소에서는 사고가 반복되고 어떤 저장소에서는 나지 않는다. 그 차이가 하네스다. 3주 동안 AI 와 함께 1,491개 커밋을 쌓은 저장소의 하네스를 파일 단위로 뜯어 본다: 규칙 한 곳, 경로 규칙 6개, 스킬 5개, 훅 2개, 서브에이전트 3개, 그리고 그 장치들이 스스로를 시험하는 34개의 시험.
2026-09-11 · 22 분 읽기 #ai#agent#harness#claude-code#ci-cd클라우드의 bastion 이란 무엇이고, AWS 에서는 어떻게 쓰는 것이 좋은가 — ProxyJump 실측, SSM Session Manager, EC2 Instance Connect Endpoint
bastion 은 사설망으로 들어가는 문을 하나로 줄인 호스트다. 홈랩에서 OpenSSH ProxyJump 로 점프 호스트를 거쳐 보며 대상 서버가 무엇을 보는지 실측하고, AWS 가 bastion 대신 권하는 SSM Session Manager 와 EC2 Instance Connect Endpoint 를 문서 근거로 견준다.
2026-09-10 · 13 분 읽기 #aws#bastion#ssh#ssm#securityDocker Hub 앞에 프록시 캐시를 두는 세 가지 방법 — registry:2, Nexus, ECR pull-through cache
Docker Hub 의 한도 헤더를 직접 읽고, registry:2 를 pull-through 캐시로 세워 같은 이미지를 세 번 당겨 본 뒤, Nexus 의 프록시·그룹 저장소와 ECR pull-through cache 가 각각 어디에 맞는지 문서와 실측으로 정리한다.
2026-09-10 · 12 분 읽기 #docker#registry#nexus#ecr#devopsCloudNativePG 딥다이브 — PostgreSQL 을 쿠버네티스 안에서 누가 돌보는가
StatefulSet 을 쓰지 않는 이유, 파드의 PID 1 이 postgres 가 아닌 이유, 세 개의 서비스가 하는 일, 베이스 백업과 WAL 이 합쳐져야 복구가 되는 이유. 운영 클러스터의 실제 설정값으로 CNPG 의 기능과 역할을 뜯어 본다.
2026-09-10 · 13 분 읽기 #kubernetes#postgresql#cloudnativepg#backup#operator운영 이미지를 Trivy 로 검사했더니 — 768건 중 실제로 손댈 것은 세 패키지와 Dockerfile 한 줄이었다
로그인 라이브러리의 서명 검증 우회(CVE-2026-27962)부터 다이제스트로 고정된 베이스 이미지가 OS 보안 수정을 영원히 못 받던 일까지. 검사 도구가 자기 자신을 세는 함정, 비밀 탐지의 오탐, 판올림이 무해하다는 것을 대조 실험으로 증명한 기록.
2026-09-10 · 10 분 읽기 #security#cve#trivy#docker#pythonMP3 를 VBR 로 구우면 대본 클릭이 어긋난다 — CBR 과 VBR 의 차이를 실측으로
팟캐스트 대본을 누르면 엉뚱한 자리로 가던 문제의 원인은 오디오 파일 형식이었다. VBR 의 Xing TOC 가 왜 최대 0.9초를 어긋나게 하는지, CBR 이 왜 0.04초 안에 들어오는지, 회차 96편을 재서 확인한 기록.
2026-09-10 · 10 분 읽기 #audio#mp3#ffmpeg#web#debugging추론 모델은 어떻게 만드는가 — CoT에서 GRPO까지, 논문 열두 편으로 따라가는 계보 ♪ 들을 수 있어요
o1, R1, QwQ 는 새로운 구조가 아닙니다. 채점 가능한 목표를 향해 긴 출력을 최적화한 결과입니다. Chain-of-Thought(2022)에서 STaR, PRM, DeepSeek-R1 의 GRPO, s1 의 budget forcing 까지 논문 열두 편으로 계보를 따라가고, 마지막에는 24GB 그래픽카드 한 장으로 어디까지 재현할 수 있는지 메모리를 항목별로 계산합니다.
2026-09-06 · 16 분 읽기 #ai#llm#reasoning#reinforcement-learning#grpo홈랩 쿠버네티스 3노드에서 7노드로 — 컨트롤 플레인 확장, etcd 쿼럼, 그리고 "조인만 하면 HA"라는 착각
워커 2대와 컨트롤 플레인 2대를 추가해 홈랩을 7노드로 확장했습니다. kubeadm의 certificate-key가 왜 2시간짜리인지, etcd 멤버 3개가 실제로 어떻게 등록되는지를 실측으로 기록했습니다. 그리고 가장 중요한 발견 — etcd 쿼럼을 갖췄다고 HA가 되는 게 아니었습니다. 엔드포인트가 물리 IP에 고정된 클러스터에서 첫 노드가 죽으면 무슨 일이 벌어지는지, 인증서 재발급
2026-08-28 · 15 분 읽기 #kubernetes#kubeadm#etcd#high-availability#homelabGPU Operator 설치 중 만난 "no runtime for nvidia is configured" — 컨테이너 런타임과 Helm 업그레이드가 실제로 하는 일 ♪ 들을 수 있어요
5노드 홈랩에 NVIDIA GPU Operator를 올리다 파드가 전부 Init에서 멈췄습니다. 원인은 컨테이너 런타임에 nvidia 핸들러가 없다는 것이었고, 호스트에 nvidia-ctk 바이너리가 있다고 방심한 제 판단 착오였습니다. 왜 쿠버네티스에서 container toolkit이 필수인지, Helm upgrade가 내부적으로 무엇을 바꾸는지, 그리고 Operator가 containe
2026-08-27 · 20 분 읽기 #kubernetes#gpu#nvidia#containerd#helmSynology NAS를 쿠버네티스 동적 PVC 백엔드로 — csi-driver-nfs로 5노드 홈랩에 RWX 스토리지 붙이기 ♪ 들을 수 있어요
홈랩 쿠버네티스에 Synology NAS를 붙여 PVC를 자동 생성되게 만들었습니다. 포트 스캔으로 NAS 정체를 알아내는 것부터, 첫 마운트 시도가 실패한 진짜 이유, csi-driver-nfs 설치와 StorageClass 두 벌 구성, 그리고 서로 다른 물리 노드가 같은 볼륨에 동시에 읽고 쓰는 RWX 검증까지 실제 출력으로 기록했습니다.
2026-08-26 · 18 분 읽기 #kubernetes#storage#nfs#csi#synology세 줄짜리 설정 파일이 GPU 4장을 일주일 동안 죽였다 — containerd 드롭인 병합의 진실 ♪ 들을 수 있어요
노드가 GPU를 광고하지 않았습니다. 설정 파일에는 nvidia 런타임이 멀쩡히 적혀 있는데 containerd config dump에는 없었습니다. 범인은 일주일 전에 넣은 세 줄짜리 레지스트리 설정이었고, 이유는 containerd의 imports 병합이 필드 단위가 아니라 플러그인 단위 통째 교체이기 때문이었습니다. 두 번 잘못 진단한 과정과, 결국 답을 준 실험을 그대로 옮깁니다.
2026-08-26 · 20 분 읽기 #kubernetes#containerd#gpu#nvidia#troubleshootingkube-proxy 없는 쿠버네티스 — 3노드 홈랩을 kubeadm 1.34 + Cilium eBPF로 재구축하고 실측으로 증명하기 ♪ 들을 수 있어요
DHCP가 IP를 바꾸는 바람에 죽어버린 홈랩 클러스터를 kubeadm 1.34와 Cilium 1.20으로 처음부터 다시 세웠습니다. kube-proxy를 아예 설치하지 않고 eBPF로 대체했고, 그것이 실제로 동작한다는 것을 iptables 체인 개수와 eBPF 맵 덤프로 확인했습니다. HTTP 메서드 단위 L7 정책, 사이드카 없는 Hubble 관측, WireGuard 투명 암호화까지 실
2026-08-25 · 15 분 읽기 #kubernetes#cilium#ebpf#kubeadm#networking모두를 위한 AI 6편 — 111만 파라미터 디퓨전으로 단어에서 숫자 그리기
"zero"라고 쓰면 0을 그리는 조건부 디퓨전 모델을 111만 파라미터로 만들었습니다. 노이즈를 섞는 forward는 공식 한 줄이고, 복원하는 reverse는 그 한 줄을 400번 거꾸로 밟는 것뿐입니다. 5편에서 L1 손실이 색을 바래게 만든 문제를 디퓨전이 어떻게 피해 가는지, 그리고 왜 모델이 노이즈를 예측하도록 학습되는지를 실제 생성 결과로 확인합니다.
2026-08-24 · 15 분 읽기 #ai#diffusion#ddpm#generative#pytorch모두를 위한 AI 5편 — 47만 파라미터 U-Net으로 흑백 사진에 색 입히기, 그리고 왜 색이 바랬는가
시리즈에서 가장 작은 모델인 47만 파라미터 U-Net으로 CIFAR-10 흑백 이미지를 컬러로 복원했습니다. 형태는 정확히 살렸지만 색이 눈에 띄게 바랬는데, 이건 모델 용량 문제가 아니라 L1 손실을 고른 결과입니다. skip connection이 무엇을 나르는지, 그리고 회귀 손실이 왜 채도를 죽이는지를 실제 결과 이미지로 확인합니다.
2026-08-23 · 14 분 읽기 #ai#computer-vision#unet#colorization#pytorch모두를 위한 AI 4편 — 137만 파라미터로 이미지에 문장 붙이기, 그리고 3편의 버그가 여기엔 없던 이유
CNN 인코더와 트랜스포머 디코더를 이어 붙여 Fashion-MNIST 이미지에 캡션을 다는 모델을 만들었습니다. 137만 파라미터, 10분 학습으로 라벨 적중률 91%가 나왔습니다. 인코더-디코더 구조에서 cross-attention이 무엇을 하는지, 그리고 3편에서 정확도를 7.5%로 떨어뜨렸던 EOS 버그가 왜 이 코드에는 없었는지를 두 함수를 나란히 놓고 확인합니다.
2026-08-22 · 12 분 읽기 #ai#captioning#multimodal#transformer#pytorch