정성원
-
[측정 보고서] 홈서버의 TCP 수신 윈도우·MSS·수신 처리량 — 값이 아니라 식을 남긴다
집 서버의 TCP 수신 창과 MSS를 재고, 그 값이 어떤 식에서 나오는지 커널 파라미터까지 거슬러 확인했습니다. 소켓에서 파일 버퍼로 읽는 속도는 858 MB/s, 실제 네트워크…
-
[게임] 몬스터 능력치는 코드가 아니라 데이터다 — Type Object 패턴과 포켓몬의 두 시트
몬스터 종류가 늘 때마다 클래스를 하나씩 만들면 어디서 무너질까. ‘종족은 무엇인가’와 ‘이 개체의 지금 상태’를 나누는 Type Object 패턴을, 포켓몬의 종족값 시트와 인카운터 테이블이라는 실제…
-
[홈랩 검증기] 안전장치가 안전하지 않았습니다 — Vault로 평문 Secret 11개를 걷어낸 기록
집 서버의 평문 Secret 11개를 HashiCorp Vault로 옮겼습니다. 그런데 정작 기록에 남을 만한 것은 이행 자체가 아니라, 그 과정에서 안전을 보장한다고 믿었던 장치들이 하나씩 제…
-
Service·ClusterIP·NodePort·Ingress — 트래픽을 어떻게 꽂나
Pod IP는 수시로 바뀐다. 그 앞에 고정된 접속 창구를 세우는 것이 Service다. Service(ClusterIP·NodePort·LoadBalancer)와 Ingress를 한 줄 정의로 갈라내고, 실제 kubectl 콘솔로 ‘Pod가 바뀌어도 ClusterIP는 그대로’임을…
-
인증서와 비밀은 한 뿌리다 — 신뢰를 만드는 다섯 단어를 가르는 기준
certificate·signature·token·secret·authentication은 실무에서 뒤섞여 쓰인다. 어원으로 보면 갈리는 선이 하나 있다. 신뢰를 만드는 방법은 둘뿐이다 — 아는 쪽과 모르는 쪽을 가르거나(cernere), 보여서 증명하거나(*deik-). 놀랍게도 certificate와 secret은…
-
[홈랩 검증기] TCP는 붙는데 HTTP만 죽었다 — Cilium L7 프록시를 계층별로 배제한 기록
HTTP readiness probe를 쓰는 파드 9개만 동시에 NotReady가 됐습니다. exec·tcp probe 파드는 멀쩡했고 DNS도 서비스 VIP도 정상이었습니다. TCP는 붙는데 HTTP 응답만 오지 않는 상태를 계층별로…
-
ReplicaSet·Deployment·StatefulSet·Canary — 몇 개를, 어떻게 굴릴까
쿠버네티스는 Pod를 직접 만들지 않는다. ‘이 상태로 유지하라’를 맡으면 컨트롤러가 대신 개수·버전·배치를 지킨다. ReplicaSet·Deployment·DaemonSet·StatefulSet·Job/CronJob과 Canary 배포를 한 줄 정의로 갈라내고, 실제 kubectl 콘솔로 자기치유와 롤링…
-
[홈랩 검증기] READY 1/1인데 고장나 있었다 — 준비 상태가 증명하지 않는 것들
DB를 재기동한 뒤 모든 파드가 READY 1/1이었습니다. 그런데 애플리케이션은 DB에 닿지 못하고 있었고, DB 크기는 줄어든 것처럼 보였고, 제가 쓴 점검 명령은 고장난 파드를 걸러내지…
-
Control Plane·Node·Pod·Namespace — 클러스터는 누가 관리하나
컨테이너 하나는 이해했는데, 수백 개로 늘어 여러 머신에 흩어지면 누가 관리하나? 그 답이 쿠버네티스다. Control Plane(두뇌)·Node(일꾼)·Pod(최소 배포 단위)·Namespace(논리 폴더)를 한 줄 정의로 갈라내고, 실제 kubectl…
-
프로토콜은 원래 풀로 붙인 종이였다 — 접속 한 번에 다 등장하는 다섯 단어의 내력
브라우저가 사이트에 붙는 짧은 순간에 protocol·session·scheme·negotiation·handshake가 전부 등장한다. 다섯 다 컴퓨터가 만든 말이 아니다. 두루마리 앞에 풀로 붙인 종이(protocol), 법정에 앉아 있는 동안(session), 겉으로 드러난…