-
[홈랩] 리눅스 배포판, 뭐가 다른가 — Debian·Ubuntu·Mint·RHEL 계열 비교 분석
지난 글 「10년 된 본가 PC를 Debian 서버로 — 32GB RAM + 870 EVO 2TB 스펙업 기록」 마지막에, OS로 Debian을 “순정에 가깝고 손에 익어서” 골랐지만…
-
[독서] 구르지예프, 우파니샤드, 그리고 에니어그램 — 존재를 바꾸는 세 개의 지도
구르지예프의 자기기억, 우파니샤드의 두 마리 새, 현대 심리학의 메타인지가 한 계단에서 만난다. 에니어그램 3·6·9를 의지·의식·완성으로 다시 읽은 독서 노트.
-
[홈랩] 10년 된 본가 PC를 Debian 서버로 — 32GB RAM + 870 EVO 2TB 스펙업 기록
집에 방치돼 있던 홈 서버 PC의 스펙을 올렸다. 램을 32GB까지 채우고, 우연히 싸게 나온 SSD를 하나 더 붙였다. 오랜만에 케이스를 열어 부품을 갈아 끼운 김에,…
-
[어원] manifest — manus(손)+festus(붙잡은), ‘손에 잡힐 만큼 명백한’ 그리고 k8s·Android·PWA가 왜 다 manifest인가
손을 뻗어 닿는다 — manus(손)에 잡힐 만큼 뚜렷이 드러난 것, 그것이 manifest다. Photo: Rui Silvestre / Unsplash 한눈에 보기 항목 내용 단어 manifest /ˈmæn.ɪ.fest/ 품사…
-
[인프라 비용] Bitnami Helm으로 무료 인프라? — 라이선스 피와 개발자 시간, 무엇이 진짜 싼가
Bitnami Helm 차트는 프로덕션급 Postgres·RabbitMQ·Redis를 한 줄로 띄워주던 무료 지름길이었다. 그런데 2025년 라이선스 변경으로 무료 사용이 크게 제약됐다. 무료 인프라를 목표로 할 때 이게 무슨…
-
[채팅 백엔드 보안] WebSocket은 무엇으로 지키고, 셀프호스팅한 메시지 큐는 누가 들여다보나
WebSocket 채팅을 무엇으로 인증·격리하는지(JWT HS256 + TLS + 테넌트 네임스페이싱), 메시지 큐로 RabbitMQ를 고른 이유와 PV 구성, 그 큐를 headless ClusterIP로 바깥에 안 여는 접근…
-
[인프라 자동화] Provider 계층만 교체한다 — 인프라에 적용한 Hexagonal과 ‘무료가 기본값’인 스킬 설계
GKE에서 OKE로 갈아탔는데 ArgoCD·Traefik·배포 스크립트는 한 줄도 안 바꿨다. 인프라 자동화 스킬을 Hexagonal 포트/어댑터로 설계해 클라우드 provider 계층만 교체하는 법, 실수로 과금되지 않도록 ‘무료를 기본값’으로…
-
[Flutter × 채팅] 낙관적 UI와 clientMsgId — 서버 멱등키가 클라이언트에서 중복 제거로 완성되는 지점
이중 쓰기(WS 릴레이 + REST 영속화)를 하면 내가 보낸 메시지가 WS로 되돌아와 중복된다. Flutter 앱 Bibleana가 clientMsgId 하나로 낙관적 UI와 에코 dedupe를 잇는 방법, single-flight…
-
[채팅 백엔드 설계] 방이 두 pod에 흩어졌을 때 — RabbitMQ fan-out과 app_key 멀티테넌시
게이트웨이를 여러 pod로 늘리면 같은 방의 두 사용자가 서로 다른 인스턴스에 붙는다. RabbitMQ topic exchange에 인스턴스별 ephemeral 큐를 바인딩하고 origin 태그로 중복을 막는 fan-out, 그리고…
-
[채팅 백엔드 설계] 느린 클라이언트 하나가 방 전체를 막지 않게 — 샤딩·워커풀·drop-on-full
WebSocket 게이트웨이는 얇지만 단순하지 않다. 방 맵을 32개 샤드(FNV-1a)로 나눠 lock 경합을 줄이고, 방마다 워커풀 10 + 버퍼 큐 10000을 두고, 큐가 꽉 차면 blocking…