본문 바로가기
개인 공부/BackEnd Study

[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 9 -

by 킴도비 2024. 3. 28.

9.1 JPA 로깅 설정하기

  • 로깅(logging)이란?
    • 시스템이 작동할 때 당시의 상태와 작동 정보를 기록하는 것
  • 로깅은 7단계가 있음.
    • TRACE(LV 1), DEBUG(LV 2), INFO(LV 3), WARN(LV 4), ERROR(LV 5), FATAL(LV 6), OFF(LV 7)
  • 출력 레벨을 설정하면 해당 레벨 이상의 로그가 출력(예시 | info로 설정 info/warn/error/fatal/off)로그 모두 기록
  • 여기서는 JPA가 동작을 할 때 수행되는 SQL 쿼리를 보기 위해 로그 레벨을 DEBUG로 설정
  • TRACE(LV 1) : DEBUG 레벨보다 더 상세한 정보
  • DEBUG(LV 2) : 응용 프로그램을 디버깅하는 데 필요한 세부 정보
  • INFO(LV 3) : 응용 프로그램의 순조로운 진행 정보
  • WARN(LV 4) : 잠재적으로 유해한 상황 정보
  • ERROR(LV 5) : 응용 프로그램이 수행할 수 있는 정도의 오류 정보
  • FATAL(LV 6) : 응용 프로그램이 중단될 만한 심각한 오류 정보
  • OFF(LV 7) : 로깅 기능 해제

 

#application.properties에서 설정

# 디버그 레벨로 쿼리 출력
logging.level.org.hibernate.SQL=DEBUG

# 쿼리 줄바꿈하기
spring.jpa.properties.hibernate.format_sql=true

# 매개변수 값 보여주기
logging.level.org.hibernate.type.descripter.sql.BasicBinder=TRACE

# DB URL 설정
# 유니크 URL 생성하지 않기
spring.datasource.generate-unique-name=false

# 고정 URL 설정하기
spring.datasource.url=jdbc:h2:mem:testdb

 

 

9.2 SQL 쿼리 로그 확인하기

  • @GenerateValue 어노테이션에서 괄호를 열고 strategy = GenerationType.IDENTITY를 입력한 후 괄호를 닫는다.
  • id 자동 생성 전략을 추가하면 앞으로 데이터를 생성할 때마다 DB가 알아서 id에 1,2,3,4 등 값을 넣어 준다.

 

9.3 기본 SQL 쿼리 작성하기

  • 생성 테이블명을 특정 값으로 명시하고 싶은 경우. 엔티티 클래스에 @Table 어노테이션을 사용하면 됨.
  • 엔티티 클래스에 @Table(name= "ORDERS")를 선언하면 클래스명과 상관없이 ORDERS라는 이름의 테이블이 생성 됨.