4.6 KiB
4.6 KiB
JPA
application.yaml 설정
spring:
# 공통 JPA 설정
jpa:
hibernate:
ddl-auto: update # 테이블 자동 생성/업데이트 설정
show-sql: true # SQL 쿼리 로그 출력
properties:
hibernate:
format_sql: true # SQL 포맷팅 출력
# 개발 환경 (H2 데이터베이스)
---
spring:
config:
activate:
on-profile: dev
datasource:
url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
driver-class-name: org.h2.Driver
username: sa
password:
h2:
console:
enabled: true # H2 콘솔 활성화
path: /h2-console
# 프로덕션 환경 (MariaDB 데이터베이스)
---
spring:
config:
activate:
on-profile: prod
datasource:
url: jdbc:mariadb://localhost:3306/mydb
driver-class-name: org.mariadb.jdbc.Driver
username: root
password: mypassword
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MariaDBDialect # MariaDB 전용 dialect
실행 방법
dev프로파일:spring.profiles.active=dev로 실행 (H2 사용)prod프로파일:spring.profiles.active=prod로 실행 (MariaDB 사용)
설정 옵션
1. 공통 JPA 설정 옵션
| 옵션 | 설명 | 예시 값 |
|---|---|---|
spring.jpa.hibernate.ddl-auto |
Hibernate가 데이터베이스 스키마를 생성/업데이트하는 방식 (create, update, validate, none) |
update |
spring.jpa.show-sql |
실행되는 SQL 쿼리를 콘솔에 출력할지 여부 | true |
spring.jpa.properties.hibernate.format_sql |
출력되는 SQL을 읽기 쉽게 포맷팅할지 여부 | true |
2. H2 데이터베이스 설정 옵션
| 옵션 | 설명 | 예시 값 |
|---|---|---|
spring.datasource.url |
H2 데이터베이스 연결 URL (메모리 모드: jdbc:h2:mem:testdb) |
jdbc:h2:mem:testdb |
spring.datasource.driver-class-name |
H2 JDBC 드라이버 클래스 | org.h2.Driver |
spring.datasource.username |
H2 데이터베이스 사용자 이름 (기본값: sa) |
sa |
spring.datasource.password |
H2 데이터베이스 비밀번호 (기본값: 빈 문자열) | `` |
spring.h2.console.enabled |
H2 웹 콘솔 활성화 여부 (브라우저에서 데이터 확인 가능) | true |
spring.h2.console.path |
H2 콘솔의 접근 경로 | /h2-console |
- 참고:
DB_CLOSE_DELAY=-1은 메모리 DB가 애플리케이션 종료 시 닫히지 않도록 유지하며,DB_CLOSE_ON_EXIT=FALSE는 연결 종료 시 DB를 닫지 않도록 설정합니다.
3. MariaDB 데이터베이스 설정 옵션
| 옵션 | 설명 | 예시 값 |
|---|---|---|
spring.datasource.url |
MariaDB 데이터베이스 연결 URL (예: jdbc:mariadb://호스트:포트/데이터베이스명) |
jdbc:mariadb://localhost:3306/mydb |
spring.datasource.driver-class-name |
MariaDB JDBC 드라이버 클래스 | org.mariadb.jdbc.Driver |
spring.datasource.username |
MariaDB 데이터베이스 사용자 이름 | root |
spring.datasource.password |
MariaDB 데이터베이스 비밀번호 | mypassword |
spring.jpa.properties.hibernate.dialect |
Hibernate가 사용할 MariaDB 전용 dialect (SQL 최적화) | org.hibernate.dialect.MariaDBDialect |
추가 설명
-
H2 설정:
- H2는 인메모리 데이터베이스로, 테스트나 로컬 개발에 적합합니다.
- H2 콘솔(
/h2-console)을 통해 브라우저에서 데이터베이스를 확인할 수 있습니다.
-
MariaDB 설정:
- MariaDB는 MySQL과 호환되는 오픈소스 RDBMS로, 프로덕션 환경에서 안정적으로 사용됩니다.
dialect설정은 Hibernate가 MariaDB에 최적화된 SQL을 생성하도록 돕습니다.
-
의존성 추가:
pom.xml에 아래 의존성을 추가해야 합니다:runtimeOnly("com.h2database:h2") runtimeOnly("org.mariadb.jdbc:mariadb-java-client") implementation("org.springframework.boot:spring-boot-starter-data-jpa")
-
프로파일 사용:
application.yaml에서---로 프로파일을 구분하며, 실행 시-Dspring.profiles.active=dev또는prod를 지정합니다.