프로젝트 생성
프로젝트는 IntelliJ ultimate에서 spring initialize로 생성해주었다. 먼저 백엔드 부분을 완성한 다음, frontend부분을 차차 완성할 예정이다.
프로젝트 세팅
프로젝트를 생성하면서, 로그인 부분을 먼저 만들어보기로 했다.
Dependencies의 경우, 일단 필수적인 패키지와 로그인을 위한 security,jjwt,gson을 구성했고, 나머지 OAuth 같은 패키지는 필요에 따라 나중에 추가할 계획이다.
# for Jwt Key, 32byte(256bit) 이상
jwt:
secretKey: 12345678901234567890123456789012
refreshKey: 12345678901234567890123456789012
Jwt토큰 방식으로 로그인을 진행할 것이기 때문에, 256bit = 32byte의 32글자의 문자열을 application.yml에 적어주었다. 파일안에서 선언해놓아도 되지만, 이렇게 따로 application.yml에 빼놓는 것이 보안적으로 좋다.
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.3'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '11'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-devtools'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
implementation 'mysql:mysql-connector-java:8.0.23'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
// jwts
implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.2'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.2'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.2'
// gson
implementation 'com.google.code.gson:gson:2.8.9'
// dto validation
implementation 'org.springframework.boot:spring-boot-starter-validation'
}
tasks.named('test') {
useJUnitPlatform()
}
기본적인 dependencies들과 로그인을 위한 security,gson,jjwt, 테스트를 위한 패키지들을 build.gradle에 설정해주었다.
java버전의 경우 11, springboot는 2.7.3버전으로 해주었다. 물론 최신버전인 17이나 18로 구성해주어도 되지만, 많은 환경에서 8 혹은 11버전을 사용하고 있고, 버전에 따라 구성하는 코드도 조금씩 달라지기 때문에 11 버전을 선택해주었다.
다음에는 프로젝트 주제와 DB를 구상을 해보도록 해야겠다.
'Project > 쇼핑몰 프로젝트' 카테고리의 다른 글
쇼핑몰 시스템 구현 (0) | 2024.01.20 |
---|