Skip to content

[recap] 쿼리 파라미터 로그 남기기 #1

@move-hoon

Description

@move-hoon

무엇을 알게 되었나요?

아무런 설정 없이 JPA 쿼리를 실행하는 경우 쿼리 파라미터가 '?'로 찍힌다.
그동안 개발을 할 때, 쿼리 파라미터가 '?'로 찍히면, 일단 쿼리가 성공했다고 판단하고, 상세 데이터를 DB에 가야지만 확인할 수 있었다.

그런데 아래 방법을 사용해서 스프링부트 실행 콘솔창에서 확인이 가능하다는 사실을 알게되었다.

yml에 추가

logging
    .level:
        org.hibernate.orm.jdbc.bind: trace

외부 라이브러리 - p6spy

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

  • 먼저, yml에 추가하는 방법은 파라미터 별로 한줄한줄 보여주므로 가시성이 떨어지는 것 같다고 생각된다.
  • 따라서 외부 라이브러리 p6spy를 이용해 연관된 파라미터를 묶어서 보여주는 아래 방법을 이용하는게 더 좋아보인다!

주의점

  • 쿼리 파라미터를 로그로 남기는 외부 라이브러리는 시스템 자원을 사용하므로, 개발 단계에서는 편하게 사용해도 되지만 운영시스템에 적용하려면 꼭 성능테스트를 하고 사용하는 것이 좋다고 한다.
  • 나는 이 라이브러리를 테스트 서버에서 이용하면 좋을 것 같다고 생각이 들었다.
    • dev 서버(테스트 서버)에서는 해당 라이브러리-p6psy를 이용해 쿼리 파라미터가 잘 들어가는 지 판단하고, prod 서버(운영 서버)에서는 앞서 테스트를 했기도 했고, 서버 성능을 고려해야 하기에 적용하지 않는 방법도 좋을 것 같다.

어려운 내용이 있었다면 이를 어떻게 해결하였나요?

  • 첫번째 섹션은 세팅 부분이라 어려운 부분이 존재하지 않았다.

어떤 자료를 참고하였나요?

  • none

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions