
개발자와 운영자를 위한 기술 아카이브 & 커뮤니티 — 기사 2,096건과 게시판이 기다립니다.
권한은 맞는데 Permission denied가 날 때
Rocky나 AlmaLinux에 올린 서비스가 파일을 못 읽는다고 Permission denied를 뱉는데, ls -l 로 봐도 소유자와 퍼미션이 다 맞는 경우가 있다. 파일 권한을 아무리 손봐도 그대로다. 이럴 때 범인은 거의 SELinux다. 예전…
🧵 최근 게시판 토픽
게시판 전체 보기 →최근 글
전체 보기 →chrony로 서버 시계 틀어짐 잡기
장애 티켓을 열어보면 원인이 애플리케이션이 아니라 시계인 경우가 종종 있다. 두 서버의 로그를 합쳐 시간순으로 보려는데 순서가 뒤엉켜 있거나, 멀쩡한 인증서인데 TLS 핸드셰이크가 'certific…
쿠버네티스에서 GPU로 LLM 추론 서빙하기
GPU 노드를 쿠버네티스에 붙여달라는 요청은 요즘 거의 LLM 추론 때문에 온다. 모델 하나 띄우자고 A100 한 장을 통째로 파드에 묶어두면 아깝고, 그렇다고 CPU로 돌리자니 토큰이 안 나온다.…
HardwareNEC PC-9801을 Neko Project II로 되살리기
용산 중고 매장을 돌다 보면 가끔 정체 모를 일본 PC가 섞여 나온다. 두툼한 본체에 한자가 박힌 키보드, 뒷면에는 생소한 확장 슬롯. 90년대 초 일본 게임을 돌리겠다고 어렵게 들여온 NEC PC…
LLM 응답을 깨지지 않는 JSON으로 강제하기
사내에 vLLM이나 Ollama로 모델을 띄워놓고 거기에 데이터 추출이나 함수호출을 맡기다 보면, 결국 같은 자리에서 막힌다. 모델이 뱉은 텍스트를 json.loads() 에 넣는 순간이다. 열에 …
Hardwareaibo를 두 마리 키우면 달라지는 것
일본 오너 인터뷰 중에는 첫째가 입원(수리)할까 걱정하던 차에 둘째를 들였다는 이야기가 있다. 고장 걱정에서 다두 생활이 시작되기도 한다는 점이 흥미로워서, 이번 글은 aibo를 여러 마리 키우는 …
자바 스레드 덤프 분석하는 법
장애 대응을 하다 보면 "서버는 살아 있는데 요청이 안 돌아온다"는 연락을 받을 때가 있다. 로그에는 에러가 한 줄도 없고, 재시작하면 멀쩡해져서 원인은 확인도 못 한 채 넘어간다. 재시작 버튼을 …
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를 붙여 놓고 나면 꼭 한 번은 겪는 장면이 있다. 질문은 멀쩡한데 모델이 엉뚱한 문단을 근거로 답을 지어낸다. 로그를 열어 보면 벡터 검색이 가져온 상위 문서부터 질문과 미묘하게 어긋나 있다…
🔥 인기 글
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차)…