TestForge | Aidevops | 📊 Plogger ✍️ Blog 📚 Docs
plogger

AI DevOps Korea

AI 서비스 개발, 운영, 성능개선을 하나의 루프로 연결합니다

aidevops.kr에서 LLMOps, RAG, AI Agent, 관측성, 평가, 비용-성능 최적화를 실전 운영 관점으로 정리합니다.

데이터베이스 스키마 Expand-Contract 적용 가이드

· 수정 5월 9일

운영 데이터베이스에서 위험한 순간은 새 기능 배포보다 스키마 변경일 때가 많습니다. 컬럼 이름 하나 바꾸는 일도 애플리케이션, 배치, 리포트, 외부 적재 파이프라인까지 동시에 흔들 수 있기 때문입니다. 그래서 실전에서는 한 번에 바꾸기보다 expand-contract 방식으로 나눠서 움직입니다.

expand 단계에서 하는 일

  • 새 컬럼이나 새 테이블을 먼저 추가
  • 읽기는 구버전과 신버전을 모두 허용
  • 쓰기는 이중 기록 여부를 결정
  • 백필과 검증 작업을 분리

이 단계의 목표는 “새 구조를 도입해도 시스템이 아직 깨지지 않는 상태”를 만드는 것입니다.

contract 단계에서 하는 일

  • 구컬럼 읽기 제거
  • 오래된 쓰기 경로 차단
  • 백필 완료 검증
  • 최종 삭제 전 모니터링 기간 확보

삭제를 서두르면 가장 늦게 남아 있던 숨은 소비자가 사고를 냅니다.

결론

스키마 변경의 핵심은 DDL 문법이 아니라 순서입니다. expand-contract를 습관으로 만들면 배포는 조금 느려 보여도, 복구 비용과 장애 위험은 훨씬 작아집니다.

Continue Reading

다음으로 읽기 좋은 글

다음 탐색

이 주제를 시스템 관점으로 더 이어서 보기