본문 바로가기
PlayGround/마실가실 리팩토링

[1년 후 마실가실] 환경 설정(로컬 DB 연결 및 JPA 설정)

by HJ0216 2024. 7. 27.

1년 전 진행했던 마실가실 프로젝트를 🛠️리팩토링하며 정리한 내용입니다.

 

기존에는 네이버 클라우드에 DB 연결되어있었는데, 기간 만료의 문제로 Local로 변경하여 연결을 해 볼 예정입니다.

 

Database: 🐬 MySQL

 

 

  • build.gradle
dependencies {
	runtimeOnly 'com.mysql:mysql-connector-j'
}
  • application.yml
spring:
  datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://localhost:3306/mydb?serverTimezone=Asia/Seoul
  username: DB 생성 시, 작성한 username
  password: DB 생성 시, 작성한 password

 

+ 리팩토링

spring:
  datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=Asia/Seoul
  username: DB 생성 시, 작성한 username
  password: DB 생성 시, 작성한 password
  • useSSL=false

Establishing SSL connection without server's identity verification is not recommended
최신 mysql버전을 사용 시, SSL연결을 기본으로 사용
SSL을 사용하지 않을 경우, 명시하지 않으면 경고가 발생하므로 이를 제거하기 위해 추가

 

 

 

기존 JPA 관련 설정은 다음과 같습니다.

application.yml

  jpa:
    # Application 구동할 때마다, Entity로 정의된 테이블을 생성
    generate-ddl: true
    hibernate:
      # 스키마 생성, 테이블 존재 시 변경된 부분만 반영
      ddl-auto: update
    show-sql: true
    database: mysql
    database-platform: org.hibernate.dialect.MySQL8Dialect
  • generate-ddl: true

데이터베이스 스키마를 자동으로 생성하거나 업데이트하는 기능을 활성화하는 설정

🚨 개발 및 테스트 환경에서 유용할 수 있지만, 운영 환경에서는 주의해서 사용

 

+ 리팩토링

  jpa:
    # Application 구동할 때마다, Entity로 정의된 테이블을 생성
    generate-ddl: true
    hibernate:
      # 스키마 생성, 애플리케이션 실행 시 모든 table trop 후 create
      ddl-auto: create
    # 실행 sql문 콘솔에서 확인
    show-sql: true
    # formatter
    properties:
      hibernate:
        format_sql: true
        use_sql_comments: true
        highlight_sql: true
    # using database
    database: mysql
    # mysql 상세 지정
    database-platform: org.hibernate.dialect.MySQL8Dialect

 

  • ddl-auto: update → create

개발 초기 단계이고, Entity 수정 예정이기에 애플리케이션 실행 시마다 table을 새롭게 만들고자 변경

  • formatter 추가

 

DDL이 출력된 모습이 다음과 같이 변경됩니다.

Hibernate: create table trip_schedule (schedule_id integer not null auto_increment, mod_date datetime(6), reg_date datetime(6) not null, user_id varchar(20) not null, city_name varchar(30), date_list varchar(500), primary key (schedule_id)) engine=InnoDB

 

+ 리팩토링

[Hibernate] 
    create table trip_schedule (
        schedule_id integer not null auto_increment,
        mod_date datetime(6),
        reg_date datetime(6) not null,
        user_id varchar(20) not null,
        city_name varchar(30),
        date_list varchar(500),
        primary key (schedule_id)
    ) engine=InnoDB

 

 

 

🙋‍♀️

본 포스트는 공부 목적으로 작성하였습니다.
보시는 도중 잘못된 부분이나 개선할 부분이 있다면 댓글로 알려주시면 수정하도록 하겠습니다.

 

📑

참고 자료

 

[SpringBoot] 스프링 부트 프로젝트 생성

👉 기본 환경 - Language: Java - DB: MySQL - IDE: IntelliJ 1. Spring Initializer에서 기본 설정 구축 https://start.spring.io/ - Project - Gradle - Groovy: 환경 설정 파일 build.gradle - Gradle - Kotlin: JVM에서 실행되는 다목적 프

hj0216.tistory.com

 

1.5 JDBC

1) JDBC란? JDBC 개요 JDBC(Java Database Connectivity)의 정의 - 자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 그리고 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약 - 자

hoit1302.tistory.com

 

[Spring] hibernate 설정 정보

hibernate 설정 정보에 대해서

velog.io