
개발자와 운영자를 위한 기술 아카이브 & 커뮤니티 — 기사 2,090건과 게시판이 기다립니다.
cert-manager로 TLS 인증서 자동 발급하기
쿠버네티스에 서비스를 올리고 나면 꼭 밟는 단계가 TLS다. 예전에는 인증서 만료일을 캘린더에 적어두고 분기마다 갱신하던 시절이 있었는데, 클러스터 안에서는 그런 수동 작업을 cert-manager가 거의 다 가져간다. 나도 새 클러스터를 세팅할 때마…
🧵 최근 게시판 토픽
게시판 전체 보기 →최근 글
전체 보기 →자바 스레드 덤프 분석하는 법
장애 대응을 하다 보면 "서버는 살아 있는데 요청이 안 돌아온다"는 연락을 받을 때가 있다. 로그에는 에러가 한 줄도 없고, 재시작하면 멀쩡해져서 원인은 확인도 못 한 채 넘어간다. 재시작 버튼을 …
AWS Bedrock을 쓰는 이유
AWS 위에서 서비스를 운영하는 팀에 있으면 'Claude 쓰고 싶은데 Anthropic 키 하나 받아서 쓰면 안 되냐'는 질문을 자주 받는다. 반대로 보안팀이나 재무팀에서는 'Bedrock으로 하…
자바 OOM 자동 힙덤프로 누수 객체 찾기
운영 중인 자바 애플리케이션이 한밤중에 OutOfMemoryError: Java heap space 를 던지고 죽는 일은 드물지 않다. 문제는 다음날 아침 로그를 열어봐도 "힙이 모자랐다"는 사실만…
논리적 복제로 PostgreSQL 최소 중단 업그레이드
메이저 버전 업그레이드는 미루기 쉬운 일이다. RDS의 in-place 업그레이드는 버튼 한 번으로 끝나는 대신 그 시간만큼 DB가 멈춰 있고, 데이터가 크면 중단이 수십 분으로 늘어난다. 서비스를…
ORA-04031로 shared pool이 터질 때
운영 중인 Oracle에서 갑자기 세션들이 에러를 토하며 멈추는데, 로그를 열어 보면 ORA-04031이 찍혀 있는 경우가 있다. 제가 현장에서 이 에러를 만날 때 열에 아홉은 메모리를 더 줘서 해…
락 없이 PostgreSQL 인덱스 추가하기
운영 중인 테이블에 인덱스 하나 추가하려다 서비스가 멈춘 경험이 한 번쯤 있을 것이다. 가입자가 늘면서 느려진 쿼리를 잡으려고 인덱스를 거는데, 그냥 CREATE INDEX 를 때리면 테이블 쓰기가…
RAG 정확도를 리랭커로 끌어올리기
RAG를 붙여 놓고 나면 꼭 한 번은 겪는 장면이 있다. 질문은 멀쩡한데 모델이 엉뚱한 문단을 근거로 답을 지어낸다. 로그를 열어 보면 벡터 검색이 가져온 상위 문서부터 질문과 미묘하게 어긋나 있다…
새벽마다 Communications link failure가 날 때
운영하다 보면 유독 새벽 시간대에만 애플리케이션 로그에 Communications link failure 가 찍히는 경우를 만난다. 낮에는 멀쩡하다가 트래픽이 거의 없는 새벽 2시, 4시에만 터지고…
Hardware코모도어 VIC-20을 VICE로 되살리기
얼마 전 창고를 정리하다 코모도어 주변기기 몇 개가 나왔는데, 정작 본체인 VIC-20은 없었다. 아쉬운 김에 에뮬레이터로라도 다시 켜보니, 3.5KB라는 메모리로 이 기계가 어떻게 100만 대를 …
Redis 재시작했더니 데이터가 사라질 때
캐시로만 쓰던 Redis에 어느 순간 세션이나 카운터, 큐처럼 사라지면 곤란한 데이터가 올라가 있는 경우가 많다. 그러다 서버를 한 번 재시작하면 그 데이터가 통째로 비어 있는 걸 보고 당황하게 된…
Hardware올드맥 시리즈 9편, Power Macintosh 7200
올드맥 시리즈는 1편 Power Macintosh 6100 에서 시작했다. 이어서 2편 7100 , 3편 8100 으로 1세대 NuBus 기종을 다뤘다. 4편 5200 LC 와 5편 6200 에서는…
Tomcat이 순간 폭주에 접속을 거부할 때
1. 개요 마케팅 푸시나 오픈 이벤트처럼 접속이 순간적으로 몰리는 서비스를 운영하다 보면, 평소엔 멀쩡하던 Tomcat이 몇 초 동안 클라이언트에 Connection refused 를 뿌리는 장면을…
🔥 인기 글
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차)…