Skip to content

Docs: 전역 N+1 검사가 보고하지만 N+1 이 아닌 세 종류를 적는다 - #122

Open
jjh75607 wants to merge 1 commit into
masterfrom
docs/n-plus-one-false-positives
Open

Docs: 전역 N+1 검사가 보고하지만 N+1 이 아닌 세 종류를 적는다#122
jjh75607 wants to merge 1 commit into
masterfrom
docs/n-plus-one-false-positives

Conversation

@jjh75607

Copy link
Copy Markdown
Owner

Pull Request

Related Issue

  • 없음. 문서만 고치는 PR 이라 이슈를 만들지 않았다

Summary

전역 N+1 검사(query-counter.n-plus-one.enabled)가 보고하지만 N+1 이 아닌 세 종류를 README 두 벌의
"이 검사가 못 보는 것" 절에 표로 적는다. 현장 측정에서 잰 비율도 함께 적는다.

Details

  • 기존 문단은 "일부러 반복문에서 조회, 파라미터화 테스트, 페이징" 세 가지를 한 문장으로 나열했다.
    공개 스위트 넷에 켜서 보고 80건을 테스트 코드와 대조한 결과, 실제로 나오는 모양은 다음 셋이었다
    • 긍정과 부정 두 경우를 한 테스트에서 확인 (같은 SELECT, 리터럴만 다름)
    • 페이징이나 커서를 다음 장으로 넘김 (오프셋이나 커서 값만 다름)
    • 같은 연산을 순차로 여러 번 호출하는 라이프사이클 테스트 (id 조회가 단계마다 반복, 사이에 쓰기)
  • 비율은 스위트 스타일에 따라 46건 중 4건에서 25건 중 25건까지 갈렸다. 그래서 "몇 퍼센트" 한 숫자를
    적지 않고 스타일별로 적었다
  • 실행 횟수로도, 반복이 테스트의 첫 쿼리인지로도 진짜와 갈리지 않는다는 것을 적었다. 이 검사가
    임계값을 두지 않는 이유이고, 읽는 사람이 보고를 어떻게 대조해야 하는지(앞선 쿼리가 돌려준 행의 id 인가)를
    마지막에 적었다
  • 표본 저장소 이름은 적지 않았다. 사람이 특정되는 팀 프로젝트가 포함돼 있고, 라이브러리를 고치기 위한
    표본이지 그 코드에 대한 지적이 아니다. 예시는 공개 예제(spring-petclinic-rest)의 모양으로 썼다
  • CHANGELOG.md [Unreleased]Changed 로 적었다

ETC

측정 기록은 ~/other/oss-contrib/query-counter-field-test/RESULTS-2026-08-27.md 의 발견 2 와 발견 4 다.
같은 측정에서 세운 판정 신호 가설(반복이 끊기지 않고 연속인가)은 별도 브랜치에서 시제품으로 재는 중이고
이 PR 과 무관하다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant