194 lines
4.9 KiB
Markdown
194 lines
4.9 KiB
Markdown
# Web Superpowers 문서 정적 검증 결과
|
|
|
|
검증 기준일: 2026-08-13
|
|
|
|
## 1. 검증 대상
|
|
|
|
| 문서 | 행 수 |
|
|
|---|---:|
|
|
| `web-inbound-http-api-execution-platform-design.md` | 1,656 |
|
|
| `web-inbound-http-api-execution-platform-implementation-plan.md` | 4,762 |
|
|
| `web-advanced-capabilities-expansion-plan.md` | 1,532 |
|
|
| 원본 심층 리서치 | 1,597 |
|
|
|
|
## 2. 구조 검증
|
|
|
|
| 항목 | 결과 |
|
|
|---|---:|
|
|
| 실행 검사 | 1,097 |
|
|
| 통과 | 1,097 |
|
|
| 실패 | 0 |
|
|
| Stable Task | 58 |
|
|
| Advanced Task | 19 |
|
|
| Stable Create 경로 | 289 |
|
|
| Advanced Create 경로 | 94 |
|
|
| Stable Task 번호 연속성 | PASS |
|
|
| Advanced Task 번호 연속성 | PASS |
|
|
| 모든 Task의 Files·Interfaces | PASS |
|
|
| 모든 Task의 Implementation requirements | PASS |
|
|
| 모든 Task의 Step 1~5 | PASS |
|
|
| 모든 Task의 실패·통과 예상 결과 | PASS |
|
|
| 모든 Task의 Git commit 명령 | PASS |
|
|
| Stable Create 경로 중복 | 없음 |
|
|
| Advanced Create 경로 중복 | 없음 |
|
|
| Stable·Advanced Create 경로 충돌 | 없음 |
|
|
| Markdown code fence 균형 | PASS |
|
|
| `TODO`·`TBD`·`FIXME` | 없음 |
|
|
|
|
검증 명령:
|
|
|
|
```bash
|
|
cd /mnt/data
|
|
./validate_web_docs.py
|
|
```
|
|
|
|
실행 결과:
|
|
|
|
```text
|
|
checks=1097 passed=1097 failed=0
|
|
```
|
|
|
|
## 3. 설계 핵심 계약 검증
|
|
|
|
다음 계약이 설계서와 계획서에 모두 존재하는지 확인했습니다.
|
|
|
|
```text
|
|
W1 / W2 / W3 / W4 공개 계층
|
|
MVC와 WebFlux Starter 상호 배타성
|
|
Request / Application / Response Evidence 분리
|
|
APPLICATION_COMMITTED와 HTTP response delivery 분리
|
|
RFC 9457 Problem Details
|
|
400 / 422 분리
|
|
409 / 412 분리
|
|
OpenAPI 3.1.2 Stable
|
|
Path major API version
|
|
HMAC keyset cursor
|
|
ETag / If-Match
|
|
Idempotency semantic fingerprint
|
|
Redis가 DB commit evidence의 유일한 source가 아님
|
|
Business mutation + JPA idempotency evidence same transaction
|
|
Application commit 후 response-loss fault test
|
|
Durable acceptance 이후에만 202
|
|
Trusted Nginx forwarded-header boundary
|
|
Tomcat / Jetty / Reactor Netty / Nginx 실제 gate
|
|
Rate limit 429와 Admission 503 분리
|
|
Low-cardinality metric·access log
|
|
Stable·Advanced dependency 격리
|
|
```
|
|
|
|
## 4. 계획 완결성 검증
|
|
|
|
Stable 계획은 다음 단계로 구성됩니다.
|
|
|
|
```text
|
|
Task 1~14
|
|
→ Core·HTTP·JSON·Problem·Architecture Foundation
|
|
|
|
Task 15~22
|
|
→ MVC·Tomcat·Jetty·WebFlux·Reactor Netty
|
|
|
|
Task 23~30
|
|
→ Security·Proxy·Versioning·Route·OpenAPI
|
|
|
|
Task 31~36
|
|
→ Collection Query·Cursor·Conditional·Evidence
|
|
|
|
Task 37~43
|
|
→ Idempotency·JPA Evidence·Redis Gate·Response Loss
|
|
|
|
Task 44~48
|
|
→ Durable Operation·Outbox·HTTP Resource·Cache
|
|
|
|
Task 49~55
|
|
→ Budget·Rate·Admission·CORS/CSRF·Order·Observability·Nginx
|
|
|
|
Task 56~58
|
|
→ Cross-stack Contract·Performance·Stable Release
|
|
```
|
|
|
|
Advanced 계획은 다음 단계로 구성됩니다.
|
|
|
|
```text
|
|
Task 1~3
|
|
→ Module isolation·Virtual Thread·Controlled Blocking Bridge
|
|
|
|
Task 4~5
|
|
→ JSON Merge Patch·JSON Patch
|
|
|
|
Task 6~13
|
|
→ Streaming Core·SSE·NDJSON·JSON Sequence·Drain·Replay
|
|
|
|
Task 14~18
|
|
→ Functional WebFlux·CBOR·XML·OpenAPI 3.2·RateLimit Draft
|
|
|
|
Task 19
|
|
→ Soak·Rollback·Promotion Gate
|
|
```
|
|
|
|
## 5. 검증 범위의 한계
|
|
|
|
현재 검증은 **문서의 구조, 요구사항 추적성, 내부 계약, 파일 경로, 작업 순서에 대한 정적 검증**입니다.
|
|
|
|
실제 Backend Skeleton 저장소가 이번 입력에 포함되지 않았으므로 다음은 실행한 상태가 아닙니다.
|
|
|
|
```text
|
|
Gradle configuration·compile
|
|
Spring Boot ApplicationContext 기동
|
|
Tomcat·Jetty·Reactor Netty 실제 contract
|
|
PostgreSQL JPA idempotency transaction
|
|
Redis concurrent gate
|
|
Messaging outbox operation
|
|
Nginx TLS·Forwarded topology
|
|
commit 후 TCP reset fault injection
|
|
OpenAPI generated client compile
|
|
abuse·load·graceful shutdown
|
|
Git commit
|
|
```
|
|
|
|
계획서의 경로와 package는 다음 명시적 가정을 사용합니다.
|
|
|
|
```text
|
|
Java 21
|
|
Gradle Kotlin DSL
|
|
Spring Boot 4.1 BOM
|
|
root package: io.backend.skeleton.web
|
|
stable module root: modules/web
|
|
advanced module root: modules/web-advanced
|
|
```
|
|
|
|
|
|
## 6. 패키지 무결성 검증
|
|
|
|
패키지 조립 후 다음 검증을 추가로 수행했습니다.
|
|
|
|
```text
|
|
Package-local validator
|
|
→ checks=1104 passed=1104 failed=0
|
|
|
|
MANIFEST.sha256
|
|
→ 모든 7개 파일 OK
|
|
|
|
ZIP CRC
|
|
→ No errors detected
|
|
|
|
독립 문서와 패키지 내부 문서
|
|
→ byte 단위 일치
|
|
```
|
|
|
|
검증 명령:
|
|
|
|
```bash
|
|
cd /mnt/data/web-superpowers-package
|
|
./validate_web_docs.py
|
|
sha256sum -c MANIFEST.sha256
|
|
|
|
cd /mnt/data
|
|
unzip -t web-superpowers-package.zip
|
|
cmp web-inbound-http-api-execution-platform-design.md \
|
|
web-superpowers-package/docs/superpowers/specs/2026-08-13-web-inbound-http-api-execution-platform-design.md
|
|
cmp web-inbound-http-api-execution-platform-implementation-plan.md \
|
|
web-superpowers-package/docs/superpowers/plans/2026-08-13-web-inbound-http-api-execution-platform-implementation-plan.md
|
|
cmp web-advanced-capabilities-expansion-plan.md \
|
|
web-superpowers-package/docs/superpowers/plans/2026-08-13-web-advanced-capabilities-expansion-plan.md
|
|
```
|