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