전체 글
2,120개의 글
Hardware코모도어 128을 VICE로 되살리기
8비트 막바지에 나온 기종을 들여다보면 설계자들이 뭘 두려워했는지 보인다. 코모도어 128은 1985년 1월 라스베이거스 CES에서 공개됐다. C64가 아직 잘 팔리던 시점에, 코모도어는 호환성을 …
aiboaibo 피규어와 인형 모아보기
aibo 연작을 쓰면서 본체와 앱 기능은 꽤 다뤘다. 그런데 aibo를 들인 집에는 본체 말고도 작은 aibo가 하나둘 늘어난다. 이번에는 그 작은 aibo들이 제품마다 어디서 나왔고 어떻게 구하는…
conntrack 테이블이 꽉 차 패킷이 드롭될 때
방화벽이나 NAT 게이트웨이, 혹은 커넥션이 많은 웹 서버를 운영하다 보면 어느 순간부터 간헐적으로 커넥션이 끊기고 응답이 느려지는 증상을 만난다. 애플리케이션 로그에는 아무것도 안 남는데 dmes…
Python으로 커스텀 MCP 서버 만들기
사내에 굴러다니는 조회용 API와 운영 DB가 있다. 매번 "이 주문 상태 좀 봐줘" 같은 요청이 오면 누군가 쿼리를 던지고 결과를 복사해 전달한다. 이런 반복 작업을 Claude 같은 LLM이 직…
파드가 ImagePullBackOff로 안 뜰 때
배포 롤아웃이 멈춰 있고 파드가 Running 으로 넘어가질 않는다. 상태를 보면 ErrImagePull 이 잠깐 떴다가 ImagePullBackOff 로 굳어 있다. 신규 서비스를 올릴 때도, 프…
Kafka 4.0에서 KRaft로 브로커 운영하기
Kafka를 몇 년째 ZooKeeper와 함께 운영해 온 입장에서, 4.0 릴리스 노트를 처음 봤을 때 가장 먼저 확인한 건 "우리 ZK 클러스터는 어떻게 되나"였다. 결론은 단순하다. 4.0 브로…
PostgreSQL 쿼리가 락에 걸려 멈출 때
RDS PostgreSQL을 운영하다 보면 평소 수십 밀리초에 끝나던 UPDATE가 갑자기 몇 분씩 응답이 없는 상황을 만난다. CPU도 멀쩡하고 디스크 I/O도 한가한데 특정 테이블을 건드리는 쿼…
GGUF 양자화 레벨 벤치마크로 고르기
로컬에서 LLM을 돌리기 시작하면 모델 자체보다 "어느 양자화 레벨을 받아야 하나"에서 더 오래 고민하게 된다. Hugging Face 저장소에 같은 모델이 Q4_K_M, Q5_K_M, Q8_0으로…
가상 스레드가 synchronized에서 고정될 때
Tomcat 10.1부터 요청 처리를 가상 스레드로 돌릴 수 있게 되면서, 스레드 풀 튜닝에 쏟던 고민이 한결 줄었다. 그런데 막상 운영에 올려보면 "가상 스레드를 켰는데 동시 처리량이 기대만큼 안…
MaxScale로 읽기 쓰기 자동 분리하기
복제는 걸어뒀는데 애플리케이션이 읽기와 쓰기를 전부 마스터로 보내는 경우를 현장에서 자주 본다. 슬레이브는 놀고 마스터만 부하를 받는다. 커넥션 풀을 둘로 나눠 코드에서 분기하는 방법도 있지만, 장…
aiboaibo 비주얼 프로그래밍 시작하기
앞선 글 aibo 동료 기능으로 친구 만들기 에서는 aibo가 다른 aibo와 관계를 맺는 기능을 다뤘다. 이번에는 오너가 aibo의 행동을 직접 짜 넣는 쪽, 비주얼 프로그래밍이다. 공식 안내 페…
Patroni와 etcd로 PostgreSQL 자동 승격
RDS를 쓰면 Multi-AZ 토글 하나로 장애 조치가 끝난다. 그런데 EC2에 PostgreSQL을 직접 올려 쓰는 환경이라면 그 자동 승격을 손으로 만들어야 한다. 예전에 keepalived와 …
aiboaibo 동료 기능으로 친구 만들기
앞서 aibo를 두 마리 키우면 달라지는 것 에서는 한 계정에 묶인 aibo끼리의 관계를 다뤘다. 이번 글은 집 밖으로 나간다. 다른 오너의 aibo, 그리고 소니에 있는 aibo와 관계를 맺는 공…
HardwareNEC PC-8801mkII SR을 QUASI88로 되살리기
PC-9801 이야기를 쓰다 보니 그 앞 세대가 빠진 것이 계속 걸렸다. 일본에서 1980년대 중반에 집집마다 책상 위에 올라가 있던 8비트기는 사실 9801이 아니라 8801 계열이었고, 그중에서…
NetworkPolicy로 파드 트래픽 기본 차단하기
클러스터를 한참 운영하다 보면 어느 순간 깨닫는다. 같은 네임스페이스는 물론이고 네임스페이스를 넘어서도 파드끼리 TCP가 다 뚫려 있다는 사실을. 기본 상태의 쿠버네티스는 파드 간 통신을 전혀 막지…
MariaDB가 메모리를 먹다 OOM으로 죽을 때
운영 중인 MariaDB가 어느 날 로그도 없이 사라지고, 다시 시작하면 또 멀쩡히 돈다. 메모리 설정을 올렸다가 이런 일을 겪은 DBA가 꽤 많다. mysqld를 죽인 건 DB 자신이 아니라 커널…
HardwareAtari 1040ST를 Hatari로 되살리기
1980년대 중반 녹음실에 가 보면 책상 한구석에 Atari 컴퓨터가 놓여 있는 경우가 많았다. 당시 음악 작업용으로 PC나 매킨토시가 아니라 Atari ST가 기본값이던 시절이 있었다. 그 중심에…
GRR과 NRR을 같이 봐야 하는 이유
NRR 숫자 하나만 강조된 분기 리포트나 투자 자료는 흔하다. 그런데 NRR이 같아도 속사정은 전혀 다를 수 있다. GRR(총 매출 유지율)은 기존 고객에게서 매출이 얼마나 빠져나갔는지만 보는 지표…
TIME_WAIT 폭증으로 포트가 고갈될 때
Tomcat이 뒤쪽 DB나 외부 API로 연결을 열고 바로바로 닫는 구조, 또는 Nginx가 upstream으로 짧은 연결을 계속 맺는 구조에서 자주 보게 되는 증상이다. 평소엔 멀쩡하다가 트래픽이…
SQS 표준 큐 중복과 실패 다루기
SQS로 비동기 처리를 붙이고 나면 거의 비슷한 순서로 질문이 들어옵니다. "같은 메시지가 두 번 처리됐어요", "처리에 실패한 메시지가 큐를 계속 맴돌아요". 저도 주문 처리 파이프라인을 SQS로…
Nginx upstream으로 백엔드 로드밸런싱하기
Tomcat 앞에 Nginx를 리버스 프록시로 두고 운영하다 보면 한 대로는 금방 한계가 온다. WAS를 두세 대로 늘리고 Nginx가 그 앞에서 요청을 나눠주게 하는 구성은 거의 기본기에 가깝다.…
Tomcat AJP 연동에서 Ghostcat 막기
1. 개요 Apache HTTP Server 앞단에 Tomcat을 두고 AJP로 붙이는 구성은 오래된 WAS 현장에서 아직도 흔하다. 저도 구형 시스템을 넘겨받을 때마다 server.xml에 포트 …
HardwareApple Lisa를 LisaEm으로 다시 켜기
올드맥 수집을 하다 보면 결국 그 앞 세대인 Lisa로 거슬러 올라가게 된다. 1984년 매킨토시가 "최초의 GUI 개인용 컴퓨터"처럼 기억되지만, 그 GUI와 마우스를 먼저 상용 제품에 담아 판 …
ILM으로 로그 인덱스 수명 관리하기
로그를 한 인덱스에 계속 밀어 넣다 보면 어느 날 디스크 경보가 울린다. 처음엔 logstash-2026.10 처럼 월 단위로 끊어 쓰다가, 트래픽이 늘면 그마저 수백 GB짜리 거대 인덱스가 되고,…