.java 파일들
.yml 파일들
active가 live면 live가,
active가 dev면 dev가 사용된다.
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:(Port 번호)/(Schema 이름)?serverTimezone=Asia/Seoul
username: (user 이름)
password: (password)
ddl-auto 종류
- create
애플리케이션 시작 시에 데이터베이스 테이블을 생성. 이미 테이블이 존재하는 경우에는 해당 테이블을 삭제하고 다시 생성. (drop + create)
- create-drop
애플리케이션 시작 시에 데이터베이스 테이블을 생성하고, 애플리케이션이 종료될 때 해당 테이블을 삭제.
- update
애플리케이션 시작 시에 데이터베이스 테이블을 업데이트. 새로운 엔티티가 추가되거나 기존 엔티티의 속성이 변경된 경우 해당 변경사항을 반영.
- validate
애플리케이션 시작 시에 데이터베이스 스키마가 현재 엔티티와 일치하는지 확인. 엔티티와 스키마가 일치하지 않으면 예외가 발생.
- none
자동으로 데이터베이스 스키마를 생성하지 않음. 개발자가 직접 DDL 스크립트를 작성해야함.
주의점
- 개발 단계(Development)
create-drop 또는 update: 개발자들이 빠르게 개발을 진행하고 테스트할 수 있도록 도움을 줌. create-drop는 애플리케이션을 실행할 때마다 테이블을 생성하고 종료 시에 삭제하므로 초기 데이터를 로딩하는 등의 용도로 유용함. update는 변경된 엔티티만 업데이트하므로 테이블을 자주 수정하는 경우에 편리함.
- 테스트 단계(Test)
create 또는 update: 테스트 환경에서는 테스트 케이스를 실행할 때마다 새로운 데이터베이스를 생성하거나 업데이트하는 것이 일반적임.
- 스테이징(Staging) 단계
update 또는 validate: 스테이징 환경에서는 프로덕션과 유사한 환경이므로 update나 validate를 사용하여 스키마를 업데이트하거나 검증할 수 있음. 이 단계에서는 개발자가 변경한 내용을 스테이징 환경에서 확인할 수 있도록 해야 함.
- 프로덕션(Production) 단계
validate 또는 none: 프로덕션 환경에서는 스키마 변경을 주의해서 관리해야함. 일반적으로는 마이그레이션 도구를 사용하거나, 변경된 내용을 수동으로 적용하는 것이 좋음.
[참고]
'YC TECH ACADEMY > projects' 카테고리의 다른 글
[Spring/Spring Boot] Spring Date JPA을 이용하여 특정 column 값 기준 오름차순/내림차순 정렬하기 (0) | 2023.11.28 |
---|---|
[Spring/Spring Boot] Spring Security로 인해 CSS 적용 안될 때 (0) | 2023.11.27 |