프로젝트 세팅

2023. 1. 14. 20:16프로젝트/라이프 챌린지

728x90
반응형
SMALL

프로젝트 세팅을 우선적으로 진행하도록 한다.

 

1. dependency 세팅

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    runtimeOnly 'com.mysql:mysql-connector-j'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    // querydsl 디펜던시 추가
    implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
    implementation "com.querydsl:querydsl-apt:${queryDslVersion}"
}
  • jpa 
    • Spring 에서 제공해주는 DB에 관한 관리 및 운영이 가능하게 하는 인터페이스 모음이다.
  • thymeleaf
    • 나중에는 react를 직접 공부하면서 구현할 예정이지만 지금은 일단 정상적으로 view 단에서 동작되는지 확인하기 위해서 thymeleaf를 활용해서 구현하도록 한다. (변경 예정)
  • Spring Web
    • Spring 을 통한 웹 사이트를 구현하기 위한 dependency
  • lombok
    • @ 어노테이션을 사용하기 위한 dependency. 없으면 코드 작성이나 기능을 구현하는데에 있어서 많은 시간 소요가 될것이다.
  • spring-boot-devtools
  • mysql connector
    • DB는 가장 대표적인 MySQL을 사용한다.
    • MySql은 데이터를 저장 / 관리하는 DB를 운영하는 기술이다.
  • QueryDsl
    • jpa는 쿼리문을 사용하는 것이 아닌 메소드를 사용하여 동작되기 때문에 코드의 양이나 가독성이 좋다는 장점이 있지만, 보다 복잡한 조건의 데이터를 조회하거나 복잡한 동작을 수행할 때 효율적이지 못하다.
    • QueryDsl은 Query문을 사용하지만 보다 직관적이고 jpa 보다 유연한 조건 적용을 통해 원하는 데이터 결과를 추출할 수 있기 때문에 선택하게 되었다.

 

2. gitignore 

application.properties에 노출되어서는 안되는 중요한 민감한 정보가 들어가기 때문에 초기에 gitignore를 통해 제외시켜주어야 한다.

git에 프로젝트를 업데이트한 후에 뒤늦게 gitignore를 적용하거나 적용하지 않는다면 민감 정보가 git에 공유되어 노출되기 때문에 위험하다. 

따라서 가장 처음에 gitignore를 설정해주도록 한다.

 

 

3. application.properties 설정

앞서 application.properties에는 민감 정보가 들어간다고 말했었다.

그 대표적인 예가 DB 정보에 대한 내용을 기입하는 것인데, 따라서 로컬 환경에서든 AWS를 통한 클라우드 DB를 사용하든 properties에 사용할 DB에 대한 정보를 기입한다.

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/{사용할 DB명}?serverTimezone=UTC&characterEncoding=UTF-8
spring.datasource.username={사용할 DB계정 아이디}
spring.datasource.password={사용할 DB계정 비밀번호}

spring.output.ansi.enabled=always

spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create

server.servlet.encoding.charset=utf-8
server.servlet.encoding.force=true

spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false
spring.main.allow-bean-definition-overriding=true
spring.mvc.pathmatch.matching-strategy=ant_path_matcher

로컬 DB를 우선적으로 사용할 것이기 때문에 주소는 당연히 localhost:{포트번호} 가 될것이다.

 

 

4. QueryDSL 설정

DB에 대한 동작은 QueryDSL을 사용하여 구현할 것이기 때문에 설정해주도록 한다.

 

# QueryDSL 설정

https://dingdingmin-back-end-developer.tistory.com/entry/Spring-Data-JPA-7-Querydsl-%EC%82%AC%EC%9A%A9-gradle-7x

 

 

이렇게 초기 프로젝트 세팅을 1차적으로 완료했다.

Dependency와 같은 설정은 추후에 기능들을 개발하면서 추가될 예정이다.

따라서, 위의 초기 세팅들은 1차적으로 설정한 세팅이고 이후에 변경될 여지가 충분히 있는 설정이다.

 

 

728x90
반응형
LIST

'프로젝트 > 라이프 챌린지' 카테고리의 다른 글

[회원관리] 로그아웃  (0) 2023.01.21
[회원관리] 로그인  (0) 2023.01.20
[회원관리] 회원가입  (0) 2023.01.17
[회원관리] JWT 세팅  (0) 2023.01.16
라이프 챌린지 프로젝트 시작 계기  (0) 2023.01.14