Backend/Spring
[Spring Boot] 공부하면서 정리해가는 yml 설정
JOYERIM
2022. 12. 22. 12:57
앞으로 Spring Boot 공부하면서 계속 추가할 예정입니다.
▪ MySQL
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/{database}?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
username: {이름}
password: {비밀번호}
▪ JPA
spring:
jpa:
defer-datasource-initialization: true
show-sql: true
hibernate:
ddl-auto: create
generate-ddl: true
- defer-datasource-initialization
Hibernate 초기화 이전에 SQL 스크립트를 실행할지를 설정할 수 있다.
즉, true로 설정하면 Hibernate 초기화 전에 쿼리가 실행되면서 데이터를 생성할 수 있다.
- show-sql
Hibernate가 DB에 수행하는 모든 쿼리문을 콘솔에 출력한다.
- ddl-auto
개발 초기에는 create 또는 update 옵션을 사용하지만
실제 서비스 배포 시에는 절대로 create, create-drop, update 옵션을 사용하면 안된다.
테스트 서버는 update 또는 validate를 이용하고 스테이징과 운영 서버는 validate 또는 none을 사용한다.
즉, 스테이징과 운영 서버에서는 테이블 생성 및 컬럼 추가, 삭제, 변경은 데이터베이스에서 직접하며, none을 사용하거나 validate를 이용해 정상적인 매핑 관계만 확인해야 한다.
- generate-ddl
spring.jpa.hibernate.ddl-auto 속성을 사용할지 말지를 결정하는 옵션이다.
jpa는 데이터베이스 스키마를 자동으로 생성하는 기능을 지원한다.
기본값이 false이기 때문에 JPA에 의한 자동 생성 기능을 사용하려면 true로 바꾸고 사용한다.
none | 자동 생성 기능을 사용하지 않는다. (대부분의 DB에서 기본값) |
create | 기존 테이블을 삭제하고 새로 생성한다. |
create-drop | 기존 테이블 삭제 후 테이블 생성, 종료 시점에 테이블 삭제 |
update | 데이터베이스 테이블과 엔티티 매핑 정보를 비교해서 변경 사항만 수정한다. |
validate | 데이터베이스 테이블과 엔티티 매핑 정보를 비교해서 차이가 있으면 경고를 남기고 애플리케이션을 실행하지 않는다. 이 설정은 DDL을 수정하지 않는다. → 엔티티와 테이블 정상 매핑 확인 |
▪ Spring Security
spring:
security:
user:
name: {이름}
password: {비밀번호}
roles: {권한}
▪ Mustache
만약 동작하지 않고 403 에러가 발생한다면 아래의 설정을 추가하자.
spring:
mustache:
servlet:
expose-session-attributes: true
한글깨짐현상 해결 방법
server.servlet.encoding.force-response: true