웹 개발
배포 전에 확인해야 할 관계형 데이터 설정
데이터베이스의 외래키나 제약 조건이 제대로 설정되지 않으면 배포 후 예상치 못한 에러가 발생할 수 있다. 배포 전 체크 방법을 정리했다.
웹 애플리케이션을 배포하기 전에는 데이터베이스 설정을 꼼꼼히 확인해야 한다. 특히 테이블 간의 관계와 제약 조건이 제대로 설정되어 있는지 봐야 한다.
빌드와 마이그레이션 순서
배포 전에는 로컬에서 먼저 빌드를 완료하고 마이그레이션을 실행해야 한다. 로컬에서 문제가 없어야만 서버에서도 성공할 가능성이 높다.
npm run build
빌드가 성공한 후 실제로 마이그레이션을 실행할 때 에러가 없는지 확인한다. 로컬 환경에서 이 과정을 한 번 더 거치는 것만으로도 많은 문제를 예방할 수 있다.
데이터 설정의 일관성
데이터베이스 설정이 헷갈리기 쉬운 이유는 여러 개의 파일에 산재되어 있기 때문이다. ORM 스키마 정의, 마이그레이션 파일, 실제 서버의 상태가 모두 일치해야 한다.
- ORM 스키마에는 관계가 정의됐는가
- 마이그레이션 파일에는 외래키가 제대로 추가됐는가
- 실제 DB에 적용됐는가
로컬과 서버 환경 차이
로컬 개발에서는 SQLite나 간단한 설정을 쓰지만, 서버에서는 PostgreSQL이나 MySQL을 쓸 수 있다. 데이터 타입이나 제약 조건이 데이터베이스마다 다를 수 있다.
실제 서버 배포 전에 로컬에서라도 실제 서버와 같은 DB 소프트웨어로 테스트하는 게 좋다.
사용자 데이터에 미치는 영향 파악하기
마이그레이션이 기존 데이터를 변경한다면 어떻게 바뀔지 미리 예상해야 한다. 예를 들어 컬럼 타입을 변경하면 기존 데이터가 손상될 수 있다.
- 현재 DB 상태를 백업한다.
- 마이그레이션을 백업본에 시뮬레이션한다.
- 실제 데이터가 어떻게 변할지 본다.
롤백 계획 세우기
만약 배포 후 문제가 생기면 이전 상태로 돌려야 한다. 마이그레이션을 되돌릴 수 있는 방법을 미리 준비해야 한다. 예를 들어 Prisma에서는 prisma migrate resolve 명령으로 마이그레이션 상태를 조정할 수 있다.
체계적인 확인 과정을 거치면 배포 후 데이터 문제로 인한 긴급 상황을 많이 줄일 수 있다.