
개발자와 운영자를 위한 기술 아카이브 & 커뮤니티 — 기사 1,942건과 게시판이 기다립니다.
EC2 메모리와 디스크 사용률이 CloudWatch에 안 보일 때: CloudWatch Agent로 커스텀 메트릭 수집하고 SSM으로 배포, 경보까지
운영 중인 EC2가 갑자기 느려져서 CloudWatch 콘솔을 열었는데, CPU 그래프만 있고 메모리와 디스크 사용률 그래프가 아예 없어서 당황한 적이 있을 것이다. 저도 처음 AWS로 넘어왔을 때 온프레미스 모니터링 습관대로 메모리 그래프를 찾다가 …
🧵 최근 게시판 토픽
게시판 전체 보기 →최근 글
전체 보기 →삼성 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년 전 커밋에 그대로 들어 있는 경우를 종종 만난다. 최신 커밋에서는 이미 지워져 있어서 눈에 안 띄다가, 저장소를 공개로…
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 은퇴, 이제 뭘 써야 하나 - 대체 컨트롤러와 Gateway API 마이그레이션 경로
커뮤니티 유지보수 ingress-nginx 컨트롤러( kubernetes/ingress-nginx )는 2026년 3월부로 은퇴했다. 이후 신규 릴리스, 버그 수정, CVE 보안 패치가 전혀 나오지…
🔥 인기 글
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차)…