**PostgreSQL 무중단 스키마 변경을 위한 실무 가이드**

- PostgreSQL 스키마 변경은 구버전과 신버전 애플리케이션이 함께 동작하도록 단계적으로 배포하는 것이 핵심. 데이터베이스가 켜져 있어도 요청 지연과 오류, 쓰기 중단이 발생하면 무중단으로 볼 수 없음  
- 확장-축소(expand-contract) 패턴으로 새 구조 추가, 기존 데이터 이전, 읽기와 쓰기 전환, 검증, 기존 구조 제거를 분리. 컬럼 이름 변경도 새 컬럼과 이중 쓰기를 거쳐 여러 릴리스에 걸쳐 진행  
- 스키마 변경이 잠금을 기다리는 동안에도 뒤따르는 쿼리가 막힐 수 있음. 짧은 `lock_timeout`으로 대기를 제한하고, 동시 인덱스 생성과 제약 조건의 추가/검증 분리로 차단 시간을 줄임  …

[https://news.hada.io/topic?id=35501](https://news.hada.io/topic?id=35501)