Spring Boot & MySQL

1.3. MySQL 데이터베이스 설정

backend 따라쟁이 2024. 12. 22. 22:50

Spring Boot 애플리케이션에서 MySQL 데이터베이스를 사용하려면, 데이터베이스를 설정하고 Spring Boot와 연동해야 합니다. 이 섹션에서는 데이터베이스 생성부터 설정 파일 구성까지의 과정을 초보자도 따라 하기 쉽게 설명하겠습니다.


3.1 MySQL 데이터베이스 생성

Spring Boot 애플리케이션이 사용할 데이터베이스를 MySQL에서 생성해야 합니다. 아래 단계에 따라 데이터베이스를 생성합니다.

1. MySQL CLI에서 생성

  1. MySQL CLI를 열고 root 사용자로 로그인합니다:로그인 후 비밀번호를 입력합니다.
    mysql -u root -p
  2. 데이터베이스 생성:my_database는 Spring Boot에서 사용할 데이터베이스 이름입니다. 필요에 따라 다른 이름을 사용할 수도 있습니다.
    CREATE DATABASE my_database;
  3. 생성된 데이터베이스 확인:결과 목록에서 my_database가 보이면 성공적으로 생성된 것입니다.
    SHOW DATABASES;
  4. 데이터베이스 사용:
    USE my_database;

2. GUI 툴 (MySQL Workbench)에서 생성

  1. MySQL Workbench를 실행합니다.
  2. Schemas 탭에서 빈 공간을 우클릭하고 Create Schema...를 선택합니다.
  3. Schema Name에 my_database를 입력하고, 저장합니다.
  4. 생성된 데이터베이스를 확인합니다.

3.2 MySQL 사용자 생성 및 권한 설정

Spring Boot에서 MySQL 데이터베이스에 접근하려면 사용자와 권한을 설정해야 합니다.

1. 새로운 사용자 생성

  1. 새로운 사용자 생성 명령 실행:app_user는 애플리케이션에서 사용할 사용자 이름이며, password123은 비밀번호입니다.
    CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'password123';
  2. 사용자 확인:
    SELECT User, Host FROM mysql.user;

2. 사용자에게 권한 부여

  1. 사용자에게 데이터베이스 권한 부여:my_database.*는 my_database 데이터베이스의 모든 테이블을 포함합니다.
    GRANT ALL PRIVILEGES ON my_database.* TO 'app_user'@'localhost';
  2. 권한 적용:
    FLUSH PRIVILEGES;
  3. 권한 확인:
    SHOW GRANTS FOR 'app_user'@'localhost';

3.3 데이터베이스 구조 설계

데이터베이스가 생성되었으면, Spring Boot 애플리케이션에서 사용할 테이블을 설계합니다. 예를 들어, 사용자 정보를 저장할 테이블을 만들어 보겠습니다.

사용자 테이블 생성

  1. CLI 또는 GUI 툴에서 다음 SQL 명령 실행:
    이 테이블은 사용자 ID, 이름, 이메일, 생성 시간을 저장합니다. 
  2. 테이블 확인:
    SHOW TABLES;
  3. 테이블 구조 확인:
    DESCRIBE user;

 


3.4 application.properties 파일 설정

Spring Boot 애플리케이션에서 MySQL 데이터베이스를 사용하려면, application.properties 파일에 연결 정보를 추가해야 합니다.

설정 예제

src/main/resources/application.properties 파일에 다음 내용을 추가합니다:

# 데이터베이스 연결 설정
spring.datasource.url=jdbc:mysql://localhost:3306/my_database
spring.datasource.username=app_user
spring.datasource.password=password123
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# Hibernate 설정 (DDL 자동 생성)
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

# UTF-8 설정 (한글 깨짐 방지)
spring.datasource.hikari.connection-init-sql=SET NAMES utf8mb4
 
 

설명

  1. spring.datasource.url: 데이터베이스의 URL 경로. localhost는 로컬 MySQL 서버를 의미하고, 3306은 MySQL의 기본 포트 번호입니다.
  2. spring.datasource.username / spring.datasource.password: MySQL 사용자 정보.
  3. spring.jpa.hibernate.ddl-auto: 애플리케이션 시작 시 테이블 생성 및 업데이트 동작을 지정합니다.
    • update: 테이블이 없으면 생성, 기존 테이블은 변경사항만 적용.
    • create: 애플리케이션 시작 시 테이블을 새로 생성.
    • none: 테이블을 생성하거나 변경하지 않음.
  4. UTF-8 설정: 한글 데이터 처리를 위해 필수로 추가해야 합니다.

3.5 테스트: MySQL 연결 확인

Spring Boot와 MySQL 간의 연결이 제대로 설정되었는지 확인하려면 애플리케이션을 실행합니다.

  1. 애플리케이션 실행:
    • Eclipse: Run > Run As > Spring Boot App
    • IntelliJ: Run > Run 'Application'
  2. 실행 로그에서 아래와 같은 메시지가 출력되면 MySQL 연결이 성공한 것입니다:
    Tomcat started on port(s): 8080
  3. MySQL 데이터베이스에 애플리케이션이 만든 테이블이 생성되었는지 확인:
    USE my_database; SHOW TABLES;

결론

이 섹션에서는 MySQL 데이터베이스를 설정하고 Spring Boot 애플리케이션과 연결하는 방법을 다뤘습니다:

  1. MySQL에서 데이터베이스와 사용자 생성.
  2. Spring Boot의 application.properties 파일에 MySQL 연결 정보 설정.
  3. 테스트를 통해 성공적으로 연결되었는지 확인.

다음 섹션에서는 JDBC를 사용하여 MySQL 데이터베이스와 상호작용하는 구체적인 방법을 알아보겠습니다.

'Spring Boot & MySQL' 카테고리의 다른 글

1.5. REST API와 연동  (1) 2024.12.22
1.4. JDBC를 이용한 데이터 처리  (0) 2024.12.22
1.2. 개발 환경 설정  (0) 2024.12.22
1.1. 개요  (1) 2024.12.22
1. 초보자를 위한 Spring Boot와 MySQL JDBC 연동 가이드  (0) 2024.12.22