728x90
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
이 의존성은처음 추가해봤는데 유효성 검사 어노테이션을 제공해준다!
참고한 블로그⬇️
application.yml은 application.properties로 작성하던 것을 .yml로 고쳐쓴 것이다.
찾아보니 properties보다 yml 파일을 더 자주 사용한다고 하여 익혀두는게 좋을 것 같아 수정하였다.
그리고 yml을 더 자주 사용해서 그런지 properties 설정 레퍼런스가 많지 않았다.
참고한 블로그⬇️
show_sql : true
Hibernate가 DB에 날리는 모든 쿼리(DDL, DML)을 보여주도록하는 설정이다.
format_sql : true
쿼리를 포맷팅해서 보여준다.
참고한 블로그⬇️
open-in-view : false
JPA에서 영속성 컨텍스트가 데이터베이스 커넥션을 DB에 언제 돌려주느냐를 설정할 수 있다.
- true : 어드민 같은 사용량이 많지 않은 경우는 true로 사용하여 지연로딩을 @Transactional을 벗어난 곳에서도 할 수 있는 유연함을 챙길 수 있다.
- false : 사용량이 많은 서비스를 제공하는 어플리케이션 에서는 false로 두어 DB 커넥션을 바로 반납하게 하여, 마르지 않도록 하는 것이 좋으며, 대신 @Transaciotnal이 붙은 메소드 안에서 (필요에 따라) 지연로딩과 관련 초기화를 전부 시켜줘야 한다.
참고한 블로그⬇️
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" 대신 넣고 싶은 문자열을 넣으면 된다.
인코딩의 결과값을 디코딩에 넣어주면 다시 원래의 값이 나온다.
참고한 블로그⬇️
'제로베이스 BE 21기 > Mission' 카테고리의 다른 글
[Reservation] Member 회원가입 & 로그인 기능 구현 (0) | 2024.05.01 |
---|---|
Public-Wifi 프로젝트 기록 (0) | 2024.04.08 |