spring.jpa.hibernate.ddl-auto 는 Spring Boot 애플리케이션에서 JPA 와 Hibernate를 사용할 때 데이터베이스 스키마 관리를 자동화하기 위한 설정이다.
애플리케이션이 시작할 시 데이터베이스 스키마를 자동으로 생성, 업데이트, 검증 또는 삭제하는 방법을 지정한다.
사용법은 application.properties 파일에 다음처럼 입력하면 된다.
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.ddl-auto 옵션의 주요 값은 5가지가 있다: none, create, create-drop, update, validate.
none: 기본값으로, 자동 DDL(Data Definition Language) 실행을 수행하지 않는다. 데이터베이스 스키마가 이미 존재하는 것으로 가정하고, 어떠한 변경도 적용하지 않는다.
create: 애플리케이션을 시작할 때마다 데이터베이스 스키마를 새로 생성한다.
기존에 존재하는 스키마는 삭제되고, 새 스키마가 생성된다.
(주로 개발 단계에서 사용되며, 데이터 손실이 발생할 수 있다)
create-drop: 애플리케이션 시작 시 데이터베이스 스키마를 생성하고, 애플리케이션이 종료될 때 스키마를 삭제한다.
(주로 테스트 목적으로 사용)
update: 데이터베이스 스키마를 현재 애플리케이션의 엔티티 상태에 맞게 업데이트한다.
기존 스키마는 유지되며, 필요한 변경사항만 적용된다.
(개발 및 테스트 단계에서 유용하다)
validate: 애플리케이션 시작 시, 데이터베이스 스키마가 JPA 엔티티와 일치하는지 검증한다. 일치하지 않으면 오류가 발생한다.
(프로덕션 환경에서 유용하다. 실제 데이터베이스 변경은 수행하지 않는다.)
혹여 필자처럼 create이나 update로 설정해놓고 개발하다가, none이나 validate으로 바꿔야 하는 걸 깜빡 잊고 그대로 실행하는 바람에 데이터베이스의 데이터가 날아가는 사람이 발생하지 않길 바란다.
그냥 혼자서 하는 실습이었기에 망정이지, 현장이었으면 눈앞이 깜깜해졌을 것...
'JAVA > SpringBoot' 카테고리의 다른 글
타임리프의 표현식과 예제 (0) | 2024.03.26 |
---|---|
타임리프(Thymeleaf)로 동적 웹 페이지 생성: 기본 설정 (0) | 2024.03.26 |
왜 Spring Boot 에서 JSP 대신 Thymeleaf 를 권장할까? (0) | 2024.03.25 |
JpaRepository 기능과 활용: Spring Data JPA의 이해 (0) | 2024.03.25 |
@SpringBootTest 를 활용한 Spring Boot 테스트 기법 (0) | 2024.03.25 |