Spring Boot를 사용한 웹 애플리케이션 개발에서 MySQL과의 연동은 가장 기본이면서도 중요한 과정입니다.
초보 개발자도 쉽게 따라할 수 있도록, MySQL 연결 설정부터 테스트까지 단계별로 설명해드리겠습니다.
1. MySQL 설치 및 접속 확인
먼저 MySQL이 설치되어 있어야 합니다. 로컬 또는 Docker를 사용하셔도 괜찮습니다.
# macOS Homebrew 예시
brew install mysql
brew services start mysql
mysql -u root -p
TIP: docker로 실행할 경우 아래 명령어를 사용할 수 있습니다.
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=1234 -p 3306:3306 -d mysql:8
2. MySQL에 데이터베이스 생성
Spring Boot에서 사용할 DB를 미리 만들어 두세요. 예: springboot_db
CREATE DATABASE springboot_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3. 의존성 추가 (Maven 기준)
Spring Boot 프로젝트의 pom.xml
에 MySQL 관련 의존성을 추가합니다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
4. application.yml 또는 application.properties 설정
다음과 같이 DB 연결 정보를 등록합니다.
# src/main/resources/application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/springboot_db?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
username: root
password: 1234
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
format_sql: true
Tip: 환경별 설정을 분리하고 싶다면 application-dev.yml
같은 Spring Profile 기능을 함께 사용해보세요.
5. 간단한 Entity와 Repository 테스트
연동 테스트를 위해 간단한 사용자 엔티티와 Repository를 만들어봅시다.
@Entity
public class User {
@Id @GeneratedValue
private Long id;
private String name;
private String email;
}
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email);
}
6. 실행 및 결과 확인
프로젝트를 실행하면 Spring Boot가 자동으로 MySQL에 연결하고, Entity 기준으로 테이블을 생성합니다.
application.yml에서 spring.jpa.show-sql=true
설정을 했다면 콘솔에서 SQL도 확인할 수 있습니다.
7. 자주 하는 실수와 해결법
- Timezone 오류: JDBC URL에
serverTimezone=Asia/Seoul
을 명시하세요 - Unicode 문제:
characterEncoding=UTF-8
옵션 추가 - 엔티티 테이블이 생성되지 않음:
@Entity
누락 여부 확인 - 포트 충돌: Docker 실행 시 3306 포트 중복 주의
마무리
지금까지 Spring Boot와 MySQL을 연동하는 기본적인 방법을 소개해드렸습니다.
이제 JPA, QueryDSL, 복잡한 트랜잭션 처리까지 확장해볼 수 있겠죠?
기초가 튼튼해야 개발이 편해집니다.
'개발 > JAVA' 카테고리의 다른 글
[JAVA] Spring Boot와 MongoDB 연동하기 – 실무 중심 입문 가이드 (0) | 2025.10.19 |
---|---|
[JAVA] Spring Boot와 PostgreSQL 연동하기 – 실전 가이드 (0) | 2025.10.18 |
[JAVA] Spring에서 트랜잭션 관리하기 – @Transactional 완벽 이해 (0) | 2025.10.16 |
[JAVA] N+1 문제와 해결 방법 – Fetch Join과 @EntityGraph로 해결하기 (0) | 2025.10.15 |
[JAVA] JPA Fetch 전략 완벽 가이드 – Lazy vs Eager 실무 적용법 (0) | 2025.10.14 |