반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[매일메일] 28. JPA의 ddl-auto 옵션은 각각 어떤 동작을 하고 어떤 상황에서 사용해야 할까요? 본문
스터디/AI 개발자가 공부하는 백엔드
[매일메일] 28. JPA의 ddl-auto 옵션은 각각 어떤 동작을 하고 어떤 상황에서 사용해야 할까요?
yun_s 2025. 5. 1. 20:15728x90
반응형
이 게시판에서는 매일메일이라는 시스템을 이용해 백엔드를 공부해보고자하는 AI 개발자가 정리해보고자 합니다.
Python이랑 비교하여 이해하기 쉽도록 합니다.
https://www.maeil-mail.kr/question/28
매일메일 - 기술 면접 질문 구독 서비스
기술 면접 질문을 매일매일 메일로 보내드릴게요!
www.maeil-mail.kr
용어 및 질문 이해하기
JPA의 ddl-auto 옵션은 각각 어떤 동작을 하고 어떤 상황에서 사용해야 할까요?
Spring Data JPA를 사용할 때, application.yml 또는 application.properties는 다음과 같이 작성한다.
spring:
jpa:
hibernate:
ddl-auto: update
ddl-auto는 데이터베이스 테이블을 애플리케이션이 실행될 때 어떻게 자동으로 생성하거나 수정할지 정하는 설정이다.
JPA가 실행되면, 내가 만든 Entity 클래스 구조랑 실제 DB 테이블 구조가 다른 경우가 있을 수 있다.
이 때, 그걸 자동으로 맞춰주는 설정이 ddl-auto다.
이를 통해, 애플리케이션이 실행될 때 DB 테이블을
- 만들지
- 만들었다가 삭제할지
- 수정할지
- 그냥 확인만 할지
를 정할 수 있다.
답변
옵션 | 하는 일 | 상황 |
none | 아무 것도 안 함 | 운영 환경에서 사용. 테이블 건드리지 않음 |
create | DB 테이블 싹 다 지우고 새로 만듦 | 개발 초기, 자주 구조 바꿀 때 |
create-drop | 실행 시 테이블 만들고, 종료 시 삭제 | 테스트할 때 |
update | 테이블 구조 맞춰줌 (컬럼 추가 등) | 개발 중에 자주 사용 |
validate | 테이블 구조가 맞는지만 체크, 안 맞으면 에러 | 운영 환경에서 안전하게 확인만 하고 싶을 때 |
간단하게 다음과 같이 설명할 수 있다.
- 운영 환경에선 none이나 validate
- 개발 환경에선 update
- 테스트에선 create-drop
- 완전 초기 개발 할땐 create
이번에는 이해하기 쉬웠다! 역시 Spring은 좋은 기능이 많이 있다고 생각된다. Pytorch dataset도 저런식으로 정리되면 좋을텐데..
728x90
반응형
'스터디 > AI 개발자가 공부하는 백엔드' 카테고리의 다른 글
[매일메일] 49. JPA의 N + 1 문제에 대해서 설명해주세요. (0) | 2025.05.07 |
---|---|
[매일메일] 29. 엔티티 매니저에 대해 설명해주세요. (1) | 2025.05.02 |
[매일메일] 27. Spring Data JPA에서 새로운 Entity인지 판단하는 방법은 무엇일까요? (1) | 2025.04.30 |
Comments