실전! 스프링 부트와 JPA 활용 ( 프로젝트 환경설정 )

박재언·2023년 2월 23일
0
post-thumbnail

프로젝트 환경설정

build.gradle

plugins {
	id 'java'
	id 'org.springframework.boot' version '2.7.8'
	id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}

group = 'jpabook'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

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'
	implementation 'org.springframework.boot:spring-boot-devtools'
	implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6'
	testImplementation 'junit:junit:4.13.1'
	compileOnly 'org.projectlombok:lombok'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
	useJUnitPlatform()
}

처음 사용해보는 라이브러리 정리
implementation 'org.springframework.boot:spring-boot-devtools'

  • devtools는 Spring boot에서 제공하는 개발 편의를 위한 모듈
  • 파일의 변경을 감지하고 자동으로 서버를 restart 해준다 (Automatic Restart)
  • 웹 파일 수정 시 자동으로 브라우저가 새로 고침 되는 기능 (Live Reload)
  • 템플릿 엔진의 캐싱 기능을 개발 단계에서 자동으로 꺼주는 역할 (Property Defaults)

implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6'

  • p6spy는 쿼리 파라미터를 로그에 남겨주고 추가적인 기능을 제공하는 외부 라이브러리이다.
  • yaml설정으로도 쿼리 파라미터의 값들을 나타낼 수 있지만 p6spy가 더 보기 편하게 제공한다.
  • 외부 라이브러리는 시스템 자원을 사용하므로 운영시스템에 적용하려면 성능테스트를 하고 사용 하는 것이 좋다.
  • 스프링부트 3.x에서는 정상 지원하지 않는다.

application.yml

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/jpashop
    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

주요 내용
ddl-auto: create : 애플리케이션 실행 시점에 테이블을 drop 하고, 다시 생성한다.
show_sql : 옵션은 System.out 에 하이버네이트 실행 SQL을 남긴다.
org.hibernate.SQL : 옵션은 logger를 통해 하이버네이트 실행 SQL을 남긴다.

  • 모든 출력은 가급적 로거를 통해 남기는게 좋기 때문에 show-sql은 주석 처리
    org.hibernate.type: trace : SQL 실행 파라미터를 로그로 남긴다.

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

0개의 댓글