ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로젝트 생성하기(Spring Boot + MySQL + Spring Data JPA)
    프로젝트/WebRTC 화상통화 프로젝트 2022. 7. 16. 14:17
    반응형

    1. Spinrg initializr를 통해서 프로젝트를 생성하기.

    https://start.spring.io/

     

     

    Proejct : Gradle Project

    Language : Java

    Packaging : Jar(REST API server로 만들기 때문에 JSP필요 x) - Spring 문서에서도 JSP를 피하라고 명시

    Java : 11

    Dependencies : Lombok, Spring Web, Spring Data JPA, MySQL Driver

     

     

    하단의 GENERATE를 눌러줍니다.

     

    이후 원하는 경로에 압축을 풀어서 폴더의 위치를 기억합니다.

    (개인적으로 C:\inteliij 폴더 안에 넣었습니다)

     

    2. Intellij를 실행하고 Project Open

     

    2-1 File -> Open

    2-2 프로젝트의 build.gradle을 선택하고 OK

     

    2-3 Open as Project -> Trust Project -> This Window 또는  New Window 클릭

    gradle이 프로젝트의 종속성들을 다운로드 하는 동안 잠시 기다립니다.

    약 1분 소요

     

    2-4 build.gradle에서 의존성이 잘 들어왔는지 확인합니다.

    plugins {
    	id 'org.springframework.boot' version '2.7.1'
    	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    	id 'java'
    }
    
    group = 'zipzong'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '11'
    
    configurations {
    	compileOnly {
    		extendsFrom annotationProcessor
    	}
    }
    
    repositories {
    	mavenCentral()
    }
    
    dependencies {
    	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    	implementation 'org.springframework.boot:spring-boot-starter-web'
    	compileOnly 'org.projectlombok:lombok'
    	runtimeOnly 'mysql:mysql-connector-java'
    	annotationProcessor 'org.projectlombok:lombok'
    	testImplementation 'org.springframework.boot:spring-boot-starter-test'
    }
    
    tasks.named('test') {
    	useJUnitPlatform()
    }

    java 11버전(sourceCompatibility = '11')

     

    dependencies에 jpa, web, lombok, mysql 등이 잘 들어와 있습니다.

     

     

    3. Project 실행해보기

    Application을 실행해보면 다음과 같은 에러가 발생합니다.

     

    Failed to configure a DataSource

     

    DB를 연결하기 위한 설정을 해주어야 합니다.

     

    3-1 application.properties에 DB정보 추가하기

    #MySQL 설정
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
    #DB Source URL
    spring.datasource.url=jdbc:mysql://localhost:3306/yourDBName?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul
    
    #DB username
    spring.datasource.username=yourname
    
    #DB password
    spring.datasource.password=yourpassword
    
    #true 설정시 JPA 쿼리문 확인 가능
    spring.jpa.show-sql=true
    
    #JPA를 기반으로 자동으로 테이블을 생성해줍니다 
    spring.jpa.hibernate.ddl-auto=update
    
    # SQL의 가독성을 높여줍니다.
    spring.jpa.properties.hibernate.format_sql=true

    application.properties의 경로는 다음과 같습니다.

    src-> main -> resources

     

    spring.datasource.url 부분에서 yourDBName에는 사용자분의 DB 이름을 입력해야 합니다.

    예시)

    spring.datasource.url=jdbc:mysql://localhost:3306/zipzong?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul

     

    또한 username, password부분의 yourname, yourpassword에는 사용자분의 username와 password를 입력해야 합니다.

    예시)

    spring.datasource.username=root
    spring.datasource.password=1234

     

    spring.jpa.hibernate.ddl-auto의 속성들입니다.

    https://dev-coco.tistory.com/85

     

    다시 애플리케이션을 실행하면 성공적으로 잘 됩니다.

    localhost:8080에도 접속해보면 다음과 같은 페이지를 볼 수 있습니다.

    에러 페이지 같지만 이렇게 뜨면 성공입니다.

     

    4. 테스트 코드에서는 H2 DB 사용도록 설정

    실제 서비스용 DB와 테스트 코드용 DB를 분리하여 이용하도록 합니다.

    인 메모리 데이터베이스이기 때문에 빠른 실행 속도를 보여주고 매번 DB를 지우는 작업 없이 테스트 코드의 재사용성을 높일 수 있습니다.

     

    1분 정도만 투자하면 다음 링크를 통해 테스트 코드에서 H2 Database를 사용할 수 있습니다.

    https://junuuu.tistory.com/289

     

    테스트코드에서는 H2 DB를 사용하자!

    H2 데이터베이스란? H2는 자바 기반 오픈소스 RDBMS입니다. 주로 인 메모리 데이터베이스로 사용되며 기능 테스트할 때 유용합니다. 인 메모리 데이터베이스는 휘발성 데이터베이스이기 때문에 컴

    junuuu.tistory.com

     

    반응형

    댓글

Designed by Tistory.