들어가며"운영 DB 스키마가 개발 환경이랑 달라요." 배포일 아침에 이 말을 들으면 등골이 서늘해집니다. 누군가 ALTER TABLE을 직접 운영 DB에 실행했고, 그 변경이 코드 저장소에는 반영되지 않은 것입니다. 더 큰 문제는 개발자 A가 추가한 컬럼과 개발자 B가 추가한 컬럼이 로컬에서는 각각 잘 동작하는데, 통합하면 스키마가 충돌하는 상황입니다.3~7년차 백엔드 개발자라면 한 번쯤 겪어보셨을 이 문제의 근본 원인은 DB 스키마 변경을 코드처럼 버전 관리하지 않기 때문입니다. 코드는 Git으로 관리하면서 스키마는 수동으로 관리하면, 환경 간 불일치와 배포 사고가 반복됩니다.이 글에서는 Java/Spring 진영에서 가장 많이 사용되는 DB 마이그레이션 도구인 Flyway의 설정부터 실무 운영 전략까..