Spring Boot 생성하고 Mariadb 연결하기

NJW·2023년 3월 18일
0

HCI project

목록 보기
1/14

HCI 수업을 듣게 됐는데, 과제도 할 겸 Spring Boot 공부도 할 겸 블로그 프로젝트를 하나 만들어 보려 한다.

1. Spring Boot 프로젝트 생성하기

1) Spring Boot 다운

https://start.spring.io/ 로 들어가서 프로젝트를 생성한다.

Project -> Gradle-Groovy
Spring Boot -> 2.7.9
Packaging -> Jar
Java -> 11
Dependencies -> Lombok, MariaDB Driver, Spring Web, Spring Data JPA, Validation

2) IntelliJ로 열기

나는 위의 설정을 넣어주고 하단에 있는 Generate(현재 사진에는 잘려서 안 보임)를 눌러 저장을 했다.

저장을 하면 압출 파일이 다운받아 지는데, 이걸 풀고 IntelliJ에 들아가 'File -> Open -> 압축을 푼 파일'로 해당 프로젝트를 열면 된다.

컴퓨터마다 다르겠지만 처음 프로젝트를 열 때는 시간이 좀 걸리니 기다려야 할 지도 모른다.

2. 세부 설정 하기

1) Juint

일단 Junit 5로 설정이 되어 있기 때문에 Junit 4를 쓰고 싶다면 추가적인 설정을 해주어야 한다. 다만, 나는 그냥 Junit 5를 사용할 예정이기에 Junit 4에 관해서는 인터넷을 찾아보는 게 좋을 것이다.

build.gradle

Junit 5를 사용하기 위해서 build.gradle에 하단에 있는 코드를 추가했다. 근데 그냥 써도 될 거 같기도 하고

test {
	useJUnitPlatform()
}

또한 test를 진행할 때 no tests found for given includes 오류를 피하기 위해 FILE -> Settings에 들어가 추기 설정을 했다.

Gradle

-> Build Tools -> Gradle로 들어가서(그냥 검색해도 됨) Run tests using의 설정을 IntelliJ IDEA로 바꿔준다.

Annotation Processors

Build, Execution, Deployment -> Compiler -> Annotation Processors로 들어가서 Enable annotation processing에 체크를 해준다. 이렇게 하지 않으면 테스트 오류가 날 뿐만 아니라 Lombok에도 오류가 난다.

3. Spring Boot와 Mariadb 연동하기

1) Mariadb 설치

Mariadb 다운 받기

https://mariadb.org/ 로 들어가 Download를 누른다.

Dowonload MariaDB Server에서 본인의 OS에 맞는 버전을 다운받으면 된다.

그리고 다운 받은 설치 파일을 실행하면 된다.

Mariadb 설치

다운 받은 설치 파일을 눌러서 설치하는데, 모두 기본 설정으로 두고 next를 누른다(개인적으로 이런 설치는 웬만하면 기본으로 두는 편이다).

다만 주의해야 할 점은 비밀번호를 설정하는데, 이때 비밀번호는 데이터베이스에 접근할 때 필요하기 때문에 설정해주고 꼭 기억해야 한다. 안 그러면 다시 설정해줘야 하는 번거로움이 있다

또한 기본 캐릭터셋을 UFF8로 설정한다는 것에 체크해줘야 한다.

조금 더 자세한 설명을 위해 내가 참고한 블로그 주소를 추가한다.

https://kitty-geno.tistory.com/55

2) Mariadb 접근

Mariadb에 접근하기 위해서는 두 가지 방법이 있다. 하나는 MySQL Client를 사용하는 것이고 다른 하나는 HediSQL을 설치해서 사용하는 것이다. 나는 후자의 방법을 이용했다.

HediSQL 설치

https://www.heidisql.com/download.php 로 들어가서 Installer, 32/64 bit combined를 눌러 설치 파일을 다운받는다.

Language를 한국어로 설정해주고 Mariadb 때와 마찬가지로 전부 기본 설정으로 맞춰서 설치해주면 된다.

3) Spring Boot와 Mariadb 연동하기

Mariadb에서 Spring Boot랑 연결할 데이터베이스를 생성하기

위에서 설치한 HediSQL을 실행한다.

암호에다가 첫 Mariadb를 설치했을 때 설정한 암호를 치고 들어간다. 초기 설정에서 암호를 꼭 기억하라는 데는 이유가 있다

다음 '새로 생성 -> 데이터베이스'를 눌러새로운 데이터베이스를 하나 생성한다.

그리고 원하는 데이터 베이스 이름을 설정한 뒤 생성을 누르면 새 데이터 베이스가 생성이 된다. 나는 이미 blog라고 데이터 베이스를 만들어 놓았다.

