Flyway 도입 배경
- 도입 배경
MOMO 플랫폼은 6명의 개발자가 6주 동안 협업하며 개발하는 프로젝트로, 다중 개발 환경(로컬, 개발, 운영)에서 데이터베이스 스키마 변경사항을 안전하고 일관되게 관리해야 했습니다. 수동 스키마 관리로 인한 개발자 간 불일치와 배포 시 데이터베이스 동기화 문제, CI/CD 파이프라인에서의 자동화 필요성이 있었습니다.
- 선택지
- JPA DDL Auto
- Spring Boot와 완벽한 통합으로 빠른 프로토타이핑 가능
- 자동 스키마 변경으로 인한 데이터 손실 위험
- 스키마 변경 히스토리 추적 불가능
- 수동 SQL 스크립트 관리
- 완전한 제어권과 복잡한 데이터 변환 로직 구현 가능
- 수동 실행 시 휴먼 에러 발생 위험
- 어떤 스크립트가 어느 환경에 적용되었는지 관리 복잡
- Flyway
- SQL 기반의 직관적 접근으로 빠른 학습
- 명확한 버전 관리와 순서 보장
- Spring Boot 완벽 통합과 CI/CD 파이프라인 자동화
- 마이그레이션 파일 변경 감지로 무결성 보장
- 최종 결정
JPA DDL Auto는 운영 환경에 부적합하고 버전 관리가 불가능해 제외했습니다. 수동 SQL 관리는 확장성과 안정성이 부족해 제외했습니다. 따라서 Flyway로 결정했습니다.