코딩 하는 가든

spring boot + graphql 프로젝트 설정 해보기 본문

프로젝트/N poem

spring boot + graphql 프로젝트 설정 해보기

가든리 2020. 4. 26. 00:24

N poem 프로젝트 설정

-JDK

 JDK는 1.8을 사용한다

 

- Gradle 버전 설정

./radlew wrapper --gradle-version 4.10.2

 그레이들 5.X 버전이 최신인 현재 4.10.2로 다운 그레이드를 하는 이유는 그레이들 5.X 버전과 프로젝트에서 사용 할 자바 라이브러리인 Lombok과의 호환이 잘 이루어지지 않기 때문이다.

 

- dependency 추가

dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web') // spring boot
    implementation('org.springframework.boot:spring-boot-starter-data-jpa') //jpa
    implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.4.1' //jdbc

    implementation 'com.graphql-java-kickstart:graphql-spring-boot-starter:6.0.1' //graphql
    runtimeOnly 'com.graphql-java-kickstart:graphiql-spring-boot-starter:6.0.1'   //graphql

    compileOnly('org.projectlombok:lombok') //lombok
}

데이터 베이스로는 마리아 디비를 사용하기로 했기 때문에 jdbc 클라이언트는 mariadb client를 사용한다.

 

- 프로젝트 전역변수 코틀린 추가

ext['kotlin.version'] = '1.3.10'

 java Spring Boot 프로젝트에서 graphql을 사용하기 위해서는 코틀린 이 필요 하다.

없으면 java.lang.ClassNotFoundException: kotlin.coroutines.CoroutineContext 이라는 에러가 나니 추가 하도록 하자.

 

- DB 설정

src/main/resources 아래에 application.properties와 application-db-config.properties를 생성한다.

 

application.properties에는 프로젝트에 필요한 각종 프로퍼티를 지정 하는데 데이터 베이스 같은 민감한 정보는 노출이 되면 안되기 때문에  프로퍼티파일을 따로 생성하여 gitignore를 적용시켜 커밋을 할 수 없게 만든다.

 

application.properties에는 다음의 코드를 추가 하여 db-config라는 프로퍼티를 include 하도록 한다.

spring.profiles.include=db-config

 

application-db-config.properties에는 마리아 디비의 설정을 저장 한 후 application-db-config.properties를 .gitignore에 등록한다.

spring.datasource.username=garden
spring.datasource.password=1234
spring.datasource.url=jdbc:mariadb://localhost:3306/npoem
spring.datasource.driverClassName=org.mariadb.jdbc.Driver

 

위와 같이 프로젝트 설정을 마쳤으며 이제 본격적으로 프로젝트를 진행할 준비가 되었다.