코딩과 결혼합니다

[JPA] 데이터베이스 스키마 자동 생성, DDL 생성 기능 본문

2세/JPA

[JPA] 데이터베이스 스키마 자동 생성, DDL 생성 기능

코딩러버 2024. 2. 7. 17:10
728x90

JPA

자바에서 데이터베이스와의 상호 작용을 담당하는 ORM 프레임 워크이다.
JPA를 사용하면 개발자는 데이터베이스에서 직접 SQL을 작성하거나 실행하는 대신, 자바 객체와 데이터베이스 테이블 사이의 매핑을 정의할 수 있다.

 

데이터베이스 스키마 자동 생성

JPA의 매핑을 기반으로 데이터베이스 스키마를 자동으로 생성해 주는 것으로 
주요 옵션 설정에는 create, update, validate, none 등이 있다.

 

주의해야 할 점

create
(개발초기)
애플리케이션을 실행할 때마다 기존 테이블을 삭제하고 새로운 테이블 생성
update  
(개발초기, 테스트서버)
애플리케이션을 실행할 때마다 데이터베이스 스키마를 자바 엔티티와 동기화한다. 기존 데티어 유지, 필요한 테이블이나 컬럼 생성
validate
(테스트서버, 운영서버)
애플리케이션 실행 시, 데이터베이스 스키마를 검증한다. 불일치가 발견되면 오류를 발생 시킨다.
none
(운영서버)
자동 생성 기능을 사용하지 않는다. 모든 데이터베이스 스키마는 개발자가 직접 관리한다.

 

실제 운영 환경에서는 대량의 중요한 데이터를 관리하고 있기 때문에, 시스템이 자동으로 스키마를 변경하게 되면 예측하지 못한 데이터 손실의 위험이 크다. 그러므로 운영 장비에는 절대 create, create-drop, update를 사용하면 안 된다.

 

DDL 생성 기능

DDL(Data Definition Language)은 '데이터 정의 언어'라는 뜻으로, 데이터베이스의 구조를 만들거나 변경하는 데 사용되는 명령어들을 말한다. 예를 들어, 테이블을 생성하거나 변경, 삭제 하는 등의 작업을 할 때 사용하는 SQL 명령어들이 DDL에 해당한다.

DDL 생성 기능은 DDL을 자동 생성할 때만 사용되고 JPA의 실행 로직에는 영향을 주지 않는다.
제약 조건 추가
@Column(nullable = false, length = 10)

유니크 제약조건 추가
@Table(unipueConstraints = {@UniqueConstraint(name = "NAME_AGE_UNIQUE",
					columnNames = {"NAME","AGE"})})