실전! 스프링 부트와 JPA 활용1(웹 애플리케이션 개발)

Ch01. 프로젝트 환경설정 - H2 데이터베이스, JPA와 DB 설정 동작 확인

webmaster 2022. 4. 26. 01:09
728x90

H2 설치하기

윈도우 설치 버전

https://h2database.com/h2-setup-2019-10-14.exe

윈도우, 맥, 리눅스 실행 버전

https://h2database.com/h2-2019-10-14.zip

 

JPA와 DB 설정 동작 확인

Application.yml 설정

Application.yml 설정

  • JPA 관련 설정을 한다.
  • spring.jpa.hibernate.ddl-auto: create
    • 이 옵션은 애플리케이션 실행 시점에 테이블을 drop 하고, 다시 생성한다
  • show_sql : 옵션은 System.out 에 하이버네이트 실행 SQL을 남긴다.
    • show_sql 옵션은 System.out 에 하이버네이트 실행 SQL을 남긴다.
  • org.hibernate.SQL : 옵션은 logger를 통해 하이버네이트 실행 SQL을 남긴다.

Member 엔티티 생성

Member Entity

MemberRepository 생성

MemberRepository save, find 메소드 작성

MemberRepositoryTest

Repository 기능이 잘 동작하는지 테스트 한다.

TDD

실제 DB를 확인해 보면 데이터가 비어있다

  • Why? Test에 Tranactional이 있다면 자동으로 롤백을 해주기 때문
  • @Rollback(false)를 해주게 되면 데이터가 저장된다

Build 해보기

  • ./gradlew clean build
  • cd build/libs
  • java -jar jpashop-0.0.1-SNAPSHOT.jar 

Build 실행

 

내가 만든 프로젝트가 빌드되어 실행된다.

쿼리 파라미터 로그 남기기

YML org.hibernate.type : trace 추가
쿼리 파라미터에 어떤 값이 들어가는지 확인 할 수 있다.

파람 로그 확인

부족한 경우, 외부 라이브러리 활용

https://github.com/gavlyukovskiy/spring-boot-data-source-decorator

 

GitHub - gavlyukovskiy/spring-boot-data-source-decorator: Spring Boot integration with p6spy, datasource-proxy, flexy-pool and s

Spring Boot integration with p6spy, datasource-proxy, flexy-pool and spring-cloud-sleuth - GitHub - gavlyukovskiy/spring-boot-data-source-decorator: Spring Boot integration with p6spy, datasource-p...

github.com

  • build.gradle에 추가
    • implementation 'com.github.gavlyukovskiy:p6 spy-spring-boot-starter:1.5.6'

의존성 추가 (build.gradle)
더 보기 좋게 파라미터로 들어가는 로그를 확인할 수 있다.

  • 운영단계에서는 해당 로그를 남기는 기능을 사용하게 되면 성능에 영향을 미칠 수 있으므로 성능 테스트 후 적용할지 말지를 판단하자 -> 왠만하면 개발단계에만 적용
728x90