백엔드 커리큘럼 심화: PostgreSQL LISTEN/NOTIFY, 내구성 큐가 아닌 깨우기 신호로 안전하게 쓰는 법
PostgreSQL LISTEN/NOTIFY를 메시지 브로커나 작업 큐로 오해하지 않고, 커밋과 함께 전달되는 저지연 wake-up 신호로 사용하는 설계·복구·커넥션 풀·관측 기준을 정리합니다.
PostgreSQL LISTEN/NOTIFY를 메시지 브로커나 작업 큐로 오해하지 않고, 커밋과 함께 전달되는 저지연 wake-up 신호로 사용하는 설계·복구·커넥션 풀·관측 기준을 정리합니다.
PostgreSQL Row Level Security를 공유 테이블 SaaS에 적용할 때 tenant context, SET LOCAL, 커넥션 풀 재사용, role 분리, 정책 테스트를 어떻게 묶어야 하는지 정리한 운영 플레이북입니다.
DB 비밀번호·토큰을 교체할 때 애플리케이션 커넥션 풀을 끊지 않고 전환하는 방법과, 이중 자격증명·롤백·검증 기준을 숫자 중심으로 정리합니다.
DB 풀과 HTTP 클라이언트 풀을 감으로 늘리다 장애를 키우지 않도록, 커넥션 풀 사이징과 포화 해석 기준을 숫자 중심으로 정리합니다.
QA에서 올라온 6건의 소견 — Pool race, credential 미갱신, XFF spoofing, reader 격리 실패, 캐시 write-only, 설정 오류 — 을 분석하고 수정한다.
QA 2차 소견 5건 — boundWriter cross-pool 오염, extended cache 파라미터 무시, Pool.Close outstanding borrow, writer CB reload 누락, watcher startup race — 을 분석하고 수정한다.
QA 3차 소견 6건 — fallback 경로 cross-pool 오염, extended cache 포맷 충돌, 깨진 연결 Release, Pool.Acquire close race, boundWriter discard 누락, circuit breaker 일관성 — 을 분석하고 수정한다.
단일 pgmux 인스턴스에서 여러 PostgreSQL 데이터베이스를 동시 프록시하는 Multi-Database Routing을 구현한다. DatabaseGroup 추상화, per-DB 풀/밸런서 격리, 캐시 키 혼합까지.
세션 상태 추적으로 불필요한 DISCARD ALL을 건너뛰고, RouteWithTxState로 lock 횟수를 줄이고, 벤치마크 방법론을 개선한다.
pgmux에서 발견된 두 가지 CRITICAL 버그 — 에러 시 오염된 커넥션이 풀에 반납되는 Protocol Desync와, 단일 panic이 전체 서버를 크래시시키는 Global Panic Vulnerability — 를 분석하고 수정한다.