
개발자와 운영자를 위한 기술 아카이브 & 커뮤니티 — 기사 2,120건과 게시판이 기다립니다.
Kafka 4.0에서 KRaft로 브로커 운영하기
Kafka를 몇 년째 ZooKeeper와 함께 운영해 온 입장에서, 4.0 릴리스 노트를 처음 봤을 때 가장 먼저 확인한 건 "우리 ZK 클러스터는 어떻게 되나"였다. 결론은 단순하다. 4.0 브로커는 ZooKeeper에 붙지 않는다. 그래서 전환을 …
🧵 최근 게시판 토픽
게시판 전체 보기 →최근 글
전체 보기 →
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 로 굳어 있다. 신규 서비스를 올릴 때도, 프…
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와 관계를 맺는 공…
🔥 인기 글
yum을 이용한 Ansible Installation (CentOS 기준)
본 문서는 CentOS 기준으로 작성되었으며, yum을 이용하여 설치합니다. (1) 아래 명령문을 실행합니다. sudo yum install ansible (2) 설치에 성공하면 아래와 같이 Com…
golang REST API 서버 컨테이너 빌드
개요 golang으로 간단한 REST API 서버를 작성하고, 다중 스테이지(Multi stage) Dockerfile로 빌드하여 컨테이너로 배포한다. API 서버 모듈 임포트 REST API 서버…
column 위치에 따른 select 성능 비교
TABLE 의 컬럼 위치에 따른 select 성능 차이가 있는지 궁금하여 알아보던 중 좋은 글을 발견하여 테스트 해본 결과 입니다. --1. TEST 환경 구성 1) 250 개 COLUMN 테이블 …
Nginx 주요 설정 (nginx.conf)
1. 개요 지난 번 포스팅을 통해 OS X에서 Nginx 1.4.4를 설치 하여 보았습니다. 강철지그님께서는 계속 작업을 해주고 계십니다. Linux에서 Nginx 1.4.5 설치 Linux에서 N…
오라클 접속 정보 설정(listener.ora, sqlnet.ora, tnsnames.ora)
- 오라클 접속 정보 설정(listener.ora, sqlnet.ora, tnsnames.ora)- ♣ listener.ora - 위치: 서버에서 $ORACLE_HOME/network/admin/l…
Tomcat 업그레이드 후 server.xml 설정 변경.
최근 Apache Tomcat의 AJP 취약점 발표이후, 해당 취약점에 대응하는 업그레이드 버전이 나왔다. 관련 취약점은 다음과 같다. Apache Tomcat AJP 취약점 보안 조치 권고(2차)…