이 글은 코드로 배우는 스프링 부트 웹 프로젝트(남가람북스, 구멍가게 코딩단)을 읽고 공부한 내용을 바탕으로 정리한 글입니다.
스프링 부트 프로젝트에서 Maria 데이터베이스를 설정해보겠습니다.
1. MariaDB 설치
1. MariaDB를 설치합니다. (맥에서는 homebrew로 간단하게 설치할 수 있습니다.)
brew install mariadb
2. MariaDB 서버를 구동합니다.
brew services start mariadb
3. Maria DB에 접속합니다.
mariadb -u root -p
2. 데이터베이스 생성, 사용자 계정 생성 및 권한 부여
1. 데이터베이스를 생성합니다. (저는 책에서와 같은 이름의 bootex라는 이름으로 데이터베이스를 생성하였습니다.)
2. 사용자 계정을 생성합니다.
create user '[user name]'@'%' identified by '[your password]';
3. 생성한 사용자 계정에 생성한 데이터베이스의 모든 권한을 부여합니다.
grant all privileges on [database name].* to '[user name]'@'%';
+) mysql 데이터베이스에서 select host, user from user;
로 사용자 계정 정보를 확인할 수 있습니다.
2. 스프링 부트 설정
1. Spring Data JPA 의존성 추가
다음은 데이터베이스를 위한 스프링 부트 프로젝트 설정을 하겠습니다. 스프링 부트 프로젝트 생성시, Dependencies 선택에서 SQL에 Spring Data JPA도 추가해줍니다. 스프링 부트의 Auto Configuration 기능 덕분에 이렇게 의존성말 추가해주면 이와 관련된 설정들이 자동으로 추가됩니다. (스프링 부트의 가장 큰 장점이죠...♡)
2. MariaDB용 JDBC 드라이버 추가
https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client/3.1.0
위 링크에서 Gradle 설정을 복사하여 build.gradle
파일의 dependencies
항목에 붙여넣습니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '3.1.0'
}
3. applicaion.properties
추가
application.properties
를 추가하여 스프링 프로젝트 내에서 데이터베이스 설정을 합니다. (application.properties
가 아닌 별도의 클래스 설정 파일을 작성할 수도 있습니다.)
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/bootex?allowPublicKeyRetrieval=true&useSSL=false
spring.datasource.username=bootex_user
spring.datasource.password=P@ssw0rd
이렇게 모든 설정을 마친 후, 어플리케이션을 실행해보겠습니다.
위와 같이 실행 로그에 HikariPool 커넥션 풀이 실행되는 부분을 확인할 수 있습니다. (스프링 부트가 기본적으로 사용하는 Connection Pool은 HikariPool이기 때문입니다.)
+) Connection Pool: 필요할 때마다 데이터베이스에 연결하지 않고, 웹 어플리케이션이 실행됨과 데이터베이스를 연결하고 연결시킨 상태를 유지하는 기술
기존의 스프링으로 프로젝트를 생성하면 다음 포스팅에서 제가 했던 것처럼 모두 개발자가 설정을 해주어야 합니다.
'Java > Spring' 카테고리의 다른 글
[Spring MVC] Business Tier 구현 (0) | 2023.01.11 |
---|---|
[Spring MVC] Persistence Tier CRUD 구현 (0) | 2023.01.11 |
[Spring MVC] 컨트롤러의 Exception 처리 (0) | 2023.01.03 |
[Spring MVC] 파일업로드 처리 (0) | 2023.01.03 |
[Spring MVC] Controller (0) | 2023.01.03 |
댓글