diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f33f27..72bb4d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,17 +8,20 @@ ## [Unreleased] -### Fixed - -- **테스트 스레드가 아닌 곳의 기록이 무한히 쌓이던 것을 막았습니다.** `other-threads.enabled` 를 켜지 않은 채 실제 HTTP 요청을 보내는 테스트를 돌리면, 서버 워커 스레드에 기록이 쌓이고 아무도 비우지 않았습니다. 읽을 수도 없는 기록입니다. 1만 개에 닿으면 그 뒤는 담지 않고, 그 사실과 `other-threads.enabled` 로 제대로 세는 길을 한 번 알립니다 - -- **`@JdbcTest` 와 `@DataJdbcTest` 에서도 쿼리가 기록됩니다.** `0.4.0` 은 `@DataJpaTest` 만 덮었습니다. 슬라이스마다 Spring Boot 3.x 와 4.x 의 등록 파일 이름이 달라 여섯 개가 됐습니다 +## [0.5.0] - 2026-08-19 ### Added - **`query-counter.max-queries.per-test` 로 한 테스트의 쿼리 수 상한을 둘 수 있습니다. 테스트에는 아무것도 안 적습니다.** 반복문 안에서 리포지토리를 부르면 쿼리 3개가 200개가 되는데, 그것이 어느 테스트에서 일어나든 잡습니다. 손으로 적는 어서션이 한 테스트의 정확한 수를 말하는 것과 달리 모든 테스트의 대략의 수를 말합니다. 기본은 0(상한 없음)입니다 + - **`query-counter.max-queries.report` 로 테스트마다 쿼리 수를 로그로 남깁니다.** 상한을 어림수로 잡지 않고 지금 스위트의 최대값을 보고 정하기 위한 것입니다. 테스트 설정에서 `logging.level.root: warn` 을 두면 이 보고가 걸러지므로, 그 경우에는 경고로 알립니다 +### Fixed + +- **`@JdbcTest` 와 `@DataJdbcTest` 에서도 쿼리가 기록됩니다.** `0.4.0` 은 `@DataJpaTest` 만 덮었습니다. 슬라이스마다 Spring Boot 3.x 와 4.x 의 등록 파일 이름이 달라 여섯 개가 됐습니다 + +- **테스트 스레드가 아닌 곳의 기록이 무한히 쌓이던 것을 막았습니다.** `other-threads.enabled` 를 켜지 않은 채 실제 HTTP 요청을 보내는 테스트를 돌리면, 서버 워커 스레드에 기록이 쌓이고 아무도 비우지 않았습니다. 읽을 수도 없는 기록입니다. 1만 개에 닿으면 그 뒤는 담지 않고, 그 사실과 `other-threads.enabled` 로 제대로 세는 길을 한 번 알립니다 + ## [0.4.0] - 2026-08-19 ### Added diff --git a/CLAUDE.md b/CLAUDE.md index 7e1b59d..96ead47 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -277,7 +277,7 @@ checkstyle 은 없다. ## 릴리스 -설치 좌표는 `io.github.jjh75607:query-counter:0.4.0` 이다. `0.1.0` 이하는 Central 에 없다. +설치 좌표는 `io.github.jjh75607:query-counter:0.5.0` 이다. `0.1.0` 이하는 Central 에 없다. JitPack 으로 내던 시절의 것이고 2026-08-13 에 그 경로를 접었다. 근거는 태그 7개 중 JitPack 이 빌드한 것이 둘뿐이었다는 것이다. JitPack 은 요청받을 때만 빌드하므로 나머지는 아무도 받아간 적이 없다는 뜻이다. 쓰는 사람이 없는데 배포 경로가 둘이면 서명 설정과 문서와 검증이 모두 @@ -294,7 +294,7 @@ JitPack 으로 내던 시절의 것이고 2026-08-13 에 그 경로를 접었다 4. `https://central.sonatype.com/publishing/deployments` 에서 확인하고 Publish 를 누른다. 이걸 누르기 전에는 아무도 받을 수 없다 5. `verify-release.yml` 을 태그를 넣어 수동 실행한다. 공개를 누른 뒤에 도는 것이라 자동 - 실행은 걸어두지 않았다. 명령으로는 `gh workflow run verify-release.yml -f tag=v0.4.0` 이다 + 실행은 걸어두지 않았다. 명령으로는 `gh workflow run verify-release.yml -f tag=v0.5.0` 이다 **Publish 를 누른 뒤 `repo1.maven.org` 에 퍼지기까지 몇 분에서 수십 분 걸린다.** 4번과 5번 사이의 이 시차를 모르면 5번의 404 를 릴리스 실패로 읽는다. `0.4.0` 에서 실제로 그랬다. @@ -338,7 +338,7 @@ Central 은 서명 없는 아티팩트를 받지 않는다. 서명 키는 저장 `-Pversion=0.3.0-SNAPSHOT` 으로 서명을 건너뛰려는 시도는 통하지 않는다. `build.gradle` 이 `version` 을 직접 대입하고 있어서 명령줄 프로퍼티가 덮이지 않는다. -그래서 그 자리를 `-PpublishVersion` 으로 열어 두었다. `version = findProperty('publishVersion') ?: '0.4.0'` +그래서 그 자리를 `-PpublishVersion` 으로 열어 두었다. `version = findProperty('publishVersion') ?: '0.5.0'` 이고, SNAPSHOT 을 넘기면 `signMavenPublication` 이 SKIPPED 되어 키 없이 `publishToMavenLocal` 이 된다. **소비자 스모크 테스트 전용이다.** diff --git a/README.ko.md b/README.ko.md index 29f8a8f..4ac257d 100644 --- a/README.ko.md +++ b/README.ko.md @@ -74,7 +74,7 @@ repositories { } dependencies { - testImplementation("io.github.jjh75607:query-counter:0.4.0") + testImplementation("io.github.jjh75607:query-counter:0.5.0") } ``` diff --git a/README.md b/README.md index 5e7123b..2b6eb7e 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ repositories { } dependencies { - testImplementation("io.github.jjh75607:query-counter:0.4.0") + testImplementation("io.github.jjh75607:query-counter:0.5.0") } ``` diff --git a/build.gradle b/build.gradle index 0df4029..bf760ce 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ group = 'io.github.jjh75607' // CI 의 소비자 스모크 테스트가 -PpublishVersion 으로 SNAPSHOT 을 발행한다. // SNAPSHOT 은 서명을 건너뛰므로 키 없이 로컬 저장소로 낼 수 있다. -version = findProperty('publishVersion') ?: '0.4.0' +version = findProperty('publishVersion') ?: '0.5.0' java { toolchain {