← 전체 글로 돌아가기

웹 개발

배포했을 때 데이터가 삭제되는 문제를 추적하는 방법

배포 후 사용자 데이터가 예상 없이 삭제되면, 마이그레이션이나 데이터 초기화 로직을 먼저 확인한다.

운영 중에는 작은 이상 신호도 빨리 분리해야 한다. 사용자 데이터가 갑자기 삭제되는 문제는 배포 과정에서 데이터 초기화 코드가 실행되었거나, 마이그레이션이 잘못된 경우가 많다.

배포 목표 파악

먼저 배포 시점에 어떤 변화가 있었는지 확인한다:

  • 데이터베이스 스키마가 변경되었는가?
  • 새 환경 변수나 설정이 추가되었는가?
  • 초기화 로직이 포함되어 있는가?

이런 질문들의 답이 원인을 찾는 데 큰 도움이 된다.

프로덕션 빌드 검토

프로덕션 빌드 과정을 다시 살펴본다:

npm run build

빌드 로그에서 경고나 에러가 없는지 확인한다. 특히 데이터 마이그레이션이나 초기화 스크립트가 자동으로 실행되는 경우가 있다.

데이터 손실 경로 추적

어떤 데이터가 어디서 사라졌는지 확인한다:

# 데이터베이스 백업 확인
ls -la /path/to/backups/

# 최근 변경 로그
journalctl -n 200 -u database-service

데이터베이스가 있다면, 배포 직전과 직후의 데이터를 비교한다. 백업이 있으면 차이를 명확히 볼 수 있다.

현재 상태 파악

  1. 모든 사용자의 데이터가 사라졌는가, 아니면 특정 조건의 데이터만 사라졌는가?
  2. 데이터 손실이 배포 과정에서 일어났는가, 아니면 배포 후 처음 요청 시에 일어났는가?
  3. 코드 변경과 데이터 손실 사이의 인과관계가 명확한가?

생각할 수 있는 원인들

  • 데이터베이스 reset 또는 seed 스크립트가 자동 실행됨
  • 환경 변수 설정 오류로 다른 데이터베이스에 연결됨
  • 마이그레이션 코드에서 데이터를 의도치 않게 삭제하는 쿼리 실행
  • 캐시 초기화 로직이 실제 데이터를 삭제함

빌드 결과 검증

문제 해결 후 다시 배포할 때는, 작은 변경 하나씩만 적용한다:

  1. 배포 전 현재 데이터를 백업한다.
  2. 한 가지 변경만 적용하고 재배포한다.
  3. 데이터가 제대로 유지되는지 확인한다.

마무리

한 번에 여러 코드를 수정하지 않는 것만으로도 원인 추적이 훨씬 쉬워진다. 특히 데이터 관련 배포는 신중하게 진행해야 한다.