728x90
반응형
프로젝트 생성
- Spring Initializr에서 프로젝트 생성
- 프로젝트 구성
- Gradle Project, Java Language
- Spring 2.5.X version, Java 11 version
- Group Id : study, Artifact Id : data-jpa - 프로젝트 의존성
- Spring Web
- Spring Data JPA
- H2 Database
- Lombok
라이브러리 살펴보기
Gradle 의존관계 보기
./gradlew dependencies --configuration compileClasspath
스프링 부트 라이브러리
- spring-boot-starter-web
ㄴ spring-boot-starter-tomcat : 톰캣(웹서버)
ㄴ spring-webmvc : 스프링 웹 MVC - spring-boot-starter-data-jpa
ㄴ spring-boot-starter-aop
ㄴ spring-boot-starter-jdbc
ㄴ HikariCP 커넥션 풀(스프링 부트 2.0 부터 기본)
ㄴ hibernate + JPA
ㄴ spring-data-jpa : 스프링 데이터 JPA - spring-boot-starter
ㄴ spring-boot
ㄴ spring-core
ㄴ spring-boot-starter-logging
ㄴ logback, slf4j
테스트 라이브러리
- spring-boot-starter-test
ㄴ junit : 테스트 프레임워크, 스프링 부터 2.2 부터 junit5(jupiter) 사용, 과거 버전은 vintage
ㄴ mockito : 목 라이브러리
ㄴ assertj : 테스트 코드를 좀 더 편하게 작성하도록 도와주는 라이브러리
ㄴ spring-test : 스프링 통합 테스트 지원
H2 데이터베이스 설치
- H2 Database 홈페이지 접속하여 다운로드
- 클라이언트에 포함된 라이브러리 버전과 데이터베이스 버전이 일치해야 한다.
데이터베이스 파일 생성 방법
최초 접속 시 DB파일 생성이 필요하기 때문에 jdbc:h2:~/datajpa
로 접속하면 파일이 생성되고 그 뒤부터는 jdbc:h2:tcp://localhost/~/datajpa
로 접속한다. 파일로 접속하게 되면 파일에 Lock이 걸려서 동시 접속이 불가능하다.
프로젝트 환경설정 및 외부 라이브러리
프로젝트 환경설정 파일
YAML 형식의 application.yml
프로젝트 환경설정용 파일을 생성한다.
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/datajpa
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
# '[show_sql]': true
'[format_sql]': true
logging.level:
'[org.hibernate.SQL]': debug
# '[org.hibernate.type]': trace
show_sql
: console에 SQL 표시org.hibernate.SQL
: Logger를 통해 SQL을 기록org.hibernate.type
: SQL 파라미터 표시
쿼리 파라미터 로그 외부 라이브러리 사용
외부 라이브러리인 p6spy를 사용하여 쿼리 파라미터로그를 남겨보자
build.gradle
dependencies {
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.7'
}
※ 참고로 개발시엔 외부 라이브러리를 자유롭게 사용해도 되지만 운영시에는 시스템 자원 확인 및 성능 테스트 후 사용해야 한다.
728x90
반응형
'Dev > Spring Data JPA' 카테고리의 다른 글
[Spring Data JPA] 확장 기능 (0) | 2021.12.13 |
---|---|
[Spring Data JPA] 쿼리 메소드 기능 (0) | 2021.12.09 |
[Spring Data JPA] 공통 인터페이스 기능 (0) | 2021.11.29 |
[Spring Data JPA] 예제 도메인 모델 (0) | 2021.11.29 |
[Spring Data JPA] 강좌 소개 (0) | 2021.10.22 |
댓글