블로그
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 3편 — 손실 0.0017인데 정확도 7.5%, 범인은 패딩 한 칸이었다
이미지와 질문을 함께 받아 답하는 VQA 모델을 148만 파라미터로 만들었습니다. 학습 손실은 0.0017까지 떨어졌는데 정확도는 7.5%였습니다. 무작위보다 나쁜 수치였죠. 원인은 모델이 아니라 정답을 만드는 코드 한 줄이었고, 고치자 99.5%가 됐습니다. 왜 낮은 손실이 좋은 모델을 보장하지 않는지, 그리고 그 함정을 어떻게 알아채는지를 실제 출력으로 확인합니다.
2026-08-21 · 14 분 읽기 #ai#vqa#multimodal#debugging#pytorch집에 있는 서버로 실습형 학습 플랫폼 만들기 — 특권 없는 파드 안에 쿠버네티스를 넣는 방법
수강생이 버튼을 누르면 전용 컨테이너가 뜨고, 브라우저 터미널에서 진짜 리눅스 셸을 만지고, 단계마다 서버가 실제 상태를 검사해 채점하는 학습 플랫폼을 집에 있는 7노드 쿠버네티스 클러스터 위에 올린 기록입니다. 가장 어려운 문제는 기능이 아니라 격리였습니다. 실습이므로 수강생에게 root 를 줘야 하는데, 그 root 가 집 네트워크로 나가면 안 됩니다. Cilium 네트워크 정책을 실습별
2026-08-20 · 28 분 읽기 #kubernetes#cilium#security#homelab#kwokLabHub — 브라우저에서 진짜 서버를 만지며 배우는 실습 플랫폼을 열었습니다
읽어서는 늘지 않는 것들이 있습니다. 서버에 붙어 명령을 치고, 틀리고, 왜 틀렸는지 확인하는 과정을 대신할 방법이 없습니다. LabHub 은 그 과정을 브라우저 안에 넣은 학습 플랫폼입니다. 실습 시작을 누르면 전용 리눅스 컨테이너가 즉시 뜨고, 브라우저 터미널로 붙어 과제를 풀고, 단계마다 서버가 실제 상태를 검사해 통과 여부를 알려 줍니다. 러닝패스 12개에 코스 73개, 실습 261개
2026-08-20 · 14 분 읽기 #labhub#kubernetes#devops#education#hands-onRust 문자열이 까다로운 이유, 그리고 한글에서 그 선택이 옳은 이유
Rust에서 문자열이 어렵다는 말은 대개 인덱싱이 안 된다는 뜻입니다. 그런데 한글을 다루면 그 제약이 방어 장치였다는 게 드러납니다. "커널 파라미터 튜닝"은 26바이트이고 10글자입니다. str::find가 돌려주는 7과 사람이 세는 4가 다른 이유, len()이 바이트인 이유, 그리고 실제 검색 도구에서 이 차이가 어떻게 버그가 되는지를 실행 결과와 테스트 코드로 확인합니다.
2026-08-19 · 14 분 읽기 #rust#string#utf-8#cjk#korean커널을 빌드하고 부팅하기 — 내 노트북 말고 VM에서
커널을 직접 빌드해 본 사람과 그렇지 않은 사람 사이에는 넘기 힘든 선이 하나 있습니다. 이 글은 그 선을 넘는 절차를 처음부터 끝까지 정리합니다. defconfig와 menuconfig와 localmodconfig가 각각 무엇을 해 주는지, .config 파일이 실제로 무엇을 통제하는지, 디버그 심볼이 빌드 시간과 디스크를 어떻게 잡아먹는지, 그리고 병렬 빌드 옵션이 어디서 한계에 부딪히는
2026-08-19 · 28 분 읽기 #linux#kernel#kbuild#kconfig#qemu벤치마크가 거짓말하는 세 가지 방식 — Rust CLI를 실제로 재보고 진 이야기
Rust로 만든 검색 도구를 실제 코퍼스 11,483개 파일에 돌려 ripgrep, grep과 비교했습니다. 결과는 ripgrep이 약 10배 빨랐고 제 도구는 BSD grep과 비슷했습니다. 그런데 이 숫자에 도달하기까지 하니스 버그 세 개가 각각 그럴듯하지만 틀린 결과를 냈습니다. 셸 함수가 실제 도구를 가로챈 일, 프로세스 기준 타이머를 프로세스 간에 뺀 일, time의 출력을 스스로
2026-08-19 · 16 분 읽기 #rust#cli#benchmark#performance#ripgrep커널을 관측하고 디버깅하기 — printk, ftrace, kprobes, 그리고 QEMU와 GDB
커널 디버깅에는 사용자 공간과 결정적으로 다른 제약이 하나 있습니다. 멈춰 세우면 시스템 전체가 멈춘다는 것입니다. 그래서 커널 관측 도구는 대부분 멈추지 않고 들여다보는 쪽으로 발달했습니다. 이 글은 그 도구들을 실제로 쓰는 순서대로 정리합니다. 먼저 모두가 실제로 가장 많이 쓰는 printk와 dmesg를, 그다음 oops 메시지를 소스 줄 번호로 되돌리는 트리 안의 스크립트들을, 이어서
2026-08-19 · 31 분 읽기 #linux#kernel#ftrace#kprobes#perf커널 소스에서 길 찾기 — clone부터 "이 동작을 하는 코드"를 찾아내기까지
커널 학습에서 실제로 가장 자주 쓰게 되는 기술은 읽기가 아니라 찾기입니다. 어떤 트리를 받을지부터 정리합니다. mainline, stable, longterm이 각각 무엇이고 kernel.org의 릴리스 표를 어떻게 읽는지, torvalds 트리와 stable 트리 중 무엇을 clone해야 하는지, 얕은 복제가 언제 손해로 돌아오는지를 다룹니다. 그다음이 이 글의 본론입니다. 알고 있는 동
2026-08-19 · 29 분 읽기 #linux#kernel#kernel-source#git#cscope시스템 콜 하나를 끝까지 따라가기 — read가 커널 안에서 지나는 길
커널이 읽을 수 있는 코드라는 것을 확인하는 가장 좋은 방법은 시스템 콜 하나를 처음부터 끝까지 따라가 보는 것입니다. read(2)를 골라 사용자 공간의 호출부터 커널 안의 실제 구현, 그리고 반환까지 실제 파일 경로와 함수 이름과 함께 추적합니다. x8664에서 인자가 어느 레지스터에 실려 오는지, dosyscall64가 번호를 어떻게 함수로 바꾸는지, SYSCALLDEFINE3 매크로가
2026-08-19 · 31 분 읽기 #linux#kernel#syscall#vfs#x86첫 커널 패치 보내기 — 코드보다 절차가 관문인 이유
커널에 첨 기여할 때 막히는 곳은 대개 코드가 아니라 절차입니다. 첫 패치가 반려되는 이유의 상당수는 로직이 아니라 형식이고, 그 형식은 전부 커널 트리 안에 문서로 들어 있습니다. 이 글은 scripts/checkpatch.pl과 scripts/getmaintainer.pl이 각각 무엇을 답해주는지, Signed-off-by가 왜 필수이며 무엇을 증명하는지, 커밋 메시지가 왜 75열이고 -
2026-08-19 · 12 분 읽기 #linux#kernel#patch#git-send-email#checkpatch커널 C는 응용 C가 아니다 — 메모리 할당과 동시성의 규칙
문법은 같은 C인데 규칙이 다릅니다. 커널에서는 어떤 함수를 어디서 부를 수 있는지가 문맥에 따라 갈리고, 그 규칙을 어기면 컴파일은 통과하고 대신 시스템이 멈춥니다. 이 글은 그 규칙들을 공식 문서 기준으로 정리합니다. 먼저 스택이 사용자 공간의 수백분의 일이라는 사실에서 출발해, kmalloc과 vmalloc과 kvmalloc이 언제 갈리는지, GFP 플래그가 실제로 무엇을 허용하고 금지
2026-08-19 · 31 분 읽기 #linux#kernel#kmalloc#gfp#spinlock커널 공부는 어디서 시작하는가 — 4,300만 줄 앞에서 길을 잃지 않는 법
리눅스 커널을 공부하겠다고 마음먹은 사람이 가장 먼저 부딪히는 것은 개념이 아니라 규모입니다. 실제로 트리를 받아 세어 본 숫자로 커널이라는 코드베이스가 어떤 물건인지 먼저 보여 주고, 그중 몇 퍼센트를 평생 열어 볼 일이 없는지 정직하게 짚습니다. 그다음 현실적인 진입 경로를 읽기·관측·기여 세 갈래로 나눠 각각이 누구에게 맞는지, 왜 처음부터 순서대로 읽겠다는 계획이 거의 항상 실패하는지
2026-08-19 · 30 분 읽기 #linux#kernel#kernel-source#learning#c커널 모듈 작성 — 가장 작은 모듈부터 파라미터와 GPL 심볼까지
앞의 네 편이 남의 코드를 읽는 일이었다면 이 글부터는 커널 안에서 실행되는 코드를 직접 씁니다. 로드되기만 하는 가장 작은 모듈을 먼저 만들고, 그것이 왜 그 형태여야 하는지를 moduleinit과 MODULELICENSE의 실제 정의를 열어 확인합니다. 트리 밖에서 모듈을 빌드하는 Makefile은 커널 공식 문서의 예제를 그대로 따라가고, insmod와 rmmod와 modinfo와 ls
2026-08-19 · 27 분 읽기 #linux#kernel#kernel-module#kbuild#printk모두를 위한 AI 1편 — 16M 파라미터 언어모델을 15분에 처음부터 학습시키기
GPU 한 장으로 언어모델을 처음부터 학습시켜 봅니다. TinyStories 데이터셋과 1,600만 파라미터짜리 디코더 전용 트랜스포머로 15분 만에 읽히는 영어 동화를 생성했습니다. 어텐션 마스크가 왜 필요한지, 가중치 묶기가 무엇을 절약하는지, perplexity 20이 실제로 어떤 문장을 뜻하는지를 실제 학습 로그와 생성 결과로 확인합니다. RTX 3090 실측 기준.
2026-08-19 · 15 분 읽기 #ai#llm#transformer#pytorch#hands-on메타인지 — 안다는 느낌과 아는 것 사이의 간격
메타인지는 유행어가 되면서 정의를 잃었습니다. 이 글은 모니터링과 제어라는 원래의 정의로 돌아가, 안다는 느낌이 유창성이라는 대리 신호에서 만들어지는 방식, 답을 보면 아는 것처럼 느껴지는 재인과 회상의 혼동, 다시 읽기가 만드는 착각을 자기 시험이 교정하는 원리를 정리합니다. 더닝-크루거 효과는 대중판이 아니라 통계적 비판까지 포함해 정직하게 다루고, 자기 시험·예측 후 채점·소리 내어 설
2026-08-16 · 21 분 읽기 #mindset#metacognition#learning#psychology#2026-08탁구에서 배운 14가지: 실력이 관계를 만들고, 타이틀이 성장을 막는다
탁구를 오래 치면서 얻은 열네 가지 원칙을 정리하고, 그것이 일과 삶에 어떻게 옮겨붙는지 살펴봅니다. 실력이 관계의 입장권이 되는 구조, 즐겁게만 쳐서는 늘지 않는 이유, 그리고 내 타이틀이 배움을 막는 순간까지. 옮겨붙지 않는 부분도 함께 적었습니다.
2026-08-16 · 19 분 읽기 #mindset#growth#deliberate-practice#sports#career기준을 낮추지 않는 방법: 의지가 아니라 구조의 문제
기준은 결심으로 무너지지 않습니다. 이름 없는 예외, 지쳤을 때의 재협상, 주변의 중간값으로 조용히 내려갑니다. 기준이 무너지는 다섯 가지 메커니즘과 그걸 막는 구조, 기준을 지키는 것과 자기 학대를 구분하는 법, 그리고 기준을 낮추는 게 맞는 경우까지 다룹니다.
2026-08-16 · 13 분 읽기 #mindset#standards#discipline#growth#2026-08똑똑하다는 것의 정의: 무엇이 측정되고 무엇이 측정되지 않는가
지능이라는 단어에는 서로 다른 세 가지가 섞여 있습니다. 통계적 규칙성으로서의 일반요인, 심리측정학의 주류 모형인 CHC, 그리고 일상에서 사람을 평가할 때 쓰는 사회적 용법. 이 글은 그 셋을 분리하고, 다중지능과 학습 유형이 왜 널리 가르쳐지면서도 근거가 약한지, 측정된 능력의 예측력이 왜 양쪽 방향으로 과장되는지를 정리합니다. 측정된 능력은 사람의 가치가 아닙니다.
2026-08-16 · 24 분 읽기 #mindset#intelligence#psychometrics#expertise#evidence목적이 불확실할 때 — 명확함은 출발의 조건이 아닙니다
무엇을 위해 사는지 모르겠다는 상태에서 목적이 명확해질 때까지 기다리는 전략은 왜 실패하는가. 목적은 계획의 상류가 아니라 축적의 하류에서 발견된다는 관점, 좌표 대신 나침반으로 움직이는 방향의 언어, 확신 없이 움직이기 위한 작은 내기의 기술, 그리고 열정을 기다리는 함정까지. 연구 정리가 아니라 구조로 논증하는 에세이임을 밝히고 쓴 글입니다.
2026-08-16 · 20 분 읽기 #mindset#purpose#career#self-improvement#2026-08연습의 구조: 잘되는 연습과 남는 연습이 다른 이유
간격 두기, 인출 연습, 섞어서 연습하기. 학습 연구에서 근거가 비교적 튼튼한 세 가지를 효과 크기와 함께 정리했습니다. 그리고 이 분야의 핵심 역설을 다룹니다. 연습 도중의 수행을 가장 좋게 만드는 조건과 나중까지 남는 것을 가장 많게 만드는 조건이 서로 다르다는 것. 스스로 하는 연습이 기분은 좋은데 잘 늘지 않는 이유가 여기에 있습니다.
2026-08-16 · 24 분 읽기 #mindset#learning#practice#retrieval#spacing