반응형 전체 글161 파이썬 파일명 일괄 변경과 복원 파일 몇 개면 이름을 하나씩 고치면 되지만, 수십 개를 같은 형식으로 맞추려면 이야기가 달라진다.번호를 잘못 붙인 뒤에는 어떤 파일이 원래 어떤 이름이었는지도 헷갈린다. 그래서 바꿀 이름을 먼저 보여 주고, 확인한 뒤 적용하도록 만들었다.이전 이름과 파일 내용의 해시를 함께 남겨 두면 같은 내용인지 대조한 뒤 원래 이름으로 돌아갈 수 있다. 파일을 바꾸기 전에 정할 것예제 폴더는 samples, 바꿀 접두어는 문서다.폴더 바로 아래의 일반 파일만 이름순으로 정렬하고 문서_001.txt처럼 번호를 붙인다.숨김 파일과 하위 폴더는 제외하며 확장자는 마지막 점 뒤의 부분을 유지한다.압축본.tar.gz라면 마지막 확장자 .gz가 남으므로 복합 확장자를 보존해야 하는 자료에는 그대로 적용하지 않는다. Python.. 2026. 11. 12. PostgreSQL 느린 쿼리 찾기 DB가 느리다는 말만으로는 어느 SQL을 고쳐야 할지 알기 어렵다.한 번 오래 걸린 쿼리와 짧게 수천 번 실행된 쿼리도 구분해야 한다.이럴 때 pg_stat_statements를 켜 두면 쿼리별 호출 횟수와 누적 실행 시간을 함께 볼 수 있다. 여기서는 주문 합계를 세 번 조회한 뒤 통계가 어떻게 쌓이는지 살펴본다.목표는 가장 큰 숫자를 무작정 줄이는 것이 아니라, 실제로 비용을 많이 쓰는 SQL을 찾는 것이다. 예제 DB 준비컨테이너 이름은 pg-pgstat, DB와 접속 계정은 모두 postgres다.Docker가 켜져 있으면 아래 명령으로 별도 DB를 만들 수 있다.예제 비밀번호는 이 컨테이너에서만 쓰며 외부 접속 포트는 열지 않는다. docker run -d --name pg-pgstat \ -.. 2026. 11. 12. PostgreSQL AI 전용 DB 설정 환불 안내를 고쳤는데 예전 메뉴가 검색된다.원문과 검색 벡터를 함께 바꾸지 않았을 때 생기는 문제다. AI 전용 DB를 따로 둘 때는 저장 공간보다 문서가 들어오고 바뀌는 순서를 먼저 정하는 편이 좋다.문서를 넣는 계정과 검색하는 계정을 나누고, 새 문장과 벡터가 함께 반영되도록 구성해 보자.AI DB의 대표적인 사용 방법용도저장하는 것검색한 뒤 하는 일문서 기반 답변(RAG)문서 조각·원문 위치·개정 번호·임베딩관련 원문을 LLM에 전달하고 답변에 출처 연결유사 상품·콘텐츠 찾기상품이나 콘텐츠의 속성과 임베딩가까운 후보를 찾은 뒤 판매 상태·재고 등으로 제한키워드와 의미 검색 결합본문·검색용 색인·임베딩정확한 코드 검색과 의미 검색의 순위를 함께 사용이번 글에서는 첫 번째인 RAG용 저장소를 만든다.D.. 2026. 11. 11. PostgreSQL을 AI DB로 쓰는 이유 — pgvector로 한국어 의미 검색 만들기 검색창에 “돈을 돌려받고 싶어요”라고 입력했는데 환불 안내가 나오지 않는다면, 문서가 없는지보다 검색 방법부터 살펴볼 만하다.문서에는 “결제 취소와 환불”이라고 적혀 있어서 질문과 같은 문구만 찾는 방식으로는 놓칠 수 있다. 문장을 숫자 배열로 바꾼 뒤 가까운 문서를 찾으면 표현이 달라도 관련 안내를 검색할 수 있다.이 숫자 배열을 임베딩이라고 부르며, PostgreSQL에 pgvector를 추가하면 원문과 임베딩을 같은 테이블에 저장하고 SQL로 검색할 수 있다.PostgreSQL을 AI 앱에 쓰기 좋은 이유기존 앱이 PostgreSQL을 쓰고 있다면 회원·상품·문서 데이터를 둔 곳에 의미 검색도 붙일 수 있다.검색용 DB를 하나 더 만들기 전에, 지금 쓰는 SQL과 백업 체계 안에서 시작할 수 있다는.. 2026. 11. 10. PostgreSQL 백업·복구 — 삭제된 데이터 되살리고 삼중화 다시 구성하기 Master 서버에서 주문을 지웠더니 복제 서버 두 대에서도 주문이 사라졌다.서버가 세 대여도 삭제 명령까지 똑같이 전달되기 때문에, 복제만으로는 잘못 지운 데이터를 되돌릴 수 없다. 이번에는 전체 백업을 먼저 남기고, 삭제 직전까지의 변경 기록을 다시 적용해 주문을 복구했다.복구한 서버의 데이터를 확인한 뒤 새 Master 서버로 전환하고, 복제 서버 두 대를 다시 연결하는 데까지 이어간다.복제와 백업은 맡은 일이 다르다상황필요한 준비Master 서버 한 대가 멈춤복제 서버 승격과 앱 연결 주소 전환실수로 DELETE·UPDATE 실행전체 백업과 사고 전 시점까지 이어지는 WALDB 장비와 디스크를 함께 잃음다른 장비나 저장소에 보관한 백업·WAL·설정 파일WAL은 PostgreSQL이 변경 내용을 기.. 2026. 11. 9. PostgreSQL 이중화·삼중화 설정 — 복제부터 주 서버 전환까지 DB를 세 대 띄워도 Master 서버가 멈추면 새 데이터를 저장할 곳이 사라진다.복제 서버 가운데 어느 한 대를 새 Master로 바꾸고, 나머지 서버와 앱의 연결도 함께 옮겨야 다시 저장할 수 있다. PostgreSQL의 Master(Primary) 서버에 복제 서버 한 대를 붙이면 이중화, 두 대를 붙이면 삼중화 구성이 된다.이번에는 복제 서버를 하나씩 중지하고 Master도 교체한 뒤, 새 Master 서버 1대와 복제 서버 2대로 다시 구성했다. 먼저 Docker를 실행하고 터미널을 연다.아래 명령으로 실습용 주문 테이블을 만들고, 복제와 서버 전환을 순서대로 진행한다.먼저 세 대의 역할부터 나누기컨테이너처음 역할전환 뒤 역할pg-ha-primary쓰기·읽기 Master 서버중지 상태 유지pg-.. 2026. 11. 8. 이전 1 2 3 4 ··· 27 다음 반응형