전체 글
2,120개의 글
Nginx upstream keepalive로 백엔드 TCP 핸드셰이크와 TIME_WAIT 줄이기
리버스 프록시를 오래 운영하다 보면 프런트 Nginx는 멀쩡한데 백엔드 앞단에서 TIME_WAIT 소켓이 수만 개씩 쌓이는 장면을 마주한다. WAS 튜닝을 아무리 해도 안 잡히는데, 알고 보면 Ng…
HardwareCommodore Amiga 500 - 커스텀 칩 Agnus/Denise/Paula 구조와 Workbench 부팅, Amiberry/WinUAE로 재현하기
1987년의 홈컴퓨터는 대개 CPU 하나가 화면과 소리를 다 짊어졌다. Amiga 500은 그 짐을 전용 칩 셋에 떼어 준 기계다. 그래서 68000 하나만 놓고 보면 평범한데, 실제로 돌려 보면 …
[LENA] Windows 환경에서 LENA + Fasoo 연동
윈도우 환경에서 LENA WAS와 Fasoo 연동하는 방법에 대한 내용이다. Fasoo 솔루션에서 제공하는 WAS별 패키지 설치 가이드 문서에는 기본적으로 Tomcat, WebLogic, Jeus,…
[LENA] SameSite 속성 설정하기
SameSite 속성 설정 (LENA-UID, L-VISITOR, JSESSIONID) LENA-UID (LENA WEB 설정) ${LENA_HOME}/servers/${SERVER_ID}/conf…
jq 실전: API 응답과 kubectl -o json, AWS CLI, CloudTrail 로그를 select와 group_by로 뽑기
운영하다 보면 JSON을 눈으로 읽어야 하는 순간이 하루에도 몇 번씩 온다. kubectl로 파드 상태를 뽑거나, AWS CLI로 인스턴스 목록을 받거나, CloudTrail에서 누가 뭘 지웠는지 …
Nginx 보안 설정 실무 - server_tokens, TLS, 보안 헤더, limit_req, 444 차단
새 서버를 인터넷에 열어두고 access log를 지켜보면 몇 분 지나지 않아 낯선 요청이 쌓이기 시작한다. wp-login.php, .env, phpMyAdmin처럼 있지도 않은 경로를 두드리는 …
PostgreSQL XID wraparound로 DB가 멈췄을 때: 'database is not accepting commands' 진단과 복구
새벽에 애플리케이션이 통째로 쓰기를 못 하고 로그에 database is not accepting commands 가 찍히면 대부분 여기서 처음 XID wraparound라는 단어를 검색하게 된다.…
금성 FC-100 살펴보기: 국산 Z80 8비트기의 사양과 TV 연결형 설계, 남은 ROM과 아카이브
오래된 국산 하드웨어를 뒤지다 보면 금성 FC-100 앞에서 한 번은 멈추게 된다. 애플 II 카피와 MSX 사이 어디쯤, 한국이 아직 반도체 조립국 소리를 듣던 시절에 나온 기계라서 그렇다. 이번…
Redis, MongoDB 로그의 THP 경고 제대로 끄기: systemd, GRUB, tuned로 영구 비활성화
새 인스턴스에 Redis나 MongoDB를 올리고 기동 로그를 보면 거의 매번 THP 관련 경고 한 줄이 붙는다. 나도 설치할 때마다 이 줄을 보고, 급하면 echo never 한 번으로 덮고 넘어…
macOS '확인되지 않은 개발자라 열 수 없습니다' 차단 해제: xattr로 quarantine 제거, spctl과 codesign으로 안전하게 처리하기
인터넷에서 받은 CLI 도구나 오픈소스 앱을 처음 실행할 때 "확인되지 않은 개발자가 배포했기 때문에 열 수 없습니다"라는 창을 만나는 경우가 잦다. 나도 GitHub 릴리스에서 받은 바이너리를 터…
Hardware삼성 SPC-1000: 1982년 개발된 초기 국산 8비트 컴퓨터의 Z80 사양과 CAS 테이프 복원
중고 장터에 국산 8비트 기계가 올라오면 대개 키보드 오른쪽이 유난히 두툼한 사진이 함께 붙는다. 그 두께의 정체가 본체에 박힌 카세트 데크다. SPC-1000을 다시 들여다보게 된 계기도 그 사진…
대용량 CSV와 로그를 pandas 대신 Polars로 빠르게 처리하기: lazy API와 벤치마크
수 GB짜리 접속 로그나 CSV를 pandas로 열다가 read_csv 에서 메모리가 꽉 차서 커널이 죽는 상황, 데이터 전처리를 해본 사람이라면 한 번쯤 겪는다. 필자도 로그 집계 스크립트를 돌릴…
ALB와 Nginx 뒤 Tomcat이 클라이언트 IP를 프록시 IP로 남길 때 RemoteIpValve로 바로잡기
ALB나 Nginx를 앞단에 두고 Tomcat을 뒤에 붙이는 구성은 흔하다. 그런데 이렇게 올리고 나면 액세스 로그에 찍히는 접속 IP가 전부 프록시 IP 한두 개로 도배되는 걸 발견하게 된다. 로…
MariaDB innodb_buffer_pool_size 사이징과 재시작 후 캐시 워밍업
InnoDB로 돌아가는 MariaDB 서버를 넘겨받으면 가장 먼저 확인하는 값 중 하나가 innodb_buffer_pool_size 다. 물리메모리 64GB짜리 장비인데 이 값이 기본값 그대로 12…
openssl 명령어로 SSL 인증서 다루기: s_client 검증, PEM/DER/PKCS12 변환, CSR 생성
인증서 만료로 서비스가 멈추거나, 톰캣에는 되던 인증서가 nginx에서 안 붙거나, 자바 앱에 넣을 키스토어를 만들어야 하는 상황은 운영하다 보면 주기적으로 돌아온다. 그때마다 웹 콘솔을 열지 않아…
Redis 분산 락 안전하게 구현하기: SET NX PX, Lua 원자적 해제, 펜싱 토큰의 함정
스케줄러가 두 대의 WAS에서 동시에 돈다거나, 재고 차감 배치가 겹쳐 돌면서 같은 주문을 두 번 처리하는 사고를 한 번쯤은 겪는다. 이럴 때 가장 먼저 손이 가는 게 Redis 분산 락이다. 문서…
AWS Bedrock Knowledge Bases로 사내 문서 RAG 챗봇 만들기
사내 위키나 운영 문서를 뒤지다가 "이 설정 어디에 적혀 있더라" 하고 시간을 버리는 일이 잦다. 이런 문서를 검색해서 답을 만들어 주는 RAG 챗봇을 직접 짜려면 임베딩, 벡터 DB, 프롬프트 조…
Git 히스토리에 커밋된 비밀번호와 API 키 완전히 제거하기 (git filter-repo, BFG, gitleaks)
사내 저장소를 정리하다 보면 config/deploy.env 같은 파일이 3년 전 커밋에 그대로 들어 있는 경우를 종종 만난다. 최신 커밋에서는 이미 지워져 있어서 눈에 안 띄다가, 저장소를 공개로…
EC2 메모리와 디스크 사용률이 CloudWatch에 안 보일 때: CloudWatch Agent로 커스텀 메트릭 수집하고 SSM으로 배포, 경보까지
운영 중인 EC2가 갑자기 느려져서 CloudWatch 콘솔을 열었는데, CPU 그래프만 있고 메모리와 디스크 사용률 그래프가 아예 없어서 당황한 적이 있을 것이다. 저도 처음 AWS로 넘어왔을 때…
Claude API 프롬프트 캐싱(cache_control)으로 반복 프롬프트 비용 줄이기: 브레이크포인트 설계와 절감 측정
1. 개요 사내 챗봇이나 에이전트를 붙여 달라는 요청을 받으면 기능 이야기보다 비용 이야기가 먼저 나올 때가 많습니다. 예전에 토큰 계산 스크립트를 정리한 글에서 캐싱 부분은 슬쩍 넘겼던 기억이 있…
pg_wal이 계속 커져 디스크가 꽉 찰 때: 남아 있는 복제 슬롯 정리와 max_slot_wal_keep_size 설정
DB 스토리지 경고를 받고 급하게 접속해 본 경험은 운영을 해본 사람이라면 한 번쯤 있을 것이다. 그런데 막상 들어가 보면 테이블은 그대로인데 pg_wal 만 부풀어 있는 경우가 꽤 있다. 스토리지…
Spring Boot JPA N+1 쿼리 진단과 해결: generate_statistics, fetch join, @EntityGraph, @BatchSize
코드 리뷰나 성능 점검을 하다 보면 JPA N+1 얘기를 반복해서 하게 된다. 목록 화면 하나 열었을 때 쿼리가 몇 개 나가는지 물어보면 답이 바로 안 나오는 경우가 많고, 원인을 찾은 뒤에도 fe…
ingress-nginx EOS, 이제 뭘 써야 하나
커뮤니티 유지보수 ingress-nginx 컨트롤러( kubernetes/ingress-nginx )는 2026년 3월부로 EOS(End of Support, 지원 종료)를 맞았다. 이후 신규 릴리…
snmpwalk 앞의 막막함에서 Zabbix 7 템플릿까지
원문 : https://blog.zabbix.com/the-evolution-of-an-snmp-auto-discovery-tool/33123/ snmpwalk 결과 앞에서 막막했던 경험, 모니터링…