Go로 PostgreSQL 프록시 만들기 (17) - Channel Blocking과 Connection Poisoning 버그 수정
Webhook 동기 호출이 Audit 이벤트를 마비시키는 Channel Blocking과, 죽은 커넥션이 풀에 반환되는 Connection Poisoning 버그를 분석하고 수정한다.
이 페이지는 블로그의 전체 글을 학습, 트렌드, 프로젝트 관점으로 빠르게 훑기 위한 허브입니다. 글 수가 늘어나면 최신 글만 따라가서는 맥락이 끊기기 쉬워서, 어떤 독자가 어떤 순서로 읽으면 좋은지 한눈에 잡을 수 있게 구조를 정리해 두는 편이 더 낫다고 생각했습니다.
특히 이 블로그는 단순 뉴스 요약보다, 실무 의사결정에 바로 연결되는 기준을 남기는 데 초점을 두고 있습니다. 그래서 같은 주제라도 “개념 설명”, “운영 관점 해석”, “프로젝트 구현 경험”이 섞여 있습니다. 아카이브를 볼 때는 최신순보다도, 지금 내게 필요한 읽기 목적이 무엇인지 먼저 정하고 들어오는 편이 효율적입니다.
최근 개발 트렌드 글부터 2, 3편 읽는 방식이 가장 빠릅니다. 단순히 새 기술 이름을 외우기보다,
를 같이 보는 데 초점을 맞추면 좋습니다.
바로 들어가기 좋은 글:
학습용 글은 용어 설명에서 끝나지 않고, 실제 시스템 설계나 장애 대응에 연결되는 예시를 같이 넣는 편입니다. 그래서 익숙한 주제라도 “왜 이 개념이 운영에서 중요해지는지”를 다시 정리할 때 읽기 좋습니다.
추천 진입 순서:
이 순서로 보면 읽은 내용이 머릿속에 더 오래 남습니다.
프로젝트 글은 결과만 나열하기보다, 중간에 부딪힌 문제와 설계가 바뀐 이유를 같이 남겨 두는 쪽을 선호합니다. 그래서 완성된 정답보다는 생각이 바뀌는 과정을 보고 싶은 분에게 더 잘 맞습니다.
대표 시리즈:
이 흐름은 “AI가 코드를 더 빨리 쓴다”를 넘어서, 팀이 어떻게 안전하게 더 많이 처리할 것인가를 고민할 때 특히 유용합니다.
이렇게 보면 개념이 추상적으로만 남지 않고, 실제 설계 기준으로 연결됩니다.
프로젝트 글은 앞뒤 문맥이 이어지는 경우가 많아서, 검색으로 한 편만 읽기보다 관련 글을 연속해서 보는 편이 훨씬 낫습니다. 특히 PGMUX, Simple Queue Service 같은 시리즈는 문제 발견 → 설계 수정 → 운영 관점 재정리 순서로 보면 흐름이 잘 보입니다.
최근 AI 운영 글은 서로 따로 읽어도 되지만, 아래 순서로 보면 입력, 실행, 검증 통제가 한 흐름으로 이어집니다.
이 순서는 “에이전트를 어떻게 더 똑똑하게 만들까"보다, 팀이 어떻게 더 안전하게 운영 품질을 유지할까에 초점을 맞출 때 특히 유용합니다.
필요한 주제가 정해져 있다면 상단 검색과 태그 필터를 먼저 쓰는 게 가장 빠르고, 방향을 아직 못 정했다면 위의 추천 읽기 흐름 중 하나를 골라 따라가면 됩니다.
Webhook 동기 호출이 Audit 이벤트를 마비시키는 Channel Blocking과, 죽은 커넥션이 풀에 반환되는 Connection Poisoning 버그를 분석하고 수정한다.
프록시 내부 처리 단계를 OpenTelemetry Span으로 계측하고, fsnotify로 설정 파일 변경을 자동 감지하여 무중단 리로드하는 과정을 다룬다.
readers 설정을 선택사항으로 변경하여 Primary 1대만으로도 풀링+캐싱을 사용할 수 있게 한 과정과, 오픈소스 프로젝트의 사용성에 대한 고민을 다룬다.
Go의 mutex와 channel을 조합해 PostgreSQL 프록시용 커넥션 풀을 설계·구현한다. acquire/release 흐름, timeout, 헬스체크, 운영 체크리스트까지 실전 관점으로 정리했다.
설정 파일 Hot Reload 시 concurrent map read/write로 프록시가 즉사하는 Critical 버그를 분석하고, sync.RWMutex로 수정한다.
쿼리를 파싱해서 Writer/Reader로 자동 분산하고, 트랜잭션 추적과 replication lag까지 대응하는 라우팅을 구현한다.
LRU 캐시를 직접 구현하고, 쓰기 시 테이블 기반으로 캐시를 자동 무효화하는 전략을 만든다.
독립적으로 만든 컴포넌트들을 프록시 서버에 통합하고, Docker 환경에서 E2E 테스트로 검증한 뒤, 전체 프로젝트를 돌아본다.
프록시를 운영 가능한 수준으로 고도화한다. Prometheus 메트릭 계측, Extended Query Protocol의 Prepared Statement reader 라우팅, Admin API를 구현한다.
QA 리뷰에서 발견된 Critical/Major 버그 4건을 수정하고, 프록시 수평 확장을 위한 Redis Pub/Sub 캐시 무효화를 구현한다.