인프런 커뮤니티 질문&답변
배포 후 Entity 수정 관련
해결된 질문
작성
·
37
1
ddl을 validate로 하고 개발을 진행하다가 Entity가 추가되거나 수정될 경우에는 어떤 식으로 개발서버와 운영서버의 database table 싱크를 맞출 수 있나요 ??
실무에서는 어떤 방식으로 마이그레이션을 진행하는지 궁금합니다!!
답변 1
0
안녕하세요 석석님.
ddl-auto=validate 는 엔티티가 변경되더라도 DB 구조는 자동으로 수정되지 않고 검증만 하는 옵션인데요.
애플리케이션과 DB의 상태를 정말 정확하게 맞출때는 validate를 사용할수도있지만, 실무에서는 none 옵션을 사용하기도 합니다. 이유는 운영 환경에서 애플리케이션 기동 자체가 스키마 검증 실패로 막히는 상황을 피하기 위함입니다.
실제 운영에서는 DB 변경이 마이그레이션 도구(Flyway, Liquibase, 또는 사내 DBA가 만들어놓은 절차)를 통해 이미 관리되고 않을 것이기 때문에, JPA가 추가로 검증까지 수행할 필요가 없는 경우가 많습니다. 오히려 컬럼 하나 차이로 서비스가 아예 올라오지 않는 문제가 더 큰 장애로 이어질 수 있어, JPA의 역할을 명확히 분리하기 위해 none 옵션을 선택하는 경우도 많습니다.
운영 DB 의 스키마가 바뀌는 작업은 데이터를 보호함에있어 신중히 이루어져야할 작업입니다. 예를 들어 컬럼이 추가된다면, DB 선 적용후 애플리케이션을 배포해야하며, 컬럼이 삭제된다면 애플리케이션에서 먼저 컬럼삭제 배포후 DB 에 후적용하는게 필요합니다. 이를 통해 배포 과정 중 서비스가 중단되지않고 상위, 하위호환성을 유지할수있게 말이죠.
그래서 이 과정을 자동화 하기 보다 개발자가 직접 보면서 배포하는 경우가 많습니다. 신중히 처리하고, 예상치 못한 문제 발생시 즉시 대응할 수 있기 위함이예요.
도움이되셨으면 좋겠습니다.
감사합니다.





친절한 답변 감사합니다 ㅠㅠ 도움이 진짜 많이 됐습니다 :)