본문 바로가기
Dev/Spring Data JPA

[Spring Data JPA] 프로젝트 환경설정

by dev_jsk 2021. 10. 22.
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

Spring Initializr 설정

라이브러리 살펴보기

Gradle 의존관계 보기

./gradlew dependencies --configuration compileClasspath

Gradle 조회 결과

스프링 부트 라이브러리

  • 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'
}

p6spy 라이브러리를 통해 SQL 파라미터를 포함한 SQL 로그가 기록된다.

※ 참고로 개발시엔 외부 라이브러리를 자유롭게 사용해도 되지만 운영시에는 시스템 자원 확인 및 성능 테스트 후 사용해야 한다.

728x90
반응형

댓글