Spring Boot에서 DB 접근을 위해 Entity와 Repository를 만들고 테스트를 돌려보았는데, 오류가 발생했다. 오류코드를 살펴보니 DB에 테이블이 존재하지 않았기에 발생하는 오류였다. 따로 DB에 접근하여 테이블을 만들 수 있으니, 귀찮기때문에 검색을 통해 자동으로 테이블을 만드는 방법을 알아보았다. 그러던 도중 발견한 것이 spring.jpa.hibernate.ddl-auto
옵션이다.
application.properties에서 설정이 가능한 spring.jpa.hibernate.ddl-auto
옵션을 간단히 설명하면, WebApplication이 실행될 때 DBMS 스키마에 어떤 행위를 할 것인지를 정하는 옵션이다. 해당 옵션이 설정되어있으면, Spring은 EntityScan을 통해 @Entity
어노테이션이 붙은 클래스를 찾고, 해당 클래스의 데이터를 바탕으로 서버 시작 때(hibernate의 SessionFactory가 실행될 때) DDL문을 적용하여 DB에 적용한다.
spring.jpa.hibernate.ddl-auto
에는 5가지 옵션이 있으며, 그에 대한 설명은 다음과 같다.
개발 과정에서는 create
혹은 create-drop
옵션을 사용하여 DB를 다루는 일을 쉽게 할 수 있을 것 같다.