스프링부트는 JPA(Java Persistence API)를 사용하여 데이터베이스를 처리한다. JPA는 자바 진영에서 ORM(Object-Relational Mapping)의 기술 표준으로 사용하는 인터페이스의 모음이다.
JPA는 인터페이스이다. 따라서 인터페이스를 구현하는 실제 클래스가 필요하다. JPA를 구현한 대표적인 실제 클래스에는
하이버네이트(Hibernate)가 있다.
spring.jpa.hibernate.ddl-auto
설정에서 spring.jpa.hibernate.ddl-auto를 update로 설정했다. update와 같은 설정값에 대해서 간단히 알아보자.
none - 엔티티가 변경되더라도 데이터베이스를 변경하지 않는다.
update - 엔티티의 변경된 부분만 적용한다.
validate - 변경사항이 있는지 검사만 한다.
create - 스프링부트 서버가 시작될때 모두 drop하고 다시 생성한다.
create-drop - create와 동일하다. 하지만 종료시에도 모두 drop 한다.
개발 환경에서는 보통 update 모드를 사용하고 운영환경에서는 none 또는 validate 모드를 사용한다.