- analysis/·source-index·state.json 을 final/document.md 제2부·제3부로 접었다. SSOT 는 하나다 - 파일럿 — commit-ambiguity-as-a-result 를 새 기준으로 재선별. 후보 14 → 글감 5 (PROMOTE 5 · MERGE_INTO 3 · KEEP_IN_SSOT 4 · 보류 2). 기록 5건을 다시 썼고 그림 1개를 techviz 로 만들었다 - 재선별이 잡은 것: 제1부 §6.2·§11.1 이 자기 §13.2 와 어긋나 있었다(레인을 안 돌렸다 vs 돌렸다) — 정정. 이미 답이 나와 있던 Question 을 HEAD 재실행 질문으로 다시 세웠다. Concept 이 인용한 코드가 SSOT 에 없어 뺐다 - candidateScope·sourceRepository 기록. 나머지 43개 주제는 재선별 대기(PENDING 905) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
62 lines
3.0 KiB
Markdown
62 lines
3.0 KiB
Markdown
---
|
|
kind: PROJECT_DECISION
|
|
slug: performance-measurement-is-not-a-release-gate
|
|
title: 성능 측정은 릴리스 게이트에 넣지 않는다
|
|
topic: what-a-gate-does-not-prove
|
|
project: clean-architecture-backend-template
|
|
status: 게시 전
|
|
sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916
|
|
rootTreeNode: decision:performance-measurement-is-not-a-release-gate
|
|
decisionStatus: ADOPTED
|
|
decidedOn: 2026-08-30
|
|
source:
|
|
- src/grpc/grpc-testkit/build.gradle
|
|
- src/adapter/outbound/persistence-jpa/build.gradle
|
|
- final/document.md#a20
|
|
- final/document.md#a05
|
|
---
|
|
|
|
# 성능 측정은 릴리스 게이트에 넣지 않는다
|
|
|
|
## 결정문
|
|
|
|
성능 레인은 릴리스 게이트에 포함하지 않고, 기계 의존적인 측정을 게이트 판정의 입력으로 삼지 않는다.
|
|
|
|
## 판단 이유
|
|
|
|
두 가족이 같은 결론에 다른 경로로 도달했다.
|
|
|
|
gRPC 는 처음부터 성능 태그를 기본 레인에서 빼고 이유를 적었다. 불안정한 게이트는 꺼진다는 것이다. 꺼진 게이트는 없는 게이트보다 나쁘다. 목록에 남아 있어서 누군가 그것이 지키고 있다고 믿게 하기 때문이다.
|
|
|
|
JPA 는 사고로 배웠다. 성능 레인이 릴리스 게이트에 걸려 있었고, 그 레인은 기본값이 꺼짐인 불리언 뒤에 있었으며, 유일한 임계값 단언은 임계값이 단언되지 않고 있다는 것이었다. 인증됨이라는 말이 아무 숫자도 비교되지 않은 실행을 가리켰다.
|
|
|
|
수정은 레인을 없애는 것이 아니라 이름을 사실로 바꾸는 것이었다. 그 레인이 진짜로 검증하는 것은 동작 계약이고, 그것은 어떤 기계에서도 참이므로 플래그가 필요 없다.
|
|
|
|
두 경우 모두 조건을 남겼다. 진짜 성능 게이트는 전용 러너와 워밍업과 표본 수와 기록된 기준선을 필요로 하고, 그것이 생기면 별도 레인으로 만든다.
|
|
|
|
## 영향
|
|
|
|
감수하는 것
|
|
|
|
성능 회귀가 릴리스에서 자동으로 잡히지 않는다. 지연이나 처리량이 나빠져도 게이트는 초록이다.
|
|
|
|
성능 측정이 필요하면 별도 인프라를 만들어야 한다. 지금은 그 인프라가 없다.
|
|
|
|
얻는 것
|
|
|
|
게이트의 초록불이 기계 사양에 좌우되지 않는다.
|
|
|
|
불안정한 게이트를 끄고 싶어지는 동기가 사라진다. 그리고 꺼진 게이트가 목록에 남아 지키는 척하는 상태도 없다.
|
|
|
|
동작 계약은 여전히 검증된다. 커넥션 수요와 포화 시 보고와 대기 동작은 기계와 무관하게 참이다.
|
|
|
|
## 근거
|
|
|
|
- **certified라 불리던 레인이 threshold를 하나도 비교하지 않고 있었다**
|
|
이 결정을 만든 사례다.
|
|
- **아무도 돌리지 않는 레인의 게이트는 마지막으로 돌린 사람이 본 것을 보고한다**
|
|
꺼진 게이트가 목록에 남는 문제를 다룬 규칙이다.
|
|
- **컨테이너가 필요한 특수 레인의 실제 결과를 실행으로 확인하지 않았다**
|
|
성능 레인을 포함해 아직 돌리지 않은 것들에 대한 질문이다.
|
|
|