SpringBoot/데이터베이스 연동
H2, MySQL, PostgreSQL 연동
DEVLIB
2025. 4. 14. 10:51
728x90
H2 Database 연동
특징
- 메모리 기반 가볍고 빠름
- 별도 설치 필요 없음
- 개발/테스트용으로 최적화
의존성 추가 (build.gradle)
implementation 'com.h2database:h2'
application.yml 설정
spring:
datasource:
url: jdbc:h2:mem:testdb
driver-class-name: org.h2.Driver
username: sa
password:
jpa:
hibernate:
ddl-auto: update
show-sql: true
# 콘솔에서 확인용
spring.h2.console.enabled: true
브라우저에서 http://localhost:8080/h2-console 접속
→ JDBC URL에 jdbc:h2:mem:testdb 입력하고 접속
MySQL 연동
특징
- 국내 실무에서 가장 널리 사용
- 대규모 트랜잭션에 강함
의존성 추가
implementation 'com.mysql:mysql-connector-j'
application.yml 설정
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=Asia/Seoul
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 비밀번호
jpa:
hibernate:
ddl-auto: update
show-sql: true
database-platform: org.hibernate.dialect.MySQL8Dialect
DB 먼저 생성해두어야 함: CREATE DATABASE mydb;
주의사항
- UTF-8 인코딩 설정 필요할 경우:
characterEncoding=UTF-8&useUnicode=true
PostgreSQL 연동
특징
- 오픈소스 고급 DBMS
- JSON, GIS, CTE 등 고급 기능 제공
의존성 추가
implementation 'org.postgresql:postgresql'
application.yml 설정
spring:
datasource:
url: jdbc:postgresql://localhost:5432/mydb
driver-class-name: org.postgresql.Driver
username: postgres
password: 비밀번호
jpa:
hibernate:
ddl-auto: update
show-sql: true
database-platform: org.hibernate.dialect.PostgreSQLDialect
PostgreSQL도 DB 및 사용자 먼저 생성해야 합니다.
공통 JPA 설정 옵션
항목 | 설명 |
ddl-auto | 테이블 자동 생성 전략 (none, create, update, validate, create-drop) |
show-sql | 실행되는 SQL 콘솔 출력 |
hibernate.format_sql | SQL 보기 좋게 출력 |
database-platform | Hibernate Dialect 수동 지정 가능 |
마무리 요약
DB 종류 |
특징설치 | 용도 |
H2 | 가볍고 빠름 | 테스트, 학습용 |
MySQL | 대중적, 성능 안정 | 웹 서비스, 기업용 |
PostgreSQL | 고급 기능, 확장성 | 데이터 집약 서비스, API 서 |
LIST