반응형 전체 글166 PostgreSQL EXPLAIN 읽기 — 20건 조회에 20만 행을 읽는 문제 줄이기 조회 결과는 20건인데 테이블은 20만 건을 읽고 있다면, 결과 건수만 보고 빠른 쿼리라고 판단하기 어렵다.EXPLAIN ANALYZE로 실제 읽기 경로를 보면 어디에서 일이 늘어났는지 알 수 있다.같은 고객의 결제 내역을 인덱스 추가 전후로 비교해 보자. 예제 DB 준비컨테이너 이름은 pg-explain, DB와 접속 계정은 모두 postgres다.Docker가 켜져 있으면 아래 명령으로 별도 DB를 만들 수 있다.예제 비밀번호는 이 컨테이너에서만 쓰며 외부 접속 포트는 열지 않는다. docker run -d --name pg-explain \ -e POSTGRES_PASSWORD=local-demo-only \ postgres:18docker exec pg-explain pg_isready -U .. 2026. 11. 14. 파이썬 SRT 자막 싱크 맞추기 영상과 자막이 처음부터 끝까지 똑같이 어긋난다면 자막마다 시간을 고칠 필요는 없다.전체 시간을 같은 간격만큼 옮기면 된다.여기서는 자막이 1.5초 늦게 나오는 상황을 -1500ms로 고쳐 별도 SRT 파일로 저장한다. 얼마나 옮길지 먼저 정하기말이 나온 뒤 자막이 보이면 음수, 자막이 먼저 보이면 양수를 넣는다.1초는 1000ms이므로 2초 늦추려면 2000, 0.8초 앞당기려면 -800이다.처음에는 맞지만 뒤로 갈수록 어긋나는 영상은 일정 이동만으로 해결되지 않는다.프레임 속도나 편집 길이 차이를 먼저 구분해야 하는 경우다. 입력은 UTF-8 SRT, 출력도 UTF-8이다.Python 3.9 이상만 있으면 되며 영상 파일 자체는 수정하지 않는다.번호, 시간 줄, 한 줄 이상의 자막으로 구성된 일반 SR.. 2026. 11. 14. 워해머 서바이버즈 티어·무기 조합 무기는 계속 늘어나는데 적이 잘 안 죽는다.보스는 살아 있고 뒤에서는 잡몹까지 밀려오니, 새 무기를 하나 더 고르면 나아질 것 같지만 업그레이드가 흩어지면 오히려 버티기 어려워진다.워해머 서바이버즈는 처음부터 가진 무기 하나를 진화시키고, 부족한 공격 범위를 두 번째 무기로 채우는 식으로 접근하는 편이 낫다.이번에는 Warhammer 40,000 쪽 초반 전투를 기준으로 캐릭터 선택, 무기 조합, 상자에서 진화가 나오지 않는 이유까지 정리했다.11월 10일 출시된 게임으로, 아래 내용은 Steam판 v2.1.6 기준이다.한국어를 지원하지만 아이템을 다른 공략과도 대조하기 쉽도록 영문 이름을 함께 적었다.처음에는 Malum Caedo로 진화 하나부터 완성처음 시작한다면 Malum Caedo와 Chainsw.. 2026. 11. 13. PostgreSQL 접속 수 초과 해결 — 열린 연결을 찾고 반환하기 접속 수가 꽉 찼다면 먼저 사용 중인 연결을 찾아 정리한다.이 예제에서는 report_app 계정의 두 연결을 종료해, 막혔던 세 번째 접속이 다시 열리는지 확인한다. 바로 이동문제 발생 · 해결 방법 · 실행 결과 · 해결 완료 · 실습 준비·전체 코드 "> 1. 문제 발생 — 세 번째 접속이 거절된다 report_app 계정의 접속 한도는 2개다.두 터미널이 이미 접속해 있어 세 번째 접속에는 다음 오류가 나온다.FATAL: too many connections for role "report_app" 이 메시지는 해당 계정의 한도 초과다.서버 전체의 max_connections를 올려도 계정 한도 2개는 그대로 남는다. "> 직접 실행할 준비 아래를 펼치면 준비 명령, 전체 코드와 오류별 해결 방법을.. 2026. 11. 13. Spring Boot 입력값 검증 — 빈 이름·잘못된 이메일을 400 오류로 돌려주기 이름이 비었거나 이메일 형식이 틀리면 요청을 400으로 막고, 어느 칸을 고쳐야 하는지 JSON으로 돌려준다.핵심은 요청 객체의 검사 규칙, @Valid, 오류 응답을 만드는 예외 처리기 세 가지다. 바로 이동문제 발생 · 해결 방법 · 실행 결과 · 해결 완료 · 실습 준비·전체 코드 "> 1. 문제 발생 — 잘못된 입력이 서버까지 들어온다 화면에서 입력을 막아도 API에 요청을 직접 보내면 그 검사를 거치지 않는다.서버에서 빈 이름과 잘못된 이메일을 함께 걸러야 한다.이 글은 입력값 검사와 오류 응답을 다룬다.한글 인코딩 오류나 회원 정보 저장은 다루지 않는다. "> 직접 실행할 준비 아래를 펼치면 준비 명령, 전체 코드와 오류별 해결 방법을 볼 수 있다. 더보기프로젝트 준비Java 17과 Sprin.. 2026. 11. 13. Python 파일명 일괄 변경·복원 — 미리 보고 바꾼 뒤 원래 이름으로 되돌리기 파일명을 바꾸기 전에 변경 목록을 보고, 적용한 뒤에는 저장한 기록으로 원래 이름을 되돌린다.원본 내용을 덮어쓰지 않고 파일 이름만 바꾸는 예제다. 바로 이동문제 발생 · 해결 방법 · 실행 결과 · 해결 완료 · 실습 준비·전체 코드 "> 1. 문제 발생 — 여러 파일을 바꾸면 원래 이름이 헷갈린다 메모.txt, 보고서.csv, 안내.txt를 문서_001.txt처럼 정리하려고 한다.바로 바꾸면 잘못된 순서나 접두어를 적용한 뒤 원래 이름을 되찾기 어렵다. "> 직접 실행할 준비 아래를 펼치면 준비 명령, 전체 코드와 오류별 해결 방법을 볼 수 있다. 더보기Python 3.9 이상에서 실행하며 별도 패키지는 필요 없다.하드 링크를 지원하는 APFS·ext4 등의 파일 시스템을 사용한다. exFAT에서는 .. 2026. 11. 12. 이전 1 2 3 4 ··· 28 다음 반응형