본문 바로가기
제로베이스 BE 21기/Mission

[Reservation] build.gradle과 application.yml 설정

by ♡˖GYURI˖♡ 2024. 5. 1.

build.gradle

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.2.5'
	id 'io.spring.dependency-management' version '1.1.4'
}

group = 'com.zerobase'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-security'
	implementation 'org.springframework.boot:spring-boot-starter-validation'

	compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.22'
	annotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.22'

	implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
	implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5'
	runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5'
	runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.5'

	implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.4.1'
	runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // MariaDB

	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testImplementation 'org.springframework.security:spring-security-test'
}

tasks.named('test') {
	useJUnitPlatform()
}

 

  • spring : 3.2.5
  • java : 17
  • 의존성
    • spring-boot-starter
    • spring-boot-starter-web
    • spring-boot-starter-data-jpa
    • spring-boot-starter-security
    • spring-boot-starter-validation
    • lombok
    • jsonwebtoken
    • mariadb-java-client : 2.4.1
    • spring-boot-starter-test
    • spring-security-test

 

application.yml

spring:
  datasource:
    driver-class-name: org.mariadb.jdbc.Driver
    url: jdbc:mariadb://localhost:3306/reservation
    username: root
    password: (비밀번호)

  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        format_sql: true
        show_sql: true
    open-in-view: false

  jwt:
    secret: (비밀 키)

 

  • driver-class-name : mariadb
  • 3306 port의 reservation과 연동
  • ddl-auto : create
  • format_sql : true
  • show_sql : true
  • open-in-view : false
  • jwt.secret : 비밀 키

 

 

etc

spring-boot-starter-validation

이 의존성은처음 추가해봤는데 유효성 검사 어노테이션을 제공해준다!

 

참고한 블로그⬇️

 

Spring Boot | spring-boot-starter-validation

의존성 추가 // Gradle implementation 'org.springframework.boot:spring-boot-starter-validation' // Maven org.springframework.boot spring-boot-starter-validation 자주 사용하는 어노테이션은 이정도가 있음.. @NotNull : 해당 값에 Null

gaemi606.tistory.com

 

 

application.yml은 application.properties로 작성하던 것을 .yml로 고쳐쓴 것이다.

찾아보니 properties보다 yml 파일을 더 자주 사용한다고 하여 익혀두는게 좋을 것 같아 수정하였다.

그리고 yml을 더 자주 사용해서 그런지 properties 설정 레퍼런스가 많지 않았다.

 

참고한 블로그⬇️

 

[Spring Boot] application.properties와 application.yml의 차이점

목차 개요 Spring Boot 프로젝트에서는 일반적으로 프로젝트의 각종 설정을 application.properties 또는 application.yml 파일을 통해 하게된다. 기본적으로 Spring Initializr를 통해 Spring Boot 프로젝트를 생성하

colabear754.tistory.com

 

 

show_sql : true

Hibernate가 DB에 날리는 모든 쿼리(DDL, DML)을 보여주도록하는 설정이다. 

 

format_sql : true

쿼리를 포맷팅해서 보여준다.

 

참고한 블로그⬇️

 

Spring Boot SQL 보기 옵션 총 정리

Spring Boot에서 query DSL을 사용하건 spring boot JPA를 사용하건, 쿼리를 튜닝할 때 SQL을 봐야할 때가 있다. 그럴 때 사용할 수 있는 몇 가지 옵션을 조사해 보았다. 환경 : Spring boot 2.* + hibernate 5.3.10 이

lannstark.tistory.com

 

 

open-in-view : false

JPA에서 영속성 컨텍스트가 데이터베이스 커넥션을 DB에 언제 돌려주느냐를 설정할 수 있다.

  • true : 어드민 같은 사용량이 많지 않은 경우는 true로 사용하여 지연로딩을 @Transactional을 벗어난 곳에서도 할 수 있는 유연함을 챙길 수 있다.
  • false : 사용량이 많은 서비스를 제공하는 어플리케이션 에서는 false로 두어 DB 커넥션을 바로 반납하게 하여, 마르지 않도록 하는 것이 좋으며, 대신 @Transaciotnal이 붙은 메소드 안에서 (필요에 따라) 지연로딩과 관련 초기화를 전부 시켜줘야 한다. 

참고한 블로그⬇️

 

spring.jpa.open-in-view 란?

스프링 부트로 프로젝트로 만들고 실행을 시키면, WARN 이 하나 나온다. (spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explictily configure spring.jpa.open-in-view t

livelyoneweek.tistory.com

 

 

jwt.secret (비밀 키)

비밀 키는 powershell에서 base64 툴을 이용하여 생성하였다.

# base64 인코딩
echo "test" | %{ [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($_)) }
# base64 디코딩
echo "dGVzdA==" | %{ [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($_)) }

 

인코딩에 "test" 대신 넣고 싶은 문자열을 넣으면 된다.

인코딩의 결과값을 디코딩에 넣어주면 다시 원래의 값이 나온다.

 

참고한 블로그⬇️

 

base64 인코딩 디코딩 커맨드라인.

가끔씩 쓰는데 명령어가 헷갈릴 때가 있어 남겨둡니다. bash 쉘에서 base64 툴 이용 시. # base64 인코딩 echo "test" | base64 # base64 디코딩 echo "dGVzdAo=" | base64 -d # without new line echo -n "test" | base64 -w 0powershell

bigcode.tistory.com