[리팩토링]Spring boot 2.7 에서 schema.sql 한글 깨짐

현재 버전

  • Java 11
  • Spring Boot 2.7.x

schema.sql

-- 테이블 생성 SQL - SHOPPING_CART
CREATE TABLE SHOPPING_CART
(
    `ID`            BIGINT          NOT NULL    AUTO_INCREMENT COMMENT 'pk값',
    `USER_ID`       VARCHAR(200)    NULL        COMMENT '유저ID',
    `PRODUCT_ID`    BIGINT          NULL        COMMENT '상품ID',
    `QUANTITY`      INT             NULL        COMMENT '장바구니 상품 수량',
    `CREATED_DATE`  TIMESTAMP       NULL        COMMENT '생성일',
    `UPDATED_DATE`  TIMESTAMP       NULL        COMMENT '수정일',
    PRIMARY KEY (ID)
);
  • DB에 입력
-- auto-generated definition
create table SHOPPING_CART
(
    ID           BIGINT auto_increment comment 'pk?'
        primary key,
    USER_ID      VARCHAR(200) null comment '??ID',
    PRODUCT_ID   BIGINT       null comment '??ID',
    QUANTITY     INT          null comment '???? ?? ??',
    CREATED_DATE TIMESTAMP    null comment '???',
    UPDATED_DATE TIMESTAMP    null comment '???'
)
    comment '????';
  • 엥 DDL로 보게된다면 한글이 전부 깨지게 된다.

해결방법

  1. 스프링 부트 설정:
    • application.properties 또는 application.yml 파일에서 다음과 같이 문자열 인코딩을 명시적으로 설정할 수 있다.
    spring.datasource.url=jdbc:mysql://localhost:3306/your_db?useUnicode=true&characterEncoding=UTF-8
    
    
  1. SQL 스크립트의 인코딩 설정:
    • 스프링 부트 2.5 이상에서는 spring.sql.init.encoding 사용으로 schema.sql 과 data.sql 의 인코딩을 모두 설정할 수 있다.
    spring.sql.init.encoding=UTF-8

Uploaded by N2T