본문 바로가기
서비스 웹 서비스 개발 앱 개발 AI 알고리즘 개발 AI 컨설팅 AI 마케팅 프로젝트 인사이트 회사소개 고객게시판
데이터·아키텍처 3 MIN READ

서비스를 멈추지 않는 DB 변경의 확장·축소 순서

Category
데이터·아키텍처
Published
Read
3분
Author
네이처프랙탈
서비스를 멈추지 않는 DB 변경의 확장·축소 순서 대표 이미지

운영 DB의 컬럼을 바로 이름 바꾸거나 삭제하면 구 버전 애플리케이션이 아직 그 필드를 읽고 있을 수 있습니다. 무중단 변경은 확장과 축소를 여러 배포로 나눕니다.

데이터 흐름의 경계를 확인한다

첫 단계는 새 컬럼이나 테이블을 추가하되 기존 읽기·쓰기가 계속 동작하도록 만드는 것입니다. 기본값과 null 허용 여부가 큰 테이블의 잠금이나 백필 비용에 영향을 줄 수 있습니다. 실제 DB 엔진의 변경 방식도 확인해야 합니다.

실패와 중복 처리를 정한다

전환 기간에는 새 버전과 구 버전이 동시에 존재할 수 있습니다. 쓰기 경로를 어디에 둘지, 데이터를 양쪽에 동기화할지, 언제 새 읽기 경로로 바꿀지 정합니다. 이중 쓰기를 하면 실패 시 불일치 복구 방법도 필요합니다.

서비스를 멈추지 않는 DB 변경의 확장·축소 순서의 실무 적용 단계 도식
실무 적용 흐름을 세 단계로 정리한 설명용 도식입니다.

작은 범위에서 재처리한다

새 필드의 과거 데이터는 배치로 채우고 원본과 대조합니다. 모든 인스턴스가 새 경로를 사용하고 되돌리기 기간이 끝나기 전에는 옛 필드를 삭제하지 않습니다. 배포 순서를 자동 점검할 수 있게 체크리스트를 둡니다.

지연과 불일치를 관측한다

새·구 필드 불일치 건수, 백필 진행률, 오래된 앱 인스턴스 수, DB 잠금 시간을 봅니다. 코드가 새 필드를 쓰더라도 배치 작업이나 관리자 도구가 옛 필드를 참조할 수 있습니다. 사용처 검색과 런타임 관찰을 함께 해야 합니다.

서비스를 멈추지 않는 DB 변경의 확장·축소 순서의 실패 신호와 관찰 지표 도식
실패 신호와 관찰할 지표를 구분한 설명용 도식입니다.

복구 절차를 유지한다

최종 삭제는 가장 마지막 단계입니다. 롤백 계획이 구 컬럼에 의존하는지 확인하고, 삭제 전 백업과 복구 절차를 시험합니다. 스키마 변경을 한 커밋으로 끝내려는 압박보다 실제 서비스 공존 기간을 설계하는 일이 중요합니다.

현장에 적용할 때의 순서

  1. 호환되는 새 구조 먼저 추가
  2. 백필·읽기 전환·구조 삭제 분리
  3. 구·신 앱 공존 기간 테스트

주의할 실패: 추가와 삭제를 한 배포로 묶기

관찰할 지표: 불일치·백필·오래된 인스턴스

적용 전 체크리스트

  • 호환되는 새 구조 먼저 추가
  • 백필·읽기 전환·구조 삭제 분리
  • 구·신 앱 공존 기간 테스트

참고 자료

PostgreSQL — ALTER TABLE. 스키마 변경 명령과 DB 동작은 PostgreSQL 공식 문서를 참고했습니다. 확장·전환·축소 순서는 적용 제안입니다.

이미지와 도식은 이해를 돕기 위한 개념 시각화입니다. 특정 고객의 실제 설비·데이터·화면을 재현한 것이 아닙니다.

#DB마이그레이션 #무중단배포 #확장축소 #스키마변경 #데이터백필 #네이처프랙탈 #시스템설계 #서비스운영 #안정성 #데이터활용

이 주제를 실제 시스템으로 옮기려면 웹 서비스 개발 살펴보기

/ 다음 단계

이런 문제, 직접 겪고 계신가요?

글로 정리한 방법을 실제 환경에 맞춰 적용하는 일까지 함께 하겠습니다.

영업일 기준 3일 이내 회신 · 상담 및 범위 견적 무료