[SpringBoot] SQL 쿼리 파라미터 로그 남기는 방법

2026. 1. 2. 19:00·Back end/Spring Project
반응형

JPA를 사용하다 보면 실제로 실행된 SQL과 바인딩된 파라미터 값을 확인해야 할 때가 많습니다.
하지만 기본 설정만으로는 ? 만 출력되어, 실제 값은 확인하기 어렵습니다.

 
이번 글에서는 쿼리 파라미터를 로그로 남기는 두 가지 방법을 알아보겠습니다.


1️⃣ Hibernate 로그 레벨 설정으로 파라미터 확인

application.yml 설정

Spring Boot 버전에 따라 아래와 같이 로그 옵션을 추가합니다.

logging.level:
  org.hibernate.SQL: debug
#  org.hibernate.type: trace #스프링 부트 2.x, hibernate5
  org.hibernate.orm.jdbc.bind: trace #스프링 부트 3.x, hibernate6

적용 결과

다음과 같이 쿼리의 특정 파라미터 위치에 어떤 값이 바인딩되었는지 확인할 수 있습니다.

단점

SQL 로그와 파라미터 로그가 분리되어 출력되어 한눈에 파악하기에는 가독성이 떨어집니다.


2️⃣ 외부 라이브러리 사용 (p6spy)

SQL과 파라미터를 한 줄로 완성된 형태로 보고 싶다면,
외부 라이브러리를 사용하는 방법이 있습니다.
대표적으로 p6spy가 많이 사용됩니다.

build.gradle

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

적용 결과

SQL과 파라미터가 완성된 형태로 출력되는 것을 확인할 수 있습니다.

참고 자료

아래 깃허브에서 다양한 옵션으로 로그 포맷을 커스터마이징할 수 있습니다.

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 - gavlyukovskiy/spring-boot-data-source-decorator

github.com


⚠️ 운영 환경 적용 시 주의사항

쿼리 파라미터 로그를 남기는 외부 라이브러리는
시스템 자원을 사용하므로, 성능에 영향을 줄 수 있습니다.
 
따라서 개발 단계에서는 자유롭게 사용해도 되지만
운영시스템에 적용하려면 꼭 성능테스트를 하고 사용해야합니다.

반응형

'Back end > Spring Project' 카테고리의 다른 글

[Spring] JPA - 프록시(Proxy)  (0) 2025.08.29
[Spring] JPA - @MappedSuperclass  (0) 2025.08.27
[Spring] JPA 양방향 연관관계와 연관관계의 주인  (0) 2025.08.20
[Spring] JPA 준영속 상태(Detached)  (0) 2025.08.15
[Spring] JPA flush  (0) 2025.08.14
'Back end/Spring Project' 카테고리의 다른 글
  • [Spring] JPA - 프록시(Proxy)
  • [Spring] JPA - @MappedSuperclass
  • [Spring] JPA 양방향 연관관계와 연관관계의 주인
  • [Spring] JPA 준영속 상태(Detached)
Kim-SooHyeon
Kim-SooHyeon
개발일기 및 알고리즘, 블로그 운영에 대한 글을 포스팅합니다. :) 목표: 뿌리 깊은 개발자 되기
    반응형
  • Kim-SooHyeon
    soo_vely의 개발로그
    Kim-SooHyeon
  • 전체
    오늘
    어제
    • 분류 전체보기 (255)
      • 알고리즘 (108)
        • 자료구조 (3)
        • Java (104)
        • Python (1)
      • Back end (71)
        • Spring Project (28)
        • Java (21)
        • API (1)
        • Python (0)
        • Django (3)
        • Linux (1)
        • 서버 (2)
        • 에러로그 (11)
        • 부스트 코스 (1)
      • Front end (9)
        • HTML, CSS (4)
        • JavaScript (4)
        • JQuery (0)
      • 기타 프로그래밍 (4)
        • Android Studio (1)
        • Arduino (2)
        • Azure Fundamental(AZ-900) (1)
      • 개발도구 (24)
        • IntelliJ (2)
        • Git (12)
        • SVN (0)
        • Eclipse (2)
        • 기타 Tool (8)
      • Database (16)
        • Oracle (10)
        • MySQL (0)
        • H2 Database (3)
        • ORM & JPA (1)
      • 자격증 (10)
        • 컴활 1급 (7)
        • 컴활 2급 (2)
        • SQLD (1)
      • 기타 (13)
        • 블로그 운영 (6)
        • 문서 (1)
        • 기타 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준
    Git
    solved.ac
    spring
    for문
    github
    배열
    1차원 배열
    단계별풀기
    springboot
    알고리즘
    구현
    jpa
    BOJ
    java
    오라클
    백준 자바
    문자열
    Oracle
    백준알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Kim-SooHyeon
[SpringBoot] SQL 쿼리 파라미터 로그 남기는 방법
상단으로

티스토리툴바