요즘 소규모 개인 및 팀 프로젝트를 많이 진행하는 것 같은데 환경 설정 과정이 매번 헷갈리는 것 같습니다.. 그래서 환경 설정하는 방법들을 차근차근 정리해보려 합니다!! 먼저 Spring과 데이터베이스를 연결하는 작업부터 해보겠습니다!!
🚨MAC 환경을 기준으로 합니다!!!
먼저, 로컬 환경에 데이터베이스가 설치되어있지 않으신 분들은 데이터베이스를 설치합니다. Homebrew를 사용하면 쉽게 설치할 수 있습니다.
지금은 mysql을 기준으로 하지만 프로젝트를 하다가 다른 데이터베이스를 사용할 일이 생기면 다른 데이터베이스 설치 및 설정 방법도 가져오겠습니다!!
brew install mysql
brew services start mysql
설치 후, MySQL에 접근합니다.
mysql -u root -p
MySQL에 접속한 후, 필요한 데이터베이스를 생성하고 사용자에게 권한을 부여합니다!!
CREATE DATABASE my_database;
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON my_database.* TO 'my_user'@'localhost';
FLUSH PRIVILEGES;
생성한 데이터베이스를 사용하도록 전환합니다.
USE my_database;
Spring Boot 프로젝트의 application.properties 파일에 데이터베이스 정보를 추가합니다.
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/my_database
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.datasource.url : MySQL 서버의 포트인 3306을 포함한 로컬 URL과 위에서 생성한 데이터베이스의 이름을 넣어줍니다!!spring.datasource.username : 위 데이터베이스를 생성했을 때 설정한 사용자 이름입니다!spring.datasource.password : MySQL 사용자 비밀번호.spring.jpa.hibernate.ddl-auto : 우선 테이블이 잘 만들어지는지 테스트를 해보기 위해 create-drop으로 설정하여 애플리케이션 종료 시 테이블을 삭제하도록 합니다.spring.jpa.show-sql : 콘솔에서 실행된 SQL 쿼리를 확인하기 위해 true로 설정합니다!Spring Boot에서 JPA를 사용하여 엔티티를 작성합니다.
src/main/java/com/example/demo/Test.java
package com.example.demo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Test {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int age;
}
Spring Boot 애플리케이션을 실행하면, JPA가 데이터베이스에 테이블을 생성합니다. 터미널 로그에서 테이블 생성 로그를 확인할 수 있습니다!!


Spring Boot 애플리케이션이 종료되면 create-drop 설정 덕분에 테이블이 자동으로 삭제됩니다.


이로써, Mac에서 Spring과 MySQL을 연동하고 JPA Hibernate를 사용하여 테이블을 생성하고, 테스트까지 해보았습니다!!!