-
프로젝트 생성하기(Spring Boot + MySQL + Spring Data JPA)프로젝트/WebRTC 화상통화 프로젝트 2022. 7. 16. 14:17반응형
1. Spinrg initializr를 통해서 프로젝트를 생성하기.
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
'프로젝트 > WebRTC 화상통화 프로젝트' 카테고리의 다른 글
Spring Security와 Oauth 2.0으로 로그인 구현하기(SpringBoot + React) (13) 2022.07.19 ERD 설계하기 (0) 2022.07.17 OAuth2.0 이란? (0) 2022.07.15 프로젝트 개요 (0) 2022.07.12 OpenVidu REST API 공식문서 분석 (0) 2022.07.11