Search
Duplicate

프로젝트 환경설정

프로젝트 생성

1.
InetelliJ-Ultimate Ver 이라면 new Project로 SpringBoot start를 해주면 되고, 그게 아니라면 아래 링크를 통해 프로젝트를 생성 다운로드해준다. → https://start.spring.io/
2.
사용 기능: Spring Web, JPA, h2, lombok
SpringBootVersion: 2.3.1
groupId: study
artifactId: querydsl

Gradle Code

Code
참고: IntelliJ Gradle 대신 자바로 바로 실행하기 IntelliJ 최신 버전은 Gradle로 실행하는것이 기본 설정인데, 이보다는 자바로 바로 실행하는게 좀 더 빠르다.
1.
Preferences → Build, Execution, Deployment → Build Tools → Gradle
2.
Build and run using: Gradle → IntelliJ IDEA
3.
Run tests using: Gradle → IntelliJ IDEA

Lombok 적용

1.
Preferences → plugin → lombok 검색&실행(재시작)
2.
Preferences → Annotation Processors 검색 → Enable annotation processing 체크(재시작)
3.
임의의 테스트 클래스를 만들고 @Getter, @Setter 확인

Querydsl 설정과 검증

→ 아래와 같이 build.gradle에 코드를 추가한다. 기존 Default build.gradle과 차이점은 주석을 확인하자.

Code
해당 build.gradle로 세팅 후 reload를 해서 importing 이 완료되었따면 검증용 엔티티를 생성하여 Querydsl이 정상적으로 세팅되었는지 확인해보도록 합시다.

검증용 엔티티 생성

Code

→ 여기까지 완료 되었으면, 검증용 QEntity를 생성하여 사용해보도록 하자. IntelliJ base Gradle을 기준으로 작성되었다.

1.
Gradle → Tasks → build → clean
2.
Gradle → Tasks → other → compileQuerydsl

Gradle 콘솔 사용법

./gradlew clean compileQuerydsl

→ 위와 같이 Gradle을 통해 Q타입 생성을 완료했다면 해당 경로에 QEntity.java가 생성되어 있어야 합니다.(build.generated.querydsl.study.querydsl.dto.QHello)

참고: Q타입은 컴파일 시점에 자동 생성되므로 버전관리(GIT)에 포함되지 않는 것이 좋다. 앞서 설정에서 생성 위치를 gradle build폴더 아래 생성되도록 했기 때문에 이 부분도 자연스럽게 해결된다. (대부분 gradle build 폴더를 git에 포함하지 않는다.)

테스트 케이스 작성 및 검증

Code
참고: 스프링 부트에서 아무런 설정도 하지 않으면 h2 DB를 메모리 모드로 JVM안에서 실행한다.

H2 설치

→ 위 링크를 참고하여 설치

스프링 부트 설정 - JPA, DB

1. yml 설정

application.yml

Code

2. (Optional) 쿼리 파라미터 로그 남기기

1.
로그에 다음을 추가하기 org.hibernate.type : SQL 실행 파라미터를 로그로 남긴다.
2.
→ Gradle 에 아래 내용 추가
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.6.1'
Java
복사
참고: 쿼리 파라미터를 로그로 남기는 외부 라이브러리는 시스템 자원을 사용하므로, 개발 단계에서는 편하게 사용해도 되지만, 운영시스템에 적용하는 시점에서는 성능테스트를 해보고 결정하는 것이 좋다.