insert문을 실행한 SQL문을 보여 주고 있다.
그러나, VALUES(?,?)에서 [?]에 어떠한 값들이 DB에 전달이 되었는 지 알고 싶다.
그럴 때, 여러 가지 방법이 있지만 가장 좋은 방법은 p6spy 외부 라이브러리를 이요하는 것이다.
(다만, Spring Boot의 버전에 따라 p6spy 라이브러리를 적용하는 방법이 다르니 주의!!)
여기서는 스프링 부트 3.x.x 버전을 기준으로 설명을 하겠다.
p6spy-spring-boot-starter 라이브러리는 현재 스프링 부트 3.0을 정상 지원하지 않는다.
(스프링 부트 2.x.x 에서는 위 라이브러리를 gradle에 implentation해주기만 하면 됐다)
스프링 부트 3.0에서 사용하려면 다음과 같은 추가 설정이 필요하다.
1. org.springframework.boot.autoconfigure.AutoConfiguration.imports 파일 추가
src/resources/META-INF/spring/ 디렉터리를 만들고 다음 이름의 파일을 생성
-> org.springframework.boot.autoconfigure.AutoConfiguration.imports
위 파일에 아래 내용을 복붙!
com.github.gavlyukovskiy.boot.jdbc.decorator.DataSourceDecoratorAutoConfiguration
(폴더명: src/resources/META-INF/spring
파일명: org.springframework.boot.autoconfigure.AutoConfiguration.imports )
2. spy.properties 파일 [추가]
src/resources/[spy.properties]
-> [spy.properties] 파일에 아래 내용 복붙!
appender=com.p6spy.engine.spy.appender.Slf4JLogger
3. gradle에서 아래를 추가
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.7'
-> 그러나 이 방법은 성능 테스트를 해서, 성능을 많이 깍아 먹는지 아닌지를 확인해야 한다.
공부를 할 때야 SQL문이 더 잘 보이는 게 좋지만, p6spy는 아무래도 많은 SQL 관련 정보를 뿌리므로 성능을 깍아 먹을 수
가 있다.
고로, 개발을 할 때에는 사용해도 좋지만, 배포/서비스 운영 시에는 꼭 성능 테스트를 통해 성능에 영향을 주는지 확인을 하
고 사용을 해야 한다.
'CS 잡지식' 카테고리의 다른 글
Repository 구현 시, 주의점!!(feat.[수정] 메서드는 필요x) (0) | 2023.05.10 |
---|---|
@ToString(feat. lombok) (1) | 2023.05.10 |
인텔리J - 메서드의 매개변수 조회 단축키(Feat. ctrl + P) (0) | 2023.05.09 |
JPA에서 같은 [식별자]로 Context에서 조회를 하면.... (0) | 2023.05.09 |
JPA에서 생성자의 접근 지정자 - Protected, Pulibc(Feat. Lazy, Proxy) (0) | 2023.05.09 |