Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
hoonyworld opened this issue Jul 2, 2024 · 0 comments
Open

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

hoonyworld opened this issue Jul 2, 2024 · 0 comments
Assignees
Labels
recap recap sec1 sec1

Comments

@hoonyworld
Copy link
Member

hoonyworld commented Jul 2, 2024

무엇을 알게 되었나요?

아무런 설정 없이 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
@hoonyworld hoonyworld added sec1 sec1 recap recap labels Jul 2, 2024
@hoonyworld hoonyworld self-assigned this Jul 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
recap recap sec1 sec1
Projects
None yet
Development

No branches or pull requests

1 participant