인프런 커뮤니티 질문&답변

Seo Hyun Park님의 프로필 이미지
Seo Hyun Park

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

기본 키 매핑

현업에서 데이터베이스 스키마 자동 생성 기능을 운영 장비에서 사용하지 않는 이유

작성

·

1K

·

수정됨

1

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예

[질문 내용]
데이터베이스 스키마 자동 생성 부분 강의 관련해서 궁금한 점이 생겨 질문 드립니다.

강의에서 생성된 DDL은 개발 장비에서만 사용해야 하며, 운영 장비에서는 사용하면 안 된다. 라고 말씀해주셨습니다. 그리고, 생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬 은 후 사용 이라고 강의 자료에 나와 있는데요.

  1. 그렇다면, 실제 현업에서는 운영 서버에 새로운 테이블을 create 하거나, 기존 테이블을 update(칼럼 추가 혹은 변경 등...) 하는 경우에 어떻게 하는지 궁금합니다.

    강의 내용 + 서칭에 따르면,

    로컬에서 DB 스키마 자동 생성 -> 검증 및 정제 -> 최종 스키마를 DB 툴을 이용해서 추출
    -> 최종 스키마인 "create table ~~"을 테스트 DB에 적용(이 때, JPA 를 통해서가 아닌, 스키마 자체를 적용해야 함)
    -> QA 진행 , 검증 및 정제 -> 최종 스키마를 DB 툴을 이용해서 추출
    -> 최종 스키마인 "create table ~~"을 테스트 DB에 적용(이 때, JPA 를 통해서가 아닌, 스키마 자체를 적용해야 함)을 운영 장비에 적용

    하는 방식으로 진행하는 걸까요?
    (물론, 여건에 따라, 테스트 서버도 JPA DB 스키마 자동 생성 기능으로 처리할 수도 있을 듯 합니다.)

  2. create 뿐만 아니라, update 또한 운영서버에 적용하면 안되며, update 또한 테스트서버에 적용하는 것은 지양한다고 하셨습니다.
    운영 서버의 소스코드가 (JPA DB 자동 스키마 생성기능을 통해) 테스트 서버, 운영 서버의 DB create, update 권한을 가진다는 것 자체에 대해 우려하시는 건가요? 아니면, DB 관련하여 컨트롤하는 기능 중, JPA 에서 설정하지 못하는 것이 있어서 그런건가요? 말씀해주신 결과적인 사건들을 통해 위험하다 는 것은 알겠는데, 그 구체적인 이유를 설명하라고 한다면, 아직 정확하게 말 할 수 없을 듯 하여, 질문 남깁니다.

긴 글 읽어주셔서 감사합니다.

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. Seo Hyun Park님

  1. 일반적으로 Create table 문은 직접 만든다고 생각하시면 됩니다. JPA가 만들어주는 것을 그대로 믿고 사용하면 안됩니다. (참고는 할 수 있습니다.)

  2. JPA가 만들어주는 컬럼을 변경하는 DDL 또한 그대로 믿고 사용하시면 안됩니다. 정확한 DDL을 확인하고 사용하셔야 합니다. 정확한 DDL을 만들어주지 못할 수도 있습니다. 사실 진짜 문제는 실무에서 컬럼을 추가하는 변경 작업은 DB에 따라서 다르지만 데이터가 많은 경우 테이블 생성에 많은 시간이 걸릴 수 있습니다. 그래서 DBA와 이야기를 나누고 작업을 진행해야 합니다. 그런데 애플리케이션에서 배포 시점에 컬럼을 자동으로 추가해버리면 예상하지 못하게 시간이 오래걸리는 문제가 발생할 수 있습니다.

감사합니다.

 

Seo Hyun Park님의 프로필 이미지
Seo Hyun Park
질문자

답변 감사합니다.

  • JPA가 만들어주는 DDL을 참고만 할 뿐, 그대로 사용하는 것은 위험하다.

  • DB 변경사항 적용 - 애플리케이션 배포 시점을 동일하게 진행하면 안 된다.

가 되는군요!

김영한님의 프로필 이미지
김영한
지식공유자

네 맞습니다. :)

Seo Hyun Park님의 프로필 이미지
Seo Hyun Park

작성한 질문수

질문하기