블로그
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
LLM 추론 VRAM 계산법 — 가중치보다 KV 캐시가 먼저 터집니다
"이 모델이 우리 GPU에 올라갑니까"라는 질문에 곱셈 몇 번으로 답하는 방법을 정리했습니다. 가중치 메모리는 파라미터 수 곱하기 바이트로 끝나지만, 실제로 배포를 막는 것은 시퀀스 길이와 배치에 비례해서 자라는 KV 캐시입니다. KV 캐시 공식과 GQA가 이를 몇 분의 일로 줄이는 원리, 프리필 활성화와 프레임워크 오버헤드의 크기, PagedAttention이 없앤 단편화 손실, 그리고 4
2026-07-26 · 21 분 읽기 #llm#inference#vram#kv-cache#quantization무서운 이야기는 왜 즐거운가 — 공포 장르의 심리학과 문법
사람들은 돈을 내고 무서워지러 갑니다. 이 역설을 설명하는 세 가지 설명 — 돌프 질만의 각성 전이, 안전한 환경에서의 위협 시뮬레이션, 그리고 유령의 집에서 심박수를 실제로 잰 연구 — 부터 시작해 공포의 세 층위, 히치콕이 정리한 서스펜스의 원리, 코스믹 호러와 포크 호러와 심리 호러의 차이, J-호러의 원한 논리, 좀비가 시대마다 갈아입은 불안까지 정리했습니다. 무서운 것이 즐겁지 않은
2026-07-26 · 23 분 읽기 #storytelling#horror#psychology#film#culture로드 애버리지가 CPU 사용률이 아닌 이유 — load average 24에 CPU는 30%일 때
uptime의 load average는 24를 넘겼는데 top의 CPU는 30%도 되지 않는 상황을 다룹니다. 리눅스의 로드 애버리지는 다른 유닉스와 달리 실행 대기(R) 태스크뿐 아니라 D 상태(uninterruptible sleep) 태스크까지 세기 때문에, 디스크나 NFS 대기만으로도 숫자가 치솟습니다. 세 숫자가 5초 샘플링과 지수이동평균으로 어떻게 만들어지는지, 코어 수로 나누는 관
2026-07-26 · 21 분 읽기 #linux#performance#load-average#psi#troubleshootingLLM 구조화된 출력 안정화 — 파싱 실패를 없애는 네 겹의 방어
JSON을 달라고 했는데 마크다운 펜스에 싸여 오거나, 뒤에 설명 문장이 붙거나, 토큰 상한에서 잘려 오는 문제를 계층별로 해결하는 방법을 정리했습니다. 실패 유형을 먼저 분류하고, 프롬프트 지시부터 함수 호출 스키마와 제약 디코딩까지 방어를 겹으로 쌓되, 제약 디코딩이 문법적 유효성만 보장하고 의미적 정확성은 보장하지 않는다는 구분을 분명히 합니다. 필드 이름과 순서가 정확도를 바꾸는 이유
2026-07-26 · 20 분 읽기 #llm#structured-output#json-schema#constrained-decoding#validationLLM API 비용 최적화 — 출력 토큰, 프롬프트 캐싱, 라우팅의 손익분기 계산
LLM API 청구서를 절반으로 줄이는 작업은 감이 아니라 산수입니다. 출력 토큰 단가가 입력의 몇 배라는 구조 때문에 가장 큰 레버는 거의 항상 출력 길이 통제이고, 그다음이 프롬프트 캐싱입니다. 캐싱이 접두사만 잡는다는 제약이 프롬프트 배치 순서를 어떻게 강제하는지, RAG와 전체 컨텍스트의 손익분기가 어디인지, 모델 라우팅의 절감률 공식과 그에 따르는 정확도 손실을 어떻게 같은 단위로
2026-07-26 · 20 분 읽기 #llm#cost-optimization#prompt-caching#rag#model-routing던닝-크루거 효과 — 그 유명한 그래프는 원 논문에 없습니다
인터넷에 떠도는 우매함의 봉우리 그래프는 던닝과 크루거의 1999년 논문에 존재하지 않습니다. 원 논문은 코넬 학부생에게 유머, 논리, 문법 과제를 시키고 성적 사분위별로 자기평가를 비교한 네 개의 연구였고, 실제 결과는 하위권의 과대평가만큼이나 상위권의 과소평가를 보여 줍니다. 더 아픈 지적은 따로 있습니다. 자기평가와 실제 성적이 아무 관계가 없는 난수만 넣어도 똑같은 모양의 그래프가 그
2026-07-26 · 17 분 읽기 #psychology#paper-review#metacognition#self-assessment#statistics분산 트레이싱이 실제로 답하는 질문 — 스팬, 샘플링, 그리고 어디서 시간이 갔는가
"느리다"는 신고는 들어오는데 열 개 서비스 중 어디가 범인인지 모를 때 필요한 것이 트레이싱입니다. 트레이스와 스팬, 컨텍스트 전파의 구조부터 시작해 로그와 메트릭으로는 원리적으로 답할 수 없는 질문이 무엇인지 정리합니다. 자동 계측이 커버하는 범위와 수동 스팬을 반드시 넣어야 하는 지점, 헤드 샘플링이 왜 필요한 트레이스를 우선적으로 버리는지, 테일 샘플링이 그것을 어떻게 풀고 대신 무엇
2026-07-26 · 25 분 읽기 #observability#distributed-tracing#opentelemetry#tail-sampling#performanceCore Web Vitals 실제로 고치기 — LCP, INP, CLS를 숫자로 내리는 순서
라이트하우스 98점을 받고도 Search Console이 계속 빨간불인 이유는 두 도구가 서로 다른 것을 재기 때문입니다. LCP와 INP, CLS가 각각 무엇을 측정하는지, 임계값이 왜 75백분위 기준인지부터 정리합니다. LCP를 TTFB와 리소스 발견 지연, 로드 시간, 렌더 지연 네 조각으로 쪼개 어디를 고칠지 정하는 방법, INP가 FID를 대체한 이유와 긴 태스크를 실제로 양보하는
2026-07-26 · 25 분 읽기 #performance#core-web-vitals#lcp#inp#clsdig는 되는데 애플리케이션은 실패한다 — DNS 해석 순서부터 확인하는 법
dig로는 정상적으로 답이 오는데 애플리케이션만 이름을 못 찾는 상황은 버그가 아니라 구조입니다. dig와 nslookup은 /etc/hosts와 nsswitch.conf를 아예 거치지 않고 리졸버에 직접 질의하기 때문입니다. 애플리케이션이 실제로 밟는 경로를 nsswitch.conf부터 systemd-resolved 스텁 리졸버까지 따라가고, getent와 resolvectl로 같은 경로를
2026-07-26 · 21 분 읽기 #network#dns#linux#kubernetes#troubleshooting1달러가 20달러를 이긴 실험 — 인지부조화 원문과 60년의 반론
지루한 과제를 시킨 뒤 거짓말을 부탁하고, 한쪽에는 1달러를, 다른 쪽에는 20달러를 줬습니다. 나중에 과제가 더 재미있었다고 답한 쪽은 적게 받은 사람들이었습니다. 페스팅거와 칼스미스의 1959년 논문은 조건당 20명, 마이너스 5에서 플러스 5까지의 척도 위에서 벌어진 작은 실험이지만 사회심리학의 방향을 바꿨습니다. 종말론 집단 잠입 기록의 방법론적 한계, 벰의 자기지각 이론이라는 경쟁
2026-07-26 · 23 분 읽기 #psychology#paper-review#social-psychology#decision-making#mindsetTLS 핸드셰이크와 인증서 오류 해독 — 브라우저는 되는데 curl은 실패하는 이유
브라우저에서는 자물쇠가 정상으로 뜨는데 curl과 서버 사이드 호출만 인증서 오류로 실패하는 상황은 서버 설정 문제입니다. 브라우저는 누락된 중간 인증서를 AIA 확장으로 직접 내려받지만 OpenSSL 계열 클라이언트는 그러지 않기 때문입니다. TLS 1.3 핸드셰이크를 메시지 순서로 읽는 법, SNI가 없을 때 벌어지는 일, 체인 검증이 끊기는 지점, 그리고 unable to get loc
2026-07-26 · 23 분 읽기 #network#tls#ssl#openssl#security시간 관리의 환상 — 도구를 바꿔도 삶이 그대로인 이유
할 일 관리 앱을 다섯 번 갈아탔는데도 하루가 그대로라면, 문제는 도구가 아니라 약속의 총량입니다. 카너먼과 트버스키가 이름 붙인 계획 오류, 외부 관점으로 일정을 교정하는 법, 파킨슨 법칙과 마감의 실제 효과, 올리버 버크먼의 4000주 논지, 인지 곡선에 맞춰 어려운 일을 배치하는 법, 캘린더가 할 일 목록을 이기는 이유, 회의 비용을 인원과 시간으로 계산해 보는 습관까지 정리했습니다.
2026-07-26 · 21 분 읽기 #mindset#productivity#time-management#focus#workToo many open files 완전 해결 — ulimit을 올려도 안 되는 이유
서버 로그에 accept4 failed (24: Too many open files)가 찍히고 ulimit -n을 올렸는데도 그대로입니다. 이 증상 뒤에는 서로 독립적인 세 가지 한계가 있습니다. 프로세스별 RLIMITNOFILE, 시스템 전역 fs.file-max, 그리고 systemd 서비스의 LimitNOFILE이 셸의 ulimit 설정을 완전히 무시한다는 사실입니다. /proc/PID
2026-07-26 · 22 분 읽기 #linux#systemd#file-descriptor#troubleshooting#containers외로움은 배고픔과 같습니다 — 결핍 신호를 읽는 법
외로움은 혼자 있는 상태가 아니라, 원하는 관계와 실제 관계 사이의 격차입니다. 존 카치오포는 이 감각을 배고픔이나 갈증과 같은 결핍 신호로 보았습니다. 아프도록 설계되었기 때문에 우리를 다시 사람 쪽으로 밀어내는 것이죠. 하버드 성인 발달 연구가 80년 넘게 추적해 발견한 것과 그 연구의 한계, 낯선 사람과의 짧은 대화가 기분을 올린다는 통근 열차 실험, 그리고 어른의 우정이 구조적으로 어
2026-07-26 · 23 분 읽기 #mindset#healing#loneliness#relationships#connectionRAG가 엉뚱한 답을 할 때 — 검색 실패와 생성 실패를 가르는 디버깅 절차
RAG가 틀린 답을 내면 대부분 프롬프트부터 고치는데, 실제 원인의 다수는 검색 단계에 있습니다. 정답 청크를 손으로 넣어 보는 한 번의 실험으로 검색 실패와 생성 실패를 가르는 절차부터 시작해, 청킹이 왜 가장 흔한 범인인지, 임베딩 유사도가 의미 유사도와 갈라지는 지점과 BM25 혼합이 자주 이기는 이유, 재순위화가 값을 하는 조건, 청크에 문서 제목과 메타데이터를 붙였을 때의 효과를 정
2026-07-26 · 22 분 읽기 #llm#rag#retrieval#chunking#evaluationKubernetes Pod Pending 상태 해결 — 스케줄러가 남긴 거절 사유 읽는 법
파드가 Pending에서 몇 분째 넘어가지 않을 때, 스케줄러는 이미 거절 사유를 이벤트에 남겨 두었습니다. 0/5 nodes are available로 시작하는 그 문장을 정확히 해독하는 법부터 시작해 아홉 갈래 원인을 하나씩 배제합니다. 리소스 부족은 실제 사용량이 아니라 requests 총합으로 판정된다는 점, taint와 톨러레이션, 노드 셀렉터와 어피니티 불일치, PVC 미바인딩과
2026-07-26 · 20 분 읽기 #kubernetes#scheduler#pending#troubleshooting#autoscalingKubernetes ImagePullBackOff와 ErrImagePull 완전 해부 — 원인 문자열 하나로 끝내기
파드가 ErrImagePull을 거쳐 ImagePullBackOff에 머무는 상황을 원인별로 분해합니다. 두 상태가 같은 사건의 다른 단계라는 점, 그리고 kubectl describe의 Events 마지막 한 줄에 이미 정답이 적혀 있다는 점에서 출발합니다. 태그 오타, 프라이빗 레지스트리 인증 실패, 서비스어카운트에 시크릿이 안 붙은 경우, Docker Hub 익명 풀 레이트 리밋, 프록
2026-07-26 · 19 분 읽기 #kubernetes#imagepullbackoff#container-registry#troubleshooting#containerdKubernetes 프로브 3종 제대로 쓰기 — liveness, readiness, startup의 정확한 경계
아무 문제 없는 파드가 주기적으로 재시작하거나, 배포 직후에만 502가 쏟아지거나, 느리게 뜨는 애플리케이션이 영원히 Ready에 도달하지 못하는 세 가지 사고는 모두 프로브 설계에서 나옵니다. 세 프로브가 각각 어떤 질문에 답하고 실패 시 무엇을 하는지 구분한 뒤, initialDelaySeconds부터 failureThreshold까지 파라미터가 실제로 몇 초 뒤에 컨테이너를 죽이는지 계
2026-07-26 · 27 분 읽기 #kubernetes#liveness-probe#readiness-probe#graceful-shutdown#sre나이 든다는 것에 대하여 — 통념과 데이터가 어긋나는 지점들
여러 나라의 자료에서 삶의 만족도가 가장 낮은 나이는 마흔일곱 언저리이고, 그 뒤로는 대체로 올라갑니다. 다만 이 U자 곡선에는 만만치 않은 반론도 있습니다. 유동성 지능과 결정성 지능이 갈라지는 방식, 남은 시간이 짧다고 느낄 때 관계가 정리된다는 카스텐슨의 이론, 노화에 대한 자기 인식과 수명의 상관을 보인 베카 레비의 연구와 그 한계, 창업과 수상 데이터가 말해 주는 늦었다는 감각의 오
2026-07-26 · 22 분 읽기 #mindset#aging#psychology#life#healthLLM 평가를 감으로 하지 않는 법 — 표본 크기, 심사자 편향, CI 회귀 테스트
프롬프트를 고치고 "좋아진 것 같다"로 배포하는 팀은 조용히 쌓이는 회귀를 볼 방법이 없습니다. 평가를 어서션, 골든 데이터셋, LLM 심사자, 사람 평가의 네 층위로 나눠 각각의 비용과 신뢰도를 정리하고, 심사자 모델의 위치 편향과 길이 선호를 어떻게 상쇄하는지 다룹니다. 예시 20개로 낸 결론의 신뢰구간이 실제로 얼마나 넓은지 계산하고, 짝지은 비교가 필요 표본을 몇 분의 일로 줄이는지
2026-07-26 · 19 분 읽기 #llm#evaluation#llm-as-judge#statistics#regression-testing