refactor: 문서 개선 중

This commit is contained in:
donghyeon-ka
2026-09-21 14:30:55 +09:00
parent c93cdea150
commit 805a18f486
1497 changed files with 525837 additions and 59152 deletions
@@ -0,0 +1,52 @@
---
kind: REFERENCE
slug: one-sqlstate-with-two-contributors-fails-startup
title: 같은 SQLState 를 둘이 등록하면 값이 같아도 시작을 실패시킨다
topic: http-failure-classification
topicName: HTTP 실패 분류와 재시도 안전성
project: clean-architecture-backend-template
status: 게시 전
sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916
source:
- final/document.md#a05
- final/document.md#5-1
- final/document.md#a05 §7.1
---
# 같은 SQLState 를 둘이 등록하면 값이 같아도 시작을 실패시킨다
여러 모듈이 같은 SQLSTATE 매트릭스에 기여할 때는 최종 값이 같더라도 중복 등록을 허용하지 않는다. 매핑 값뿐 아니라 어느 모듈이 그 항목을 소유하는지도 계약의 일부로 본다.
## 관계
- **실패 어휘 세 층과 그 사이를 잇는 SQLState 매트릭스**
이 규칙이 적용되는 매핑 계층을 설명한다.
- **인식하지 못한 SQLSTATE 는 추측하지 않는다**
매핑 누락과 중복을 모두 명시적으로 다루는 짝이 되는 결정이다.
## 목적
last-writer-wins 병합이 매핑 소유권 충돌을 숨기지 못하게 한다.
## 규칙
1. 한 SQLSTATE는 한 contributor가 소유한다.
2. 두 contributor가 같은 SQLSTATE를 등록하면 매핑 결과가 같아도 startup validation을 실패시킨다.
3. 충돌을 해결하려면 한쪽 등록을 제거하거나 소유권을 하나로 합친다.
4. map merge 결과만 비교하지 않고 contributor identity를 함께 검사한다.
## 적용 조건
여러 모듈이 같은 SQLSTATE 또는 오류 코드 매트릭스에 항목을 기여할 때
여러 기여자의 등록 결과가 런타임 failure classification을 결정할 때
## 예외
기여자가 하나뿐인 매트릭스에는 중복 소유권 검사가 필요하지 않다.
중복 등록 자체를 계약으로 허용하려면 어떤 contributor가 우선하는지 별도 규칙과 검증이 있어야 한다. 현재 이 프로젝트는 그 방식을 선택하지 않는다.
## 예시
모듈 A와 B가 모두 같은 SQLSTATE를 같은 category로 등록해도 “결과가 같으니 괜찮다”고 병합하지 않는다. 둘 중 누가 이 매핑을 변경해야 하는지 알 수 없기 때문이다.