Spring Boot 프로젝트에서 Mariadb 설정하기

일단 Sprign Boot 프로젝트를 생성 할 때 MariaDB Driver를 같이 넣어줬기 때문에 build.gradle에서 따로 설정을 할 필요는 없다.

그래도 혹시 모르니 build.gradle의 dependencies에서 mariadb-java-client가 설정되어 있는지를 확인하자. 만일 mariadb-java-client가 없거나 생성할 때 MariaDB Driver를 넣어주지 않았다면

runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'

를 dependencies에 복사 붙여넣기를 해주면 된다. 그리고 꼭 옆에 뜬 코끼리 모양을 클릭해서 프로젝트에 반영되도로 하자!

그 다음 src -> main -> resources -> application.properties에 들어간다.

여기서 아래 있는 코드를 복사 붙여 넣기 해준다. 괄호 친 부분은 본인이 설정해준 값을 복사 붙여넣기 해주면 된다.

spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://(locahost, 기본 -> localhost:3306)/(해당 프로젝트와 연결할 데이터 베이스 이름. 여기서는 blog로)
spring.datasource.username=(유저 이름, 기본 -> root)
spring.datasource.password=(비밀번호)

조금 더 자세한 설명이 필요할 수 있기에 내가 참고한 블로그 주소를 올려 놓겠다.

https://velog.io/@sheltonwon/SpringBoot%EC%99%80-MariaDB-%EC%97%B0%EA%B2%B0

https://wecandev.tistory.com/71

참고로 밑에 있는 내용을 무조건 넣어줘야 한다.

#update the schema with the given values.
spring.jpa.hibernate.ddl-auto=create
#To beautify or pretty print the SQL
spring.jpa.properties.hibernate.format_sql=true
#show sql
spring.jpa.properties.hibernate.show-sql=true
#show parameter binding
logging.level.org.hibernate.type.descriptor.sql=DEBUG

logging.level.org.hibernate.SQL=DEBUG

4. 테스트 해보기

1 ~ 3번까지 했다면 잘 연동이 됐겠지만, 혹시 모르니까 테스트를 해보는 게 좋다. 프로젝트 도중에 초반 설정 미스로 오류나면 완전 멘붕이니까

나는 인프런에 있는 김영한 강사님의 실전 스프링 부트와 JPA 활용이란 강의를 참고해서 테스트를 만들었다. 강의 주소는 여기! https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-%ED%99%9C%EC%9A%A9-1

1) Member 엔티티와 레파지토리 만들기

먼저 코드는 src -> main -> java -> HCI.idea(본인이 만든 Spring Boot의 파일 이름)에 Java Class 파일을 만들어서 작성하면 된다.

간단하게 테스트만 할 거라 Member 엔티티에는 id하고 email을 설정해줬다.
코드

package HCI.idea;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.Entity;


@Entity
@Getter
@Setter
public class Member {
    @Id
    @GeneratedValue
    private Long id;
    private String userEmail;
}

참고로 말하자면 java 17이상을 쓸 때는 javax가 아니라 jakarta를 써야 한다. 나는 java 11을 이용하기 때문에 javax를 사용했다.

MemberRepository에는 멤버를 설정한 후 영속성에 저장하고 해당 멤버를 찾아 반환하는 기능을 넣어줬다. 사실 이건 강의 자료와 거의 같기 때문에 저작권 이슈로 문제가 될 수 있을 거 같아서 전부는 못 올리겠다

2) 테스트 코드 작성

테스트 코드는 src -> test -> java -> HCI.idea(본인이 만든 Spring Boot의 파일 이름)에 Java Class 파일을 만들어서 작성하면 된다.

여기서 본인이 Junit 5를 사용한다면 RunWith 어노테이션을 ExtendWith으로 바꾸면 된다. 또한 'import org.junit.jupiter.api.Test'를 넣어줘야 한다.

멤버 레파지토리를 @Autowired로 생성한 다음에 testMember에 멤버를 하나 설정하고 저장한 다음 설정한 멤버와 저장한 멤버가 같은지를 확인하면 된다.
테스트 코드 또한 강의 자료와 너무 비슷해서 올리기 곤란하다...

3) 확인

테스트 코드를 돌려서 초록색 체크가 나오면 완료!

혹시 모르니까 HediSQL에 들어가서 설정한 데이터 베이스에 잘 들어갔는지도 확인하면 된다.
업로드중..

잘 들어간 걸 확인할 수 있다.

profile
https://jiwonna52.tistory.com/

0개의 댓글