feat: jpa, messaging, notification, mongo, graphql 어댑터터 리펙토링
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
> **보존 안내** — 이 파일은 저장소 루트 `fileserver-superpowers-package/` 에 있던 납품 패키지의 README다.
|
||||
> 2026-08-15 문서 정리에서 설계서·계획서는 `docs/superpowers/specs/` 와 `docs/superpowers/plans/` 로 통합했고,
|
||||
> 실행 불가 상태였던 `validate_fileserver_docs.py` 는 제거했다.
|
||||
> 아래 본문은 납품 시점의 기록이므로 제거된 파일을 가리키는 문장은 더 이상 유효하지 않다.
|
||||
|
||||
# Fileserver Superpowers Package
|
||||
|
||||
## 포함 파일
|
||||
|
||||
- `fileserver-platform-design.md` — Fileserver 플랫폼 설계 확정안
|
||||
- `fileserver-platform-implementation-plan.md` — 33개 TDD 작업으로 분해한 구현 계획
|
||||
- `VALIDATION.md` — 문서 정적 검증 결과
|
||||
- `validate_fileserver_docs.py` — 검증 재실행 스크립트
|
||||
|
||||
## 저장소 배치 위치
|
||||
|
||||
```text
|
||||
docs/superpowers/specs/2026-08-07-fileserver-platform-design.md
|
||||
docs/superpowers/plans/2026-08-07-fileserver-platform-implementation-plan.md
|
||||
```
|
||||
|
||||
## 실행 순서
|
||||
|
||||
1. 실제 Backend Skeleton 구조와 root package를 대조한다.
|
||||
2. 설계서의 모듈 경계를 저장소에 반영한다.
|
||||
3. 구현 계획 Task 1부터 순서대로 실행한다.
|
||||
4. 각 Task에서 실패 테스트를 확인한 뒤 구현한다.
|
||||
5. Milestone A~D마다 전체 검증 Gate를 실행한다.
|
||||
|
||||
실행에는 `superpowers:subagent-driven-development` 방식이 권장된다.
|
||||
@@ -0,0 +1,43 @@
|
||||
# Fileserver Superpowers 문서 검증
|
||||
|
||||
**결과:** PASS
|
||||
|
||||
## 파일
|
||||
|
||||
- `fileserver-platform-design.md` — 1893 lines, 59904 bytes, SHA-256 `ee7b21277b254b9606a9ec6e34118a10fba3abbe818b43cbce9ae832102411e6`
|
||||
- `fileserver-platform-implementation-plan.md` — 3422 lines, 131608 bytes, SHA-256 `9a443852ab3a7e4a2232c1b443d4cb8d3478a4954d70510173d3e0ac1d3d2125`
|
||||
|
||||
## 검증 항목
|
||||
|
||||
- [x] **fileserver-platform-design.md exists** — /mnt/data/fileserver-platform-design.md
|
||||
- [x] **fileserver-platform-implementation-plan.md exists** — /mnt/data/fileserver-platform-implementation-plan.md
|
||||
- [x] **design title** — True
|
||||
- [x] **plan header** — required Superpowers header
|
||||
- [x] **design code fences** — count=94
|
||||
- [x] **plan code fences** — count=416
|
||||
- [x] **design placeholder scan** — hits=[]
|
||||
- [x] **plan placeholder scan** — hits=[]
|
||||
- [x] **design section coverage** — missing=[]
|
||||
- [x] **design topic: MVC** — missing=[]
|
||||
- [x] **design topic: WebFlux** — missing=[]
|
||||
- [x] **design topic: local/PVC/NFS** — missing=[]
|
||||
- [x] **design topic: content/metadata separation** — missing=[]
|
||||
- [x] **design topic: upload** — missing=[]
|
||||
- [x] **design topic: download** — missing=[]
|
||||
- [x] **design topic: publish** — missing=[]
|
||||
- [x] **design topic: security** — missing=[]
|
||||
- [x] **design topic: resumable** — missing=[]
|
||||
- [x] **design topic: observability** — missing=[]
|
||||
- [x] **blocking core port leakage** — hits=[]
|
||||
- [x] **task count** — count=33
|
||||
- [x] **task numbering** — numbers=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33]
|
||||
- [x] **task block completeness** — {}
|
||||
- [x] **unique create paths** — {}
|
||||
- [x] **plan scope coverage** — missing=[]
|
||||
- [x] **no Redis carryover** — search term=redis
|
||||
- [x] **no deprecated nginx token design** — token mapper removed
|
||||
|
||||
## 검증 범위의 한계
|
||||
|
||||
- 현재 Backend Skeleton 저장소가 입력되지 않아 Gradle compilation, integration test, Nginx execution, PVC·NFS certification은 실행하지 않았다.
|
||||
- 본 검증은 설계·계획 문서의 구조, 내부 일관성, 범위 추적성, 미확정 표식과 중복 경로를 확인한 정적 검증이다.
|
||||
@@ -0,0 +1,48 @@
|
||||
> **보존 안내** — 이 파일은 저장소 루트 `graphql-superpowers-package/` 에 있던 납품 패키지의 README다.
|
||||
> 2026-08-15 문서 정리에서 설계서·계획서는 `docs/superpowers/specs/` 와 `docs/superpowers/plans/` 로 통합했고,
|
||||
> `validate_graphql_docs.py` 와 `MANIFEST.sha256` 은 제거했다.
|
||||
> 아래 본문은 납품 시점의 기록이므로 제거된 파일을 가리키는 문장은 더 이상 유효하지 않다.
|
||||
|
||||
# GraphQL Superpowers 설계 패키지
|
||||
|
||||
이 패키지는 `GraphQL API 실행 플랫폼 심층 리서치`를 구현 기준선으로 변환한 설계서와 실행 계획서다.
|
||||
|
||||
## 문서
|
||||
|
||||
- `docs/superpowers/specs/2026-08-12-graphql-api-execution-platform-design.md`
|
||||
- Stable·Advanced 전체 아키텍처, 공개 계약, 경계, 실패 의미론, 테스트와 지원 등급
|
||||
- 입력 심층 리서치 원문을 추적 부록으로 포함
|
||||
- `docs/superpowers/plans/2026-08-12-graphql-api-execution-platform-implementation-plan.md`
|
||||
- Stable 구현 Task 1–48
|
||||
- `docs/superpowers/plans/2026-08-12-graphql-advanced-capabilities-expansion-plan.md`
|
||||
- Stable Release Gate 이후 실행하는 Advanced·Experimental Task 1–19
|
||||
- `VALIDATION.md`
|
||||
- 정적 검증 결과와 검증 범위
|
||||
- `validate_graphql_docs.py`
|
||||
- 패키지 내부 문서 재검증 스크립트
|
||||
- `MANIFEST.sha256`
|
||||
- 패키지 파일 무결성 목록
|
||||
|
||||
## 구현 순서
|
||||
|
||||
```text
|
||||
Stable Task 1–48
|
||||
→ Stable Release Gate
|
||||
→ Advanced Task 1–19
|
||||
→ Capability별 Promotion Gate
|
||||
```
|
||||
|
||||
## 명시적 전제
|
||||
|
||||
```text
|
||||
Java 21
|
||||
Gradle Kotlin DSL
|
||||
Spring Boot 4.1 BOM
|
||||
Spring for GraphQL 2.0
|
||||
Boot-managed GraphQL Java v25 계열
|
||||
Stable module root: modules/graphql
|
||||
Advanced module root: modules/graphql-advanced
|
||||
Root package: io.backend.skeleton.graphql
|
||||
```
|
||||
|
||||
실제 저장소에 적용할 때 기존 package·version catalog·module naming에 맞춰 경로만 조정하고, 문서의 공개 계약·불변 조건·테스트 의미는 유지한다.
|
||||
@@ -0,0 +1,98 @@
|
||||
# GraphQL Superpowers 문서 정적 검증 결과
|
||||
|
||||
- **검증 시각 기준:** 2026-08-12
|
||||
- **검증 대상:** 설계서 1개, Stable 구현 계획서 1개, Advanced·Experimental 확장 계획서 1개
|
||||
- **검증 명령:** `python3 validate_graphql_docs.py`
|
||||
- **결과:** **PASS**
|
||||
- **실행 검사:** 1,475
|
||||
- **통과:** 1,475
|
||||
- **실패:** 0
|
||||
|
||||
## 문서 규모
|
||||
|
||||
| 문서 | 행 수 | 크기 |
|
||||
|---|---:|---:|
|
||||
| GraphQL API 실행 플랫폼 설계서 | 2,553 | 93,359 bytes |
|
||||
| Stable 구현 계획서 | 4,560 | 209,041 bytes |
|
||||
| Advanced 확장 계획서 | 1,976 | 105,717 bytes |
|
||||
|
||||
## 계획 구조
|
||||
|
||||
| 항목 | Stable | Advanced |
|
||||
|---|---:|---:|
|
||||
| Task 수 | 48 | 19 |
|
||||
| Create 경로 수 | 227 | 113 |
|
||||
| Task 번호 연속성 | PASS | PASS |
|
||||
| 모든 Task의 `Files`·`Interfaces` | PASS | PASS |
|
||||
| 모든 Task의 Implementation Requirements | PASS | PASS |
|
||||
| 모든 Task의 Step 1–5 | PASS | PASS |
|
||||
| 실패·통과 예상 결과 | PASS | PASS |
|
||||
| Task별 Git commit 명령 | PASS | PASS |
|
||||
| Create 경로 중복 | 없음 | 없음 |
|
||||
| Stable·Advanced 경로 충돌 | 없음 | 없음 |
|
||||
|
||||
## 핵심 계약 검증
|
||||
|
||||
```text
|
||||
SDL-first external contract
|
||||
Single Executable Schema Stable default
|
||||
HTTP POST Stable profile
|
||||
application/graphql-response+json preferred
|
||||
Validation 이후 Field Error·Partial Data는 HTTP 200
|
||||
Draft 294는 Stable에서 제외
|
||||
JPA Entity·MongoDB Document 직접 노출 금지
|
||||
GraphQL Multipart Upload 미지원·Fileserver 사용
|
||||
request-wide database transaction 금지
|
||||
DataLoader request scope
|
||||
Finite Fetch Profile
|
||||
HMAC-signed cursor
|
||||
Mutation idempotency·expected version 분리
|
||||
Parser·shape·complexity·runtime response budget
|
||||
Actor·Field·Object·Tenant authorization
|
||||
Low-cardinality observability
|
||||
Stable/Advanced dependency isolation
|
||||
Persisted Operation·WebSocket·SSE·Federation 분리
|
||||
RSocket·HTTP GET·Incremental Delivery Experimental
|
||||
```
|
||||
|
||||
위 계약은 설계서와 계획서의 필수 문자열·모듈 경로·Task별 파일·테스트를 대조해 검증했습니다.
|
||||
|
||||
## 입력 리서치 추적성
|
||||
|
||||
- 첨부된 `GraphQL API 실행 플랫폼 심층 리서치` 원문 전체가 설계서의 `부록 B`에 포함되어 있습니다.
|
||||
- 설계 본문은 원문의 용어와 결론을 유지하면서 구현 판단을 Stable·Advanced·Experimental로 고정합니다.
|
||||
- 설계서와 입력 원문의 exact text 포함 검사를 별도로 통과했습니다.
|
||||
|
||||
## 패키지 검증 항목
|
||||
|
||||
```text
|
||||
문서 파일 존재
|
||||
Markdown code fence 균형
|
||||
Task 1–48 / 1–19 연속성
|
||||
Task별 테스트·명령·commit
|
||||
정확한 Create 경로
|
||||
Placeholder 금지
|
||||
Stable module에 WebSocket·Federation·Persisted Operation 경로 부재
|
||||
Advanced module에 feature flag와 capability 경로 존재
|
||||
금지 API pattern 부재
|
||||
문서 SHA-256 계산
|
||||
```
|
||||
|
||||
## 검증 범위의 한계
|
||||
|
||||
현재 PASS는 **문서의 정적 구조, 요구사항 추적성, 내부 계약과 실행 계획의 완결성**을 의미합니다. 실제 Backend Skeleton 저장소가 입력으로 제공되지 않았으므로 다음은 실행하지 않았습니다.
|
||||
|
||||
```text
|
||||
Gradle configuration·compile
|
||||
Spring Boot ApplicationContext 기동
|
||||
SchemaMappingInspector 실제 결과
|
||||
GraphQlTester HTTP·WebFlux contract
|
||||
JPA·MongoDB statement/query-count integration
|
||||
query bomb·complexity load test
|
||||
Virtual Thread·event-loop blocking test
|
||||
WebSocket·SSE soak test
|
||||
Federation composition·router integration
|
||||
actual Git commit
|
||||
```
|
||||
|
||||
실제 구현에서는 Stable Task 1–48을 먼저 수행해 Stable Release Gate를 통과한 뒤 Advanced Task 1–19를 시작해야 합니다.
|
||||
@@ -0,0 +1,28 @@
|
||||
> **보존 안내** — 이 파일은 저장소 루트 `httpclient-superpowers-package/` 에 있던 납품 패키지의 README다.
|
||||
> 2026-08-15 문서 정리에서 설계서·계획서는 `docs/superpowers/specs/` 와 `docs/superpowers/plans/` 로 통합했고,
|
||||
> 실행 불가 상태였던 `validate_httpclient_docs.py` 는 제거했다.
|
||||
> 아래 본문은 납품 시점의 기록이므로 제거된 파일을 가리키는 문장은 더 이상 유효하지 않다.
|
||||
|
||||
# HTTP Client Superpowers 설계 패키지
|
||||
|
||||
이 패키지는 `Java/Spring 외부 HTTP Client 플랫폼 설계 심층 리서치`를 기반으로 작성한 설계서와 구현 계획서다.
|
||||
|
||||
## 파일
|
||||
|
||||
- `docs/superpowers/specs/2026-08-08-httpclient-platform-design.md`
|
||||
- `docs/superpowers/plans/2026-08-08-httpclient-platform-implementation-plan.md`
|
||||
- `VALIDATION.md`
|
||||
- `validate_httpclient_docs.py`
|
||||
|
||||
## 구현 기준
|
||||
|
||||
- Java 21
|
||||
- Gradle Kotlin DSL
|
||||
- 공통 API는 Spring Framework 6.2 기준
|
||||
- Spring Framework 7.0 호환성 검증
|
||||
- Apache HttpClient 5 + RestClient
|
||||
- JDK HttpClient + RestClient
|
||||
- Reactor Netty + WebClient
|
||||
- Jetty HTTP/3 Experimental
|
||||
|
||||
실제 Backend Skeleton 저장소가 제공되지 않았으므로 package 경로와 Gradle 구조는 설계서의 명시적 구현 가정이다. 구현 전 저장소의 기존 convention과 root package에 맞춰 경로만 조정하고 공개 계약과 정책 의미론은 유지한다.
|
||||
@@ -0,0 +1,31 @@
|
||||
# HTTP Client Superpowers 문서 검증
|
||||
|
||||
**검증 결과:** PASS
|
||||
|
||||
## 검증 항목
|
||||
|
||||
- 설계서 존재 및 최소 구조: PASS
|
||||
- 구현 계획서 존재 및 최소 구조: PASS
|
||||
- Task 번호 연속성: PASS
|
||||
- Task별 Files·Interfaces·Step 1~5·Expected·Commit: PASS
|
||||
- Markdown code fence 균형: PASS
|
||||
- Placeholder scan: PASS
|
||||
- 중복 Create 경로: PASS
|
||||
- 핵심 설계 범위: PASS
|
||||
- 핵심 구현 범위: PASS
|
||||
|
||||
## 통계
|
||||
|
||||
- explicitly forbidden signature documented: ApacheHttpClient nativeApacheClient()
|
||||
- explicitly forbidden signature documented: HttpClient nativeJdkClient()
|
||||
- explicitly forbidden signature documented: WebClient.Builder mutableBuilder()
|
||||
- explicitly forbidden signature documented: RestClient.Builder mutableBuilder()
|
||||
- design lines=1956, bytes=64493
|
||||
- plan lines=3635, bytes=158401
|
||||
- tasks=38, create_paths=306
|
||||
|
||||
## 결론
|
||||
|
||||
- 설계 결정과 구현 작업의 정적 추적성이 확인됐다.
|
||||
- 실제 저장소가 제공되지 않았으므로 Gradle compile, integration, fault, security, performance test는 아직 실행되지 않았다.
|
||||
- 계획의 Java 21, Gradle Kotlin DSL, root package는 명시된 구현 가정이다.
|
||||
@@ -0,0 +1,73 @@
|
||||
> **보존 안내** — 이 파일은 저장소 루트 `jpa-superpowers-package/` 에 있던 납품 패키지의 README다.
|
||||
> 2026-08-15 문서 정리에서 설계서·계획서는 `docs/superpowers/specs/` 와 `docs/superpowers/plans/` 로 통합했고,
|
||||
> `validate_jpa_docs.py` 와 `MANIFEST.sha256` 은 제거했다.
|
||||
> 아래 본문은 납품 시점의 기록이므로 제거된 파일을 가리키는 문장은 더 이상 유효하지 않다.
|
||||
|
||||
# JPA 관계형 영속성 플랫폼 Superpowers 패키지
|
||||
|
||||
이 패키지는 Java/Spring Backend Skeleton의 JPA 관계형 영속성 플랫폼을 구현하기 위한 설계서, Stable 구현 계획서, Experimental 확장 계획서와 정적 검증 도구를 포함한다.
|
||||
|
||||
## 기준
|
||||
|
||||
- 기준일: 2026-08-11
|
||||
- Java 21
|
||||
- Gradle Kotlin DSL
|
||||
- Spring Boot 4.1 dependency management
|
||||
- Spring Data JPA 4.1
|
||||
- Jakarta Persistence 3.2
|
||||
- Hibernate ORM 7.4
|
||||
- PostgreSQL 16·17·18 Stable Matrix
|
||||
- H2는 Local Convenience이며 PostgreSQL 호환성 증거로 사용하지 않는다.
|
||||
|
||||
## 문서
|
||||
|
||||
```text
|
||||
docs/superpowers/specs/2026-08-11-jpa-persistence-platform-design.md
|
||||
docs/superpowers/plans/2026-08-11-jpa-persistence-platform-implementation-plan.md
|
||||
docs/superpowers/plans/2026-08-11-jpa-persistence-experimental-expansion-plan.md
|
||||
```
|
||||
|
||||
## 구현 경계
|
||||
|
||||
Stable 계획은 다음 원칙을 고정한다.
|
||||
|
||||
```text
|
||||
도메인이 Entity·Embeddable·Repository·Query를 소유한다.
|
||||
GenericRepository 또는 Spring Data CRUD 재포장을 만들지 않는다.
|
||||
Application Service가 Transaction 경계를 소유한다.
|
||||
Retry는 새 Persistence Context에서 전체 Use Case를 재실행한다.
|
||||
Commit 결과 불명은 자동 Retry하지 않고 reconciliation으로 처리한다.
|
||||
Flyway가 운영 Schema 변경의 Source of Truth다.
|
||||
PostgreSQL 16·17·18 실제 계약 테스트를 Release Gate로 사용한다.
|
||||
```
|
||||
|
||||
Experimental 계획은 다음 범위를 Stable과 분리한다.
|
||||
|
||||
```text
|
||||
Shared-schema Multi-tenancy
|
||||
PostgreSQL RLS
|
||||
Schema-per-tenant
|
||||
Database-per-tenant
|
||||
Consistency-aware Read Replica
|
||||
Jakarta Persistence 4.0
|
||||
Hibernate ORM 8
|
||||
PostgreSQL 19
|
||||
```
|
||||
|
||||
## 실행 순서
|
||||
|
||||
1. Stable 구현 계획 Task 1~53을 순서대로 수행한다.
|
||||
2. 각 Task에서 실패 테스트 → 실패 확인 → 최소 구현 → 통과 확인 → 커밋 순서를 따른다.
|
||||
3. Stable Release Gate가 통과한 뒤 Experimental Task 1~9를 시작한다.
|
||||
4. Experimental 기능은 별도 feature flag와 승격 ADR 없이 Stable Starter에 포함하지 않는다.
|
||||
|
||||
## 검증
|
||||
|
||||
압축을 해제한 패키지 루트에서 실행한다.
|
||||
|
||||
```bash
|
||||
python validate_jpa_docs.py
|
||||
sha256sum -c MANIFEST.sha256
|
||||
```
|
||||
|
||||
현재 `VALIDATION.md`는 문서 구조·Task 완결성·타입 일관성·경로 충돌·핵심 계약을 대상으로 한 정적 검증 결과다. 실제 Backend Skeleton 저장소의 Gradle compile, PostgreSQL integration, Flyway upgrade, failure injection, 성능 및 보안 테스트 결과는 아니다.
|
||||
@@ -0,0 +1,829 @@
|
||||
# JPA Superpowers 문서 정적 검증
|
||||
|
||||
- 결과: **PASS**
|
||||
- 실행 검사: **808개**
|
||||
- 통과: **808개**
|
||||
- 실패: **0개**
|
||||
- 설계서: **3,276행**
|
||||
- Stable 구현 계획서: **4,716행**
|
||||
- Experimental 확장 계획서: **771행**
|
||||
- Stable Task: **53개**
|
||||
- Experimental Task: **9개**
|
||||
- Stable Create 경로: **235개**
|
||||
- Experimental Create 경로: **37개**
|
||||
- 설계 SHA-256: `a28046eb1451d87e3ac9c3b1922c134b99fa9155d32c09c0f5bddf80f588aaec`
|
||||
- Stable 계획 SHA-256: `bb5d0d876e9a3232a3661cd50b3a4c0da0ea4c68f820526d8b34cb3bdcb43d86`
|
||||
- Experimental 계획 SHA-256: `1ac376309b161cf95b6b3def89284e509ce0191131a268833ca13bd50814ff09`
|
||||
|
||||
## 검사 결과
|
||||
|
||||
| 검사 | 결과 | 상세 |
|
||||
|---|---:|---|
|
||||
| 설계서 존재 | PASS | /mnt/data/jpa-superpowers-package/docs/superpowers/specs/2026-08-11-jpa-persistence-platform-design.md |
|
||||
| Stable 계획서 존재 | PASS | /mnt/data/jpa-superpowers-package/docs/superpowers/plans/2026-08-11-jpa-persistence-platform-implementation-plan.md |
|
||||
| Experimental 계획서 존재 | PASS | /mnt/data/jpa-superpowers-package/docs/superpowers/plans/2026-08-11-jpa-persistence-experimental-expansion-plan.md |
|
||||
| 설계서 최소 상세도 | PASS | 3276 lines |
|
||||
| Stable 계획서 최소 상세도 | PASS | 4716 lines |
|
||||
| Experimental 계획서 최소 상세도 | PASS | 771 lines |
|
||||
| 설계서 코드 fence 균형 | PASS | 262 |
|
||||
| 설계서 placeholder 부재 | PASS | |
|
||||
| Stable 계획서 코드 fence 균형 | PASS | 540 |
|
||||
| Stable 계획서 placeholder 부재 | PASS | |
|
||||
| Experimental 계획서 코드 fence 균형 | PASS | 94 |
|
||||
| Experimental 계획서 placeholder 부재 | PASS | |
|
||||
| 설계 핵심 계약: GenericRepository | PASS | |
|
||||
| 설계 핵심 계약: TransactionCompletionUnknownException | PASS | |
|
||||
| 설계 핵심 계약: EvidenceAwareJpaTransactionManager | PASS | |
|
||||
| 설계 핵심 계약: Application Service | PASS | |
|
||||
| 설계 핵심 계약: OSIV | PASS | |
|
||||
| 설계 핵심 계약: PostgreSQL 16·17·18 | PASS | |
|
||||
| 설계 핵심 계약: Hibernate 7.4 Collection Fetch Pagination | PASS | |
|
||||
| 설계 핵심 계약: FOR UPDATE SKIP LOCKED | PASS | |
|
||||
| 설계 핵심 계약: CREATE INDEX CONCURRENTLY | PASS | |
|
||||
| 설계 핵심 계약: Flyway | PASS | |
|
||||
| 설계 핵심 계약: Runtime·Migration·Admin | PASS | |
|
||||
| 설계 핵심 계약: H2는 Local Convenience | PASS | |
|
||||
| 설계 핵심 계약: 전체 Transaction Retry | PASS | |
|
||||
| 설계 핵심 계약: J1 Standard Persistence | PASS | |
|
||||
| 설계 핵심 계약: J4 Admin / Operations | PASS | |
|
||||
| 설계 핵심 계약: 완료 정의 | PASS | |
|
||||
| GenericRepository 실제 선언 부재 | PASS | |
|
||||
| 운영 ddl auto update 금지 | PASS | |
|
||||
| Completion Unknown 자동 Retry 금지 | PASS | |
|
||||
| OSIV false 강제 | PASS | |
|
||||
| PG16·17·18 Matrix | PASS | |
|
||||
| Hibernate 7.4 fetch pagination gate | PASS | |
|
||||
| Flyway snapshot upgrade gate | PASS | |
|
||||
| Runtime role no DDL gate | PASS | |
|
||||
| Stable 계획에 Experimental create 경로 부재 | PASS | |
|
||||
| Stable Task 1~53 연속성 | PASS | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53] |
|
||||
| Experimental Task 1~9 연속성 | PASS | [1, 2, 3, 4, 5, 6, 7, 8, 9] |
|
||||
| Stable Task chunk 수 | PASS | 53 |
|
||||
| Experimental Task chunk 수 | PASS | 9 |
|
||||
| Stable Task 1 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 1 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 1 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 1 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 1 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 1 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 1 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 1 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 1 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 1 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 1 Gradle focused command | PASS | |
|
||||
| Stable Task 1 exact path | PASS | |
|
||||
| Stable Task 2 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 2 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 2 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 2 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 2 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 2 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 2 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 2 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 2 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 2 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 2 Gradle focused command | PASS | |
|
||||
| Stable Task 2 exact path | PASS | |
|
||||
| Stable Task 3 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 3 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 3 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 3 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 3 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 3 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 3 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 3 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 3 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 3 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 3 Gradle focused command | PASS | |
|
||||
| Stable Task 3 exact path | PASS | |
|
||||
| Stable Task 4 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 4 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 4 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 4 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 4 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 4 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 4 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 4 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 4 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 4 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 4 Gradle focused command | PASS | |
|
||||
| Stable Task 4 exact path | PASS | |
|
||||
| Stable Task 5 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 5 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 5 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 5 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 5 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 5 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 5 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 5 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 5 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 5 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 5 Gradle focused command | PASS | |
|
||||
| Stable Task 5 exact path | PASS | |
|
||||
| Stable Task 6 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 6 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 6 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 6 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 6 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 6 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 6 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 6 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 6 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 6 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 6 Gradle focused command | PASS | |
|
||||
| Stable Task 6 exact path | PASS | |
|
||||
| Stable Task 7 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 7 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 7 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 7 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 7 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 7 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 7 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 7 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 7 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 7 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 7 Gradle focused command | PASS | |
|
||||
| Stable Task 7 exact path | PASS | |
|
||||
| Stable Task 8 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 8 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 8 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 8 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 8 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 8 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 8 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 8 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 8 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 8 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 8 Gradle focused command | PASS | |
|
||||
| Stable Task 8 exact path | PASS | |
|
||||
| Stable Task 9 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 9 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 9 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 9 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 9 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 9 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 9 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 9 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 9 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 9 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 9 Gradle focused command | PASS | |
|
||||
| Stable Task 9 exact path | PASS | |
|
||||
| Stable Task 10 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 10 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 10 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 10 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 10 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 10 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 10 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 10 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 10 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 10 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 10 Gradle focused command | PASS | |
|
||||
| Stable Task 10 exact path | PASS | |
|
||||
| Stable Task 11 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 11 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 11 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 11 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 11 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 11 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 11 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 11 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 11 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 11 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 11 Gradle focused command | PASS | |
|
||||
| Stable Task 11 exact path | PASS | |
|
||||
| Stable Task 12 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 12 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 12 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 12 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 12 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 12 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 12 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 12 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 12 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 12 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 12 Gradle focused command | PASS | |
|
||||
| Stable Task 12 exact path | PASS | |
|
||||
| Stable Task 13 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 13 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 13 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 13 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 13 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 13 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 13 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 13 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 13 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 13 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 13 Gradle focused command | PASS | |
|
||||
| Stable Task 13 exact path | PASS | |
|
||||
| Stable Task 14 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 14 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 14 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 14 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 14 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 14 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 14 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 14 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 14 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 14 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 14 Gradle focused command | PASS | |
|
||||
| Stable Task 14 exact path | PASS | |
|
||||
| Stable Task 15 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 15 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 15 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 15 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 15 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 15 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 15 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 15 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 15 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 15 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 15 Gradle focused command | PASS | |
|
||||
| Stable Task 15 exact path | PASS | |
|
||||
| Stable Task 16 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 16 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 16 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 16 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 16 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 16 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 16 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 16 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 16 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 16 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 16 Gradle focused command | PASS | |
|
||||
| Stable Task 16 exact path | PASS | |
|
||||
| Stable Task 17 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 17 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 17 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 17 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 17 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 17 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 17 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 17 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 17 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 17 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 17 Gradle focused command | PASS | |
|
||||
| Stable Task 17 exact path | PASS | |
|
||||
| Stable Task 18 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 18 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 18 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 18 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 18 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 18 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 18 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 18 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 18 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 18 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 18 Gradle focused command | PASS | |
|
||||
| Stable Task 18 exact path | PASS | |
|
||||
| Stable Task 19 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 19 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 19 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 19 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 19 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 19 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 19 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 19 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 19 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 19 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 19 Gradle focused command | PASS | |
|
||||
| Stable Task 19 exact path | PASS | |
|
||||
| Stable Task 20 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 20 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 20 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 20 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 20 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 20 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 20 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 20 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 20 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 20 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 20 Gradle focused command | PASS | |
|
||||
| Stable Task 20 exact path | PASS | |
|
||||
| Stable Task 21 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 21 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 21 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 21 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 21 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 21 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 21 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 21 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 21 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 21 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 21 Gradle focused command | PASS | |
|
||||
| Stable Task 21 exact path | PASS | |
|
||||
| Stable Task 22 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 22 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 22 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 22 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 22 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 22 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 22 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 22 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 22 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 22 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 22 Gradle focused command | PASS | |
|
||||
| Stable Task 22 exact path | PASS | |
|
||||
| Stable Task 23 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 23 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 23 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 23 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 23 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 23 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 23 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 23 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 23 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 23 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 23 Gradle focused command | PASS | |
|
||||
| Stable Task 23 exact path | PASS | |
|
||||
| Stable Task 24 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 24 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 24 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 24 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 24 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 24 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 24 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 24 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 24 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 24 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 24 Gradle focused command | PASS | |
|
||||
| Stable Task 24 exact path | PASS | |
|
||||
| Stable Task 25 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 25 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 25 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 25 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 25 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 25 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 25 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 25 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 25 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 25 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 25 Gradle focused command | PASS | |
|
||||
| Stable Task 25 exact path | PASS | |
|
||||
| Stable Task 26 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 26 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 26 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 26 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 26 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 26 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 26 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 26 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 26 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 26 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 26 Gradle focused command | PASS | |
|
||||
| Stable Task 26 exact path | PASS | |
|
||||
| Stable Task 27 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 27 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 27 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 27 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 27 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 27 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 27 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 27 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 27 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 27 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 27 Gradle focused command | PASS | |
|
||||
| Stable Task 27 exact path | PASS | |
|
||||
| Stable Task 28 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 28 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 28 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 28 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 28 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 28 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 28 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 28 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 28 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 28 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 28 Gradle focused command | PASS | |
|
||||
| Stable Task 28 exact path | PASS | |
|
||||
| Stable Task 29 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 29 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 29 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 29 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 29 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 29 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 29 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 29 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 29 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 29 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 29 Gradle focused command | PASS | |
|
||||
| Stable Task 29 exact path | PASS | |
|
||||
| Stable Task 30 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 30 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 30 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 30 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 30 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 30 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 30 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 30 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 30 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 30 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 30 Gradle focused command | PASS | |
|
||||
| Stable Task 30 exact path | PASS | |
|
||||
| Stable Task 31 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 31 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 31 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 31 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 31 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 31 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 31 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 31 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 31 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 31 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 31 Gradle focused command | PASS | |
|
||||
| Stable Task 31 exact path | PASS | |
|
||||
| Stable Task 32 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 32 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 32 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 32 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 32 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 32 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 32 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 32 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 32 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 32 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 32 Gradle focused command | PASS | |
|
||||
| Stable Task 32 exact path | PASS | |
|
||||
| Stable Task 33 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 33 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 33 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 33 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 33 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 33 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 33 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 33 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 33 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 33 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 33 Gradle focused command | PASS | |
|
||||
| Stable Task 33 exact path | PASS | |
|
||||
| Stable Task 34 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 34 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 34 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 34 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 34 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 34 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 34 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 34 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 34 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 34 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 34 Gradle focused command | PASS | |
|
||||
| Stable Task 34 exact path | PASS | |
|
||||
| Stable Task 35 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 35 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 35 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 35 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 35 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 35 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 35 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 35 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 35 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 35 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 35 Gradle focused command | PASS | |
|
||||
| Stable Task 35 exact path | PASS | |
|
||||
| Stable Task 36 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 36 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 36 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 36 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 36 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 36 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 36 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 36 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 36 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 36 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 36 Gradle focused command | PASS | |
|
||||
| Stable Task 36 exact path | PASS | |
|
||||
| Stable Task 37 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 37 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 37 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 37 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 37 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 37 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 37 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 37 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 37 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 37 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 37 Gradle focused command | PASS | |
|
||||
| Stable Task 37 exact path | PASS | |
|
||||
| Stable Task 38 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 38 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 38 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 38 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 38 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 38 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 38 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 38 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 38 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 38 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 38 Gradle focused command | PASS | |
|
||||
| Stable Task 38 exact path | PASS | |
|
||||
| Stable Task 39 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 39 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 39 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 39 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 39 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 39 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 39 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 39 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 39 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 39 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 39 Gradle focused command | PASS | |
|
||||
| Stable Task 39 exact path | PASS | |
|
||||
| Stable Task 40 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 40 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 40 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 40 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 40 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 40 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 40 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 40 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 40 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 40 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 40 Gradle focused command | PASS | |
|
||||
| Stable Task 40 exact path | PASS | |
|
||||
| Stable Task 41 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 41 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 41 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 41 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 41 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 41 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 41 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 41 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 41 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 41 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 41 Gradle focused command | PASS | |
|
||||
| Stable Task 41 exact path | PASS | |
|
||||
| Stable Task 42 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 42 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 42 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 42 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 42 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 42 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 42 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 42 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 42 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 42 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 42 Gradle focused command | PASS | |
|
||||
| Stable Task 42 exact path | PASS | |
|
||||
| Stable Task 43 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 43 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 43 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 43 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 43 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 43 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 43 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 43 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 43 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 43 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 43 Gradle focused command | PASS | |
|
||||
| Stable Task 43 exact path | PASS | |
|
||||
| Stable Task 44 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 44 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 44 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 44 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 44 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 44 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 44 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 44 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 44 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 44 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 44 Gradle focused command | PASS | |
|
||||
| Stable Task 44 exact path | PASS | |
|
||||
| Stable Task 45 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 45 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 45 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 45 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 45 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 45 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 45 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 45 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 45 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 45 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 45 Gradle focused command | PASS | |
|
||||
| Stable Task 45 exact path | PASS | |
|
||||
| Stable Task 46 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 46 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 46 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 46 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 46 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 46 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 46 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 46 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 46 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 46 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 46 Gradle focused command | PASS | |
|
||||
| Stable Task 46 exact path | PASS | |
|
||||
| Stable Task 47 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 47 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 47 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 47 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 47 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 47 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 47 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 47 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 47 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 47 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 47 Gradle focused command | PASS | |
|
||||
| Stable Task 47 exact path | PASS | |
|
||||
| Stable Task 48 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 48 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 48 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 48 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 48 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 48 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 48 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 48 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 48 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 48 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 48 Gradle focused command | PASS | |
|
||||
| Stable Task 48 exact path | PASS | |
|
||||
| Stable Task 49 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 49 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 49 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 49 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 49 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 49 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 49 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 49 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 49 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 49 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 49 Gradle focused command | PASS | |
|
||||
| Stable Task 49 exact path | PASS | |
|
||||
| Stable Task 50 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 50 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 50 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 50 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 50 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 50 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 50 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 50 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 50 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 50 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 50 Gradle focused command | PASS | |
|
||||
| Stable Task 50 exact path | PASS | |
|
||||
| Stable Task 51 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 51 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 51 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 51 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 51 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 51 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 51 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 51 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 51 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 51 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 51 Gradle focused command | PASS | |
|
||||
| Stable Task 51 exact path | PASS | |
|
||||
| Stable Task 52 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 52 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 52 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 52 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 52 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 52 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 52 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 52 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 52 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 52 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 52 Gradle focused command | PASS | |
|
||||
| Stable Task 52 exact path | PASS | |
|
||||
| Stable Task 53 필수 항목: **Files:** | PASS | |
|
||||
| Stable Task 53 필수 항목: **Interfaces:** | PASS | |
|
||||
| Stable Task 53 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Stable Task 53 필수 항목: **Step 1: | PASS | |
|
||||
| Stable Task 53 필수 항목: **Step 2: | PASS | |
|
||||
| Stable Task 53 필수 항목: **Step 3: | PASS | |
|
||||
| Stable Task 53 필수 항목: **Step 4: | PASS | |
|
||||
| Stable Task 53 필수 항목: **Step 5: | PASS | |
|
||||
| Stable Task 53 필수 항목: Expected: | PASS | |
|
||||
| Stable Task 53 필수 항목: git commit -m | PASS | |
|
||||
| Stable Task 53 Gradle focused command | PASS | |
|
||||
| Stable Task 53 exact path | PASS | |
|
||||
| Experimental Task 1 필수 항목: **Files:** | PASS | |
|
||||
| Experimental Task 1 필수 항목: **Interfaces:** | PASS | |
|
||||
| Experimental Task 1 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Experimental Task 1 필수 항목: **Step 1: | PASS | |
|
||||
| Experimental Task 1 필수 항목: **Step 2: | PASS | |
|
||||
| Experimental Task 1 필수 항목: **Step 3: | PASS | |
|
||||
| Experimental Task 1 필수 항목: **Step 4: | PASS | |
|
||||
| Experimental Task 1 필수 항목: **Step 5: | PASS | |
|
||||
| Experimental Task 1 필수 항목: Expected: | PASS | |
|
||||
| Experimental Task 1 필수 항목: git commit -m | PASS | |
|
||||
| Experimental Task 1 Gradle focused command | PASS | |
|
||||
| Experimental Task 1 exact path | PASS | |
|
||||
| Experimental Task 2 필수 항목: **Files:** | PASS | |
|
||||
| Experimental Task 2 필수 항목: **Interfaces:** | PASS | |
|
||||
| Experimental Task 2 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Experimental Task 2 필수 항목: **Step 1: | PASS | |
|
||||
| Experimental Task 2 필수 항목: **Step 2: | PASS | |
|
||||
| Experimental Task 2 필수 항목: **Step 3: | PASS | |
|
||||
| Experimental Task 2 필수 항목: **Step 4: | PASS | |
|
||||
| Experimental Task 2 필수 항목: **Step 5: | PASS | |
|
||||
| Experimental Task 2 필수 항목: Expected: | PASS | |
|
||||
| Experimental Task 2 필수 항목: git commit -m | PASS | |
|
||||
| Experimental Task 2 Gradle focused command | PASS | |
|
||||
| Experimental Task 2 exact path | PASS | |
|
||||
| Experimental Task 3 필수 항목: **Files:** | PASS | |
|
||||
| Experimental Task 3 필수 항목: **Interfaces:** | PASS | |
|
||||
| Experimental Task 3 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Experimental Task 3 필수 항목: **Step 1: | PASS | |
|
||||
| Experimental Task 3 필수 항목: **Step 2: | PASS | |
|
||||
| Experimental Task 3 필수 항목: **Step 3: | PASS | |
|
||||
| Experimental Task 3 필수 항목: **Step 4: | PASS | |
|
||||
| Experimental Task 3 필수 항목: **Step 5: | PASS | |
|
||||
| Experimental Task 3 필수 항목: Expected: | PASS | |
|
||||
| Experimental Task 3 필수 항목: git commit -m | PASS | |
|
||||
| Experimental Task 3 Gradle focused command | PASS | |
|
||||
| Experimental Task 3 exact path | PASS | |
|
||||
| Experimental Task 4 필수 항목: **Files:** | PASS | |
|
||||
| Experimental Task 4 필수 항목: **Interfaces:** | PASS | |
|
||||
| Experimental Task 4 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Experimental Task 4 필수 항목: **Step 1: | PASS | |
|
||||
| Experimental Task 4 필수 항목: **Step 2: | PASS | |
|
||||
| Experimental Task 4 필수 항목: **Step 3: | PASS | |
|
||||
| Experimental Task 4 필수 항목: **Step 4: | PASS | |
|
||||
| Experimental Task 4 필수 항목: **Step 5: | PASS | |
|
||||
| Experimental Task 4 필수 항목: Expected: | PASS | |
|
||||
| Experimental Task 4 필수 항목: git commit -m | PASS | |
|
||||
| Experimental Task 4 Gradle focused command | PASS | |
|
||||
| Experimental Task 4 exact path | PASS | |
|
||||
| Experimental Task 5 필수 항목: **Files:** | PASS | |
|
||||
| Experimental Task 5 필수 항목: **Interfaces:** | PASS | |
|
||||
| Experimental Task 5 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Experimental Task 5 필수 항목: **Step 1: | PASS | |
|
||||
| Experimental Task 5 필수 항목: **Step 2: | PASS | |
|
||||
| Experimental Task 5 필수 항목: **Step 3: | PASS | |
|
||||
| Experimental Task 5 필수 항목: **Step 4: | PASS | |
|
||||
| Experimental Task 5 필수 항목: **Step 5: | PASS | |
|
||||
| Experimental Task 5 필수 항목: Expected: | PASS | |
|
||||
| Experimental Task 5 필수 항목: git commit -m | PASS | |
|
||||
| Experimental Task 5 Gradle focused command | PASS | |
|
||||
| Experimental Task 5 exact path | PASS | |
|
||||
| Experimental Task 6 필수 항목: **Files:** | PASS | |
|
||||
| Experimental Task 6 필수 항목: **Interfaces:** | PASS | |
|
||||
| Experimental Task 6 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Experimental Task 6 필수 항목: **Step 1: | PASS | |
|
||||
| Experimental Task 6 필수 항목: **Step 2: | PASS | |
|
||||
| Experimental Task 6 필수 항목: **Step 3: | PASS | |
|
||||
| Experimental Task 6 필수 항목: **Step 4: | PASS | |
|
||||
| Experimental Task 6 필수 항목: **Step 5: | PASS | |
|
||||
| Experimental Task 6 필수 항목: Expected: | PASS | |
|
||||
| Experimental Task 6 필수 항목: git commit -m | PASS | |
|
||||
| Experimental Task 6 Gradle focused command | PASS | |
|
||||
| Experimental Task 6 exact path | PASS | |
|
||||
| Experimental Task 7 필수 항목: **Files:** | PASS | |
|
||||
| Experimental Task 7 필수 항목: **Interfaces:** | PASS | |
|
||||
| Experimental Task 7 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Experimental Task 7 필수 항목: **Step 1: | PASS | |
|
||||
| Experimental Task 7 필수 항목: **Step 2: | PASS | |
|
||||
| Experimental Task 7 필수 항목: **Step 3: | PASS | |
|
||||
| Experimental Task 7 필수 항목: **Step 4: | PASS | |
|
||||
| Experimental Task 7 필수 항목: **Step 5: | PASS | |
|
||||
| Experimental Task 7 필수 항목: Expected: | PASS | |
|
||||
| Experimental Task 7 필수 항목: git commit -m | PASS | |
|
||||
| Experimental Task 7 Gradle focused command | PASS | |
|
||||
| Experimental Task 7 exact path | PASS | |
|
||||
| Experimental Task 8 필수 항목: **Files:** | PASS | |
|
||||
| Experimental Task 8 필수 항목: **Interfaces:** | PASS | |
|
||||
| Experimental Task 8 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Experimental Task 8 필수 항목: **Step 1: | PASS | |
|
||||
| Experimental Task 8 필수 항목: **Step 2: | PASS | |
|
||||
| Experimental Task 8 필수 항목: **Step 3: | PASS | |
|
||||
| Experimental Task 8 필수 항목: **Step 4: | PASS | |
|
||||
| Experimental Task 8 필수 항목: **Step 5: | PASS | |
|
||||
| Experimental Task 8 필수 항목: Expected: | PASS | |
|
||||
| Experimental Task 8 필수 항목: git commit -m | PASS | |
|
||||
| Experimental Task 8 Gradle focused command | PASS | |
|
||||
| Experimental Task 8 exact path | PASS | |
|
||||
| Experimental Task 9 필수 항목: **Files:** | PASS | |
|
||||
| Experimental Task 9 필수 항목: **Interfaces:** | PASS | |
|
||||
| Experimental Task 9 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Experimental Task 9 필수 항목: **Step 1: | PASS | |
|
||||
| Experimental Task 9 필수 항목: **Step 2: | PASS | |
|
||||
| Experimental Task 9 필수 항목: **Step 3: | PASS | |
|
||||
| Experimental Task 9 필수 항목: **Step 4: | PASS | |
|
||||
| Experimental Task 9 필수 항목: **Step 5: | PASS | |
|
||||
| Experimental Task 9 필수 항목: Expected: | PASS | |
|
||||
| Experimental Task 9 필수 항목: git commit -m | PASS | |
|
||||
| Experimental Task 9 Gradle focused command | PASS | |
|
||||
| Experimental Task 9 exact path | PASS | |
|
||||
| Stable Create 경로 중복 부재 | PASS | 235 |
|
||||
| Experimental Create 경로 중복 부재 | PASS | 37 |
|
||||
| Stable·Experimental Create 경로 충돌 부재 | PASS | set() |
|
||||
| Experimental 계획은 Stable Task 1~53 이후 시작 | PASS | |
|
||||
| 공통 타입 일관성: PersistenceOperationName | PASS | 21 |
|
||||
| 공통 타입 일관성: TransactionProfile | PASS | 14 |
|
||||
| 공통 타입 일관성: RetryProfile | PASS | 5 |
|
||||
| 공통 타입 일관성: JpaTransactionExecutor | PASS | 14 |
|
||||
| 공통 타입 일관성: JpaRetryPolicy | PASS | 7 |
|
||||
| 공통 타입 일관성: RetryDecision | PASS | 8 |
|
||||
| 공통 타입 일관성: JpaFailureContext | PASS | 11 |
|
||||
| 공통 타입 일관성: QueryName | PASS | 22 |
|
||||
| 공통 타입 일관성: KeysetPageRequest | PASS | 4 |
|
||||
| 공통 타입 일관성: KeysetSlice | PASS | 7 |
|
||||
| 공통 타입 일관성: TransactionCompletionUnknownException | PASS | 7 |
|
||||
| 공통 타입 일관성: PostgreSqlWorkClaimExecutor | PASS | 2 |
|
||||
| 공통 타입 일관성: FlywayValidationGate | PASS | 8 |
|
||||
| 공통 타입 일관성: JpaPlatformEndpoint | PASS | 3 |
|
||||
| Experimental Gradle 경로 정확성 | PASS | |
|
||||
| Replica annotation-only routing 금지 | PASS | |
|
||||
| RLS connection reuse 검증 | PASS | |
|
||||
| Stable 승격 ADR gate | PASS | |
|
||||
| 심층 리서치 원문 부록 포함 | PASS | |
|
||||
@@ -0,0 +1,60 @@
|
||||
> **보존 안내** — 이 파일은 저장소 루트 `messaging-superpowers-package/` 에 있던 납품 패키지의 README다.
|
||||
> 2026-08-15 문서 정리에서 설계서·계획서는 `docs/superpowers/specs/` 와 `docs/superpowers/plans/` 로 통합했고,
|
||||
> `validate_messaging_docs.py` 와 `MANIFEST.sha256` 은 제거했다.
|
||||
> 아래 본문은 납품 시점의 기록이므로 제거된 파일을 가리키는 문장은 더 이상 유효하지 않다.
|
||||
|
||||
# Messaging Platform Superpowers Package
|
||||
|
||||
이 패키지는 `Java/Spring Messaging 플랫폼 심층 리서치`를 구현 기준으로 변환한 설계서와 구현 계획서다.
|
||||
|
||||
## 포함 파일
|
||||
|
||||
```text
|
||||
docs/superpowers/specs/2026-08-10-messaging-platform-design.md
|
||||
docs/superpowers/plans/2026-08-10-messaging-platform-implementation-plan.md
|
||||
VALIDATION.md
|
||||
validate_messaging_docs.py
|
||||
MANIFEST.sha256
|
||||
```
|
||||
|
||||
## 설계 경계
|
||||
|
||||
- 자체 `messaging-core`가 공개 계약을 소유한다.
|
||||
- Kafka 4.2+/4.3.x와 RabbitMQ 4.3.x는 Stable Adapter다.
|
||||
- Kafka Share Group, Pulsar 4.0 LTS·4.2, NATS JetStream 2.14.x는 Experimental Adapter다.
|
||||
- 공통 `EXACTLY_ONCE` 또는 전역 순서 옵션을 제공하지 않는다.
|
||||
- publish 결과는 `CONFIRMED`, `REJECTED`, `AMBIGUOUS`와 broker evidence로 표현한다.
|
||||
- M1 Typed, M2 Advanced, M3 Native Capability, M4 Admin Plane을 분리한다.
|
||||
- retry·DLQ·redrive에서 logical `messageId`를 유지한다.
|
||||
- DLQ publish 확인 전에 source message를 settlement하지 않는다.
|
||||
- Transactional Outbox, Inbox, Idempotent Consumer, Claim Check를 Reliability 모듈로 분리한다.
|
||||
|
||||
## 구현 가정
|
||||
|
||||
실제 Backend Skeleton 저장소가 입력에 포함되지 않았기 때문에 계획은 다음 기준을 사용한다.
|
||||
|
||||
- Java 21
|
||||
- Gradle Kotlin DSL
|
||||
- root package: `io.backend.skeleton.messaging`
|
||||
- module root: `modules/messaging`
|
||||
- PostgreSQL 16, Flyway, Spring JDBC/JPA
|
||||
- JUnit 5, AssertJ, ArchUnit, Testcontainers, Toxiproxy
|
||||
- Spring Framework 6.2 공통 호환선과 Spring 7.0 호환성 job
|
||||
|
||||
실제 저장소 구조가 다르면 파일 경로와 dependency catalog만 매핑한다. 공개 계약, 모듈 의존 방향, 신뢰성 상태 모델과 검증 기준은 그대로 유지한다.
|
||||
|
||||
## 문서 검증
|
||||
|
||||
패키지 루트에서 다음 명령을 실행한다.
|
||||
|
||||
```bash
|
||||
./validate_messaging_docs.py \
|
||||
docs/superpowers/specs/2026-08-10-messaging-platform-design.md \
|
||||
docs/superpowers/plans/2026-08-10-messaging-platform-implementation-plan.md
|
||||
```
|
||||
|
||||
`VALIDATION.md`는 문서 구조, Task 1~44 연속성, TDD 단계, 필수 설계 계약, placeholder, 중복 파일 경로를 확인한 정적 검증 결과다.
|
||||
|
||||
## 검증 한계
|
||||
|
||||
현재 검증은 설계·계획 문서에 대한 정적 검증이다. 실제 저장소가 제공되지 않아 Gradle compile, broker 통합 테스트, chaos test, 성능 인증은 실행하지 않았다. 구현 계획의 각 Task가 해당 실행 검증을 추가하도록 구성되어 있다.
|
||||
@@ -0,0 +1,432 @@
|
||||
# Messaging Superpowers 문서 정적 검증
|
||||
|
||||
- 설계서: `messaging-platform-design.md` — 2,608행, 74,649 bytes
|
||||
- 계획서: `messaging-platform-implementation-plan.md` — 5,056행, 200,320 bytes
|
||||
- Task 수: 44
|
||||
- Create 경로 수: 356
|
||||
- 검증 항목 수: 422
|
||||
|
||||
## 결과: PASS
|
||||
|
||||
- PASS: 설계서가 2,000행 이상이다
|
||||
- PASS: 구현 계획서가 4,000행 이상이다
|
||||
- PASS: 설계서 Markdown 코드 블록이 균형을 이룬다
|
||||
- PASS: 계획서 Markdown 코드 블록이 균형을 이룬다
|
||||
- PASS: 설계서에 unresolved todo marker가 없다
|
||||
- PASS: 계획서에 unresolved todo marker가 없다
|
||||
- PASS: 설계서에 unresolved tbd marker가 없다
|
||||
- PASS: 계획서에 unresolved tbd marker가 없다
|
||||
- PASS: 설계서에 unresolved fix marker가 없다
|
||||
- PASS: 계획서에 unresolved fix marker가 없다
|
||||
- PASS: 설계서에 placeholder ADR number가 없다
|
||||
- PASS: 계획서에 placeholder ADR number가 없다
|
||||
- PASS: 설계서에 wildcard build path가 없다
|
||||
- PASS: 계획서에 wildcard build path가 없다
|
||||
- PASS: 설계서에 deferred implementation phrase가 없다
|
||||
- PASS: 계획서에 deferred implementation phrase가 없다
|
||||
- PASS: 설계서가 필수 항목 'M1 Typed Messaging API'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'M2 Advanced API'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'M3 Native Capability'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'M4 Admin Plane'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'PublishCompletion'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'AMBIGUOUS'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'MessageEnvelope'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'DeliveryGuarantee'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'OrderingScope'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'Retry Policy Engine'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'DLQ·Parking·Redrive'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'Kafka Stable Adapter'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'RabbitMQ Stable Adapter'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'Transactional Outbox'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'Inbox와 Idempotent Consumer'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'Claim Check'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'Pulsar Experimental Adapter'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'NATS JetStream Experimental Adapter'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'Spring Cloud Stream Bridge'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'Security'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 'Observability'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 '호환성 인증 매트릭스'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 '비지원 범위'을 포함한다
|
||||
- PASS: 설계서가 필수 항목 '완료 정의'을 포함한다
|
||||
- PASS: 공통 DeliveryGuarantee가 두 가지 보장만 선언한다
|
||||
- PASS: 공통 DeliveryGuarantee enum에 EXACTLY_ONCE를 선언하지 않는다
|
||||
- PASS: 공통 OrderingScope enum에 GLOBAL을 선언하지 않는다
|
||||
- PASS: DLQ confirm 후 source settlement 순서를 명시한다
|
||||
- PASS: retry와 reliability에서 동일 message ID를 유지한다
|
||||
- PASS: Task 번호가 1부터 44까지 연속이다
|
||||
- PASS: Task 1가 '**Files:**'을 포함한다
|
||||
- PASS: Task 1가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 1가 'Step 1'을 포함한다
|
||||
- PASS: Task 1가 'Step 2'을 포함한다
|
||||
- PASS: Task 1가 'Step 3'을 포함한다
|
||||
- PASS: Task 1가 'Step 4'을 포함한다
|
||||
- PASS: Task 1가 'Step 5'을 포함한다
|
||||
- PASS: Task 1가 'git commit -m'을 포함한다
|
||||
- PASS: Task 2가 '**Files:**'을 포함한다
|
||||
- PASS: Task 2가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 2가 'Step 1'을 포함한다
|
||||
- PASS: Task 2가 'Step 2'을 포함한다
|
||||
- PASS: Task 2가 'Step 3'을 포함한다
|
||||
- PASS: Task 2가 'Step 4'을 포함한다
|
||||
- PASS: Task 2가 'Step 5'을 포함한다
|
||||
- PASS: Task 2가 'git commit -m'을 포함한다
|
||||
- PASS: Task 3가 '**Files:**'을 포함한다
|
||||
- PASS: Task 3가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 3가 'Step 1'을 포함한다
|
||||
- PASS: Task 3가 'Step 2'을 포함한다
|
||||
- PASS: Task 3가 'Step 3'을 포함한다
|
||||
- PASS: Task 3가 'Step 4'을 포함한다
|
||||
- PASS: Task 3가 'Step 5'을 포함한다
|
||||
- PASS: Task 3가 'git commit -m'을 포함한다
|
||||
- PASS: Task 4가 '**Files:**'을 포함한다
|
||||
- PASS: Task 4가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 4가 'Step 1'을 포함한다
|
||||
- PASS: Task 4가 'Step 2'을 포함한다
|
||||
- PASS: Task 4가 'Step 3'을 포함한다
|
||||
- PASS: Task 4가 'Step 4'을 포함한다
|
||||
- PASS: Task 4가 'Step 5'을 포함한다
|
||||
- PASS: Task 4가 'git commit -m'을 포함한다
|
||||
- PASS: Task 5가 '**Files:**'을 포함한다
|
||||
- PASS: Task 5가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 5가 'Step 1'을 포함한다
|
||||
- PASS: Task 5가 'Step 2'을 포함한다
|
||||
- PASS: Task 5가 'Step 3'을 포함한다
|
||||
- PASS: Task 5가 'Step 4'을 포함한다
|
||||
- PASS: Task 5가 'Step 5'을 포함한다
|
||||
- PASS: Task 5가 'git commit -m'을 포함한다
|
||||
- PASS: Task 6가 '**Files:**'을 포함한다
|
||||
- PASS: Task 6가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 6가 'Step 1'을 포함한다
|
||||
- PASS: Task 6가 'Step 2'을 포함한다
|
||||
- PASS: Task 6가 'Step 3'을 포함한다
|
||||
- PASS: Task 6가 'Step 4'을 포함한다
|
||||
- PASS: Task 6가 'Step 5'을 포함한다
|
||||
- PASS: Task 6가 'git commit -m'을 포함한다
|
||||
- PASS: Task 7가 '**Files:**'을 포함한다
|
||||
- PASS: Task 7가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 7가 'Step 1'을 포함한다
|
||||
- PASS: Task 7가 'Step 2'을 포함한다
|
||||
- PASS: Task 7가 'Step 3'을 포함한다
|
||||
- PASS: Task 7가 'Step 4'을 포함한다
|
||||
- PASS: Task 7가 'Step 5'을 포함한다
|
||||
- PASS: Task 7가 'git commit -m'을 포함한다
|
||||
- PASS: Task 8가 '**Files:**'을 포함한다
|
||||
- PASS: Task 8가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 8가 'Step 1'을 포함한다
|
||||
- PASS: Task 8가 'Step 2'을 포함한다
|
||||
- PASS: Task 8가 'Step 3'을 포함한다
|
||||
- PASS: Task 8가 'Step 4'을 포함한다
|
||||
- PASS: Task 8가 'Step 5'을 포함한다
|
||||
- PASS: Task 8가 'git commit -m'을 포함한다
|
||||
- PASS: Task 9가 '**Files:**'을 포함한다
|
||||
- PASS: Task 9가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 9가 'Step 1'을 포함한다
|
||||
- PASS: Task 9가 'Step 2'을 포함한다
|
||||
- PASS: Task 9가 'Step 3'을 포함한다
|
||||
- PASS: Task 9가 'Step 4'을 포함한다
|
||||
- PASS: Task 9가 'Step 5'을 포함한다
|
||||
- PASS: Task 9가 'git commit -m'을 포함한다
|
||||
- PASS: Task 10가 '**Files:**'을 포함한다
|
||||
- PASS: Task 10가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 10가 'Step 1'을 포함한다
|
||||
- PASS: Task 10가 'Step 2'을 포함한다
|
||||
- PASS: Task 10가 'Step 3'을 포함한다
|
||||
- PASS: Task 10가 'Step 4'을 포함한다
|
||||
- PASS: Task 10가 'Step 5'을 포함한다
|
||||
- PASS: Task 10가 'git commit -m'을 포함한다
|
||||
- PASS: Task 11가 '**Files:**'을 포함한다
|
||||
- PASS: Task 11가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 11가 'Step 1'을 포함한다
|
||||
- PASS: Task 11가 'Step 2'을 포함한다
|
||||
- PASS: Task 11가 'Step 3'을 포함한다
|
||||
- PASS: Task 11가 'Step 4'을 포함한다
|
||||
- PASS: Task 11가 'Step 5'을 포함한다
|
||||
- PASS: Task 11가 'git commit -m'을 포함한다
|
||||
- PASS: Task 12가 '**Files:**'을 포함한다
|
||||
- PASS: Task 12가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 12가 'Step 1'을 포함한다
|
||||
- PASS: Task 12가 'Step 2'을 포함한다
|
||||
- PASS: Task 12가 'Step 3'을 포함한다
|
||||
- PASS: Task 12가 'Step 4'을 포함한다
|
||||
- PASS: Task 12가 'Step 5'을 포함한다
|
||||
- PASS: Task 12가 'git commit -m'을 포함한다
|
||||
- PASS: Task 13가 '**Files:**'을 포함한다
|
||||
- PASS: Task 13가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 13가 'Step 1'을 포함한다
|
||||
- PASS: Task 13가 'Step 2'을 포함한다
|
||||
- PASS: Task 13가 'Step 3'을 포함한다
|
||||
- PASS: Task 13가 'Step 4'을 포함한다
|
||||
- PASS: Task 13가 'Step 5'을 포함한다
|
||||
- PASS: Task 13가 'git commit -m'을 포함한다
|
||||
- PASS: Task 14가 '**Files:**'을 포함한다
|
||||
- PASS: Task 14가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 14가 'Step 1'을 포함한다
|
||||
- PASS: Task 14가 'Step 2'을 포함한다
|
||||
- PASS: Task 14가 'Step 3'을 포함한다
|
||||
- PASS: Task 14가 'Step 4'을 포함한다
|
||||
- PASS: Task 14가 'Step 5'을 포함한다
|
||||
- PASS: Task 14가 'git commit -m'을 포함한다
|
||||
- PASS: Task 15가 '**Files:**'을 포함한다
|
||||
- PASS: Task 15가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 15가 'Step 1'을 포함한다
|
||||
- PASS: Task 15가 'Step 2'을 포함한다
|
||||
- PASS: Task 15가 'Step 3'을 포함한다
|
||||
- PASS: Task 15가 'Step 4'을 포함한다
|
||||
- PASS: Task 15가 'Step 5'을 포함한다
|
||||
- PASS: Task 15가 'git commit -m'을 포함한다
|
||||
- PASS: Task 16가 '**Files:**'을 포함한다
|
||||
- PASS: Task 16가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 16가 'Step 1'을 포함한다
|
||||
- PASS: Task 16가 'Step 2'을 포함한다
|
||||
- PASS: Task 16가 'Step 3'을 포함한다
|
||||
- PASS: Task 16가 'Step 4'을 포함한다
|
||||
- PASS: Task 16가 'Step 5'을 포함한다
|
||||
- PASS: Task 16가 'git commit -m'을 포함한다
|
||||
- PASS: Task 17가 '**Files:**'을 포함한다
|
||||
- PASS: Task 17가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 17가 'Step 1'을 포함한다
|
||||
- PASS: Task 17가 'Step 2'을 포함한다
|
||||
- PASS: Task 17가 'Step 3'을 포함한다
|
||||
- PASS: Task 17가 'Step 4'을 포함한다
|
||||
- PASS: Task 17가 'Step 5'을 포함한다
|
||||
- PASS: Task 17가 'git commit -m'을 포함한다
|
||||
- PASS: Task 18가 '**Files:**'을 포함한다
|
||||
- PASS: Task 18가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 18가 'Step 1'을 포함한다
|
||||
- PASS: Task 18가 'Step 2'을 포함한다
|
||||
- PASS: Task 18가 'Step 3'을 포함한다
|
||||
- PASS: Task 18가 'Step 4'을 포함한다
|
||||
- PASS: Task 18가 'Step 5'을 포함한다
|
||||
- PASS: Task 18가 'git commit -m'을 포함한다
|
||||
- PASS: Task 19가 '**Files:**'을 포함한다
|
||||
- PASS: Task 19가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 19가 'Step 1'을 포함한다
|
||||
- PASS: Task 19가 'Step 2'을 포함한다
|
||||
- PASS: Task 19가 'Step 3'을 포함한다
|
||||
- PASS: Task 19가 'Step 4'을 포함한다
|
||||
- PASS: Task 19가 'Step 5'을 포함한다
|
||||
- PASS: Task 19가 'git commit -m'을 포함한다
|
||||
- PASS: Task 20가 '**Files:**'을 포함한다
|
||||
- PASS: Task 20가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 20가 'Step 1'을 포함한다
|
||||
- PASS: Task 20가 'Step 2'을 포함한다
|
||||
- PASS: Task 20가 'Step 3'을 포함한다
|
||||
- PASS: Task 20가 'Step 4'을 포함한다
|
||||
- PASS: Task 20가 'Step 5'을 포함한다
|
||||
- PASS: Task 20가 'git commit -m'을 포함한다
|
||||
- PASS: Task 21가 '**Files:**'을 포함한다
|
||||
- PASS: Task 21가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 21가 'Step 1'을 포함한다
|
||||
- PASS: Task 21가 'Step 2'을 포함한다
|
||||
- PASS: Task 21가 'Step 3'을 포함한다
|
||||
- PASS: Task 21가 'Step 4'을 포함한다
|
||||
- PASS: Task 21가 'Step 5'을 포함한다
|
||||
- PASS: Task 21가 'git commit -m'을 포함한다
|
||||
- PASS: Task 22가 '**Files:**'을 포함한다
|
||||
- PASS: Task 22가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 22가 'Step 1'을 포함한다
|
||||
- PASS: Task 22가 'Step 2'을 포함한다
|
||||
- PASS: Task 22가 'Step 3'을 포함한다
|
||||
- PASS: Task 22가 'Step 4'을 포함한다
|
||||
- PASS: Task 22가 'Step 5'을 포함한다
|
||||
- PASS: Task 22가 'git commit -m'을 포함한다
|
||||
- PASS: Task 23가 '**Files:**'을 포함한다
|
||||
- PASS: Task 23가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 23가 'Step 1'을 포함한다
|
||||
- PASS: Task 23가 'Step 2'을 포함한다
|
||||
- PASS: Task 23가 'Step 3'을 포함한다
|
||||
- PASS: Task 23가 'Step 4'을 포함한다
|
||||
- PASS: Task 23가 'Step 5'을 포함한다
|
||||
- PASS: Task 23가 'git commit -m'을 포함한다
|
||||
- PASS: Task 24가 '**Files:**'을 포함한다
|
||||
- PASS: Task 24가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 24가 'Step 1'을 포함한다
|
||||
- PASS: Task 24가 'Step 2'을 포함한다
|
||||
- PASS: Task 24가 'Step 3'을 포함한다
|
||||
- PASS: Task 24가 'Step 4'을 포함한다
|
||||
- PASS: Task 24가 'Step 5'을 포함한다
|
||||
- PASS: Task 24가 'git commit -m'을 포함한다
|
||||
- PASS: Task 25가 '**Files:**'을 포함한다
|
||||
- PASS: Task 25가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 25가 'Step 1'을 포함한다
|
||||
- PASS: Task 25가 'Step 2'을 포함한다
|
||||
- PASS: Task 25가 'Step 3'을 포함한다
|
||||
- PASS: Task 25가 'Step 4'을 포함한다
|
||||
- PASS: Task 25가 'Step 5'을 포함한다
|
||||
- PASS: Task 25가 'git commit -m'을 포함한다
|
||||
- PASS: Task 26가 '**Files:**'을 포함한다
|
||||
- PASS: Task 26가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 26가 'Step 1'을 포함한다
|
||||
- PASS: Task 26가 'Step 2'을 포함한다
|
||||
- PASS: Task 26가 'Step 3'을 포함한다
|
||||
- PASS: Task 26가 'Step 4'을 포함한다
|
||||
- PASS: Task 26가 'Step 5'을 포함한다
|
||||
- PASS: Task 26가 'git commit -m'을 포함한다
|
||||
- PASS: Task 27가 '**Files:**'을 포함한다
|
||||
- PASS: Task 27가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 27가 'Step 1'을 포함한다
|
||||
- PASS: Task 27가 'Step 2'을 포함한다
|
||||
- PASS: Task 27가 'Step 3'을 포함한다
|
||||
- PASS: Task 27가 'Step 4'을 포함한다
|
||||
- PASS: Task 27가 'Step 5'을 포함한다
|
||||
- PASS: Task 27가 'git commit -m'을 포함한다
|
||||
- PASS: Task 28가 '**Files:**'을 포함한다
|
||||
- PASS: Task 28가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 28가 'Step 1'을 포함한다
|
||||
- PASS: Task 28가 'Step 2'을 포함한다
|
||||
- PASS: Task 28가 'Step 3'을 포함한다
|
||||
- PASS: Task 28가 'Step 4'을 포함한다
|
||||
- PASS: Task 28가 'Step 5'을 포함한다
|
||||
- PASS: Task 28가 'git commit -m'을 포함한다
|
||||
- PASS: Task 29가 '**Files:**'을 포함한다
|
||||
- PASS: Task 29가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 29가 'Step 1'을 포함한다
|
||||
- PASS: Task 29가 'Step 2'을 포함한다
|
||||
- PASS: Task 29가 'Step 3'을 포함한다
|
||||
- PASS: Task 29가 'Step 4'을 포함한다
|
||||
- PASS: Task 29가 'Step 5'을 포함한다
|
||||
- PASS: Task 29가 'git commit -m'을 포함한다
|
||||
- PASS: Task 30가 '**Files:**'을 포함한다
|
||||
- PASS: Task 30가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 30가 'Step 1'을 포함한다
|
||||
- PASS: Task 30가 'Step 2'을 포함한다
|
||||
- PASS: Task 30가 'Step 3'을 포함한다
|
||||
- PASS: Task 30가 'Step 4'을 포함한다
|
||||
- PASS: Task 30가 'Step 5'을 포함한다
|
||||
- PASS: Task 30가 'git commit -m'을 포함한다
|
||||
- PASS: Task 31가 '**Files:**'을 포함한다
|
||||
- PASS: Task 31가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 31가 'Step 1'을 포함한다
|
||||
- PASS: Task 31가 'Step 2'을 포함한다
|
||||
- PASS: Task 31가 'Step 3'을 포함한다
|
||||
- PASS: Task 31가 'Step 4'을 포함한다
|
||||
- PASS: Task 31가 'Step 5'을 포함한다
|
||||
- PASS: Task 31가 'git commit -m'을 포함한다
|
||||
- PASS: Task 32가 '**Files:**'을 포함한다
|
||||
- PASS: Task 32가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 32가 'Step 1'을 포함한다
|
||||
- PASS: Task 32가 'Step 2'을 포함한다
|
||||
- PASS: Task 32가 'Step 3'을 포함한다
|
||||
- PASS: Task 32가 'Step 4'을 포함한다
|
||||
- PASS: Task 32가 'Step 5'을 포함한다
|
||||
- PASS: Task 32가 'git commit -m'을 포함한다
|
||||
- PASS: Task 33가 '**Files:**'을 포함한다
|
||||
- PASS: Task 33가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 33가 'Step 1'을 포함한다
|
||||
- PASS: Task 33가 'Step 2'을 포함한다
|
||||
- PASS: Task 33가 'Step 3'을 포함한다
|
||||
- PASS: Task 33가 'Step 4'을 포함한다
|
||||
- PASS: Task 33가 'Step 5'을 포함한다
|
||||
- PASS: Task 33가 'git commit -m'을 포함한다
|
||||
- PASS: Task 34가 '**Files:**'을 포함한다
|
||||
- PASS: Task 34가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 34가 'Step 1'을 포함한다
|
||||
- PASS: Task 34가 'Step 2'을 포함한다
|
||||
- PASS: Task 34가 'Step 3'을 포함한다
|
||||
- PASS: Task 34가 'Step 4'을 포함한다
|
||||
- PASS: Task 34가 'Step 5'을 포함한다
|
||||
- PASS: Task 34가 'git commit -m'을 포함한다
|
||||
- PASS: Task 35가 '**Files:**'을 포함한다
|
||||
- PASS: Task 35가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 35가 'Step 1'을 포함한다
|
||||
- PASS: Task 35가 'Step 2'을 포함한다
|
||||
- PASS: Task 35가 'Step 3'을 포함한다
|
||||
- PASS: Task 35가 'Step 4'을 포함한다
|
||||
- PASS: Task 35가 'Step 5'을 포함한다
|
||||
- PASS: Task 35가 'git commit -m'을 포함한다
|
||||
- PASS: Task 36가 '**Files:**'을 포함한다
|
||||
- PASS: Task 36가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 36가 'Step 1'을 포함한다
|
||||
- PASS: Task 36가 'Step 2'을 포함한다
|
||||
- PASS: Task 36가 'Step 3'을 포함한다
|
||||
- PASS: Task 36가 'Step 4'을 포함한다
|
||||
- PASS: Task 36가 'Step 5'을 포함한다
|
||||
- PASS: Task 36가 'git commit -m'을 포함한다
|
||||
- PASS: Task 37가 '**Files:**'을 포함한다
|
||||
- PASS: Task 37가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 37가 'Step 1'을 포함한다
|
||||
- PASS: Task 37가 'Step 2'을 포함한다
|
||||
- PASS: Task 37가 'Step 3'을 포함한다
|
||||
- PASS: Task 37가 'Step 4'을 포함한다
|
||||
- PASS: Task 37가 'Step 5'을 포함한다
|
||||
- PASS: Task 37가 'git commit -m'을 포함한다
|
||||
- PASS: Task 38가 '**Files:**'을 포함한다
|
||||
- PASS: Task 38가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 38가 'Step 1'을 포함한다
|
||||
- PASS: Task 38가 'Step 2'을 포함한다
|
||||
- PASS: Task 38가 'Step 3'을 포함한다
|
||||
- PASS: Task 38가 'Step 4'을 포함한다
|
||||
- PASS: Task 38가 'Step 5'을 포함한다
|
||||
- PASS: Task 38가 'git commit -m'을 포함한다
|
||||
- PASS: Task 39가 '**Files:**'을 포함한다
|
||||
- PASS: Task 39가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 39가 'Step 1'을 포함한다
|
||||
- PASS: Task 39가 'Step 2'을 포함한다
|
||||
- PASS: Task 39가 'Step 3'을 포함한다
|
||||
- PASS: Task 39가 'Step 4'을 포함한다
|
||||
- PASS: Task 39가 'Step 5'을 포함한다
|
||||
- PASS: Task 39가 'git commit -m'을 포함한다
|
||||
- PASS: Task 40가 '**Files:**'을 포함한다
|
||||
- PASS: Task 40가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 40가 'Step 1'을 포함한다
|
||||
- PASS: Task 40가 'Step 2'을 포함한다
|
||||
- PASS: Task 40가 'Step 3'을 포함한다
|
||||
- PASS: Task 40가 'Step 4'을 포함한다
|
||||
- PASS: Task 40가 'Step 5'을 포함한다
|
||||
- PASS: Task 40가 'git commit -m'을 포함한다
|
||||
- PASS: Task 41가 '**Files:**'을 포함한다
|
||||
- PASS: Task 41가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 41가 'Step 1'을 포함한다
|
||||
- PASS: Task 41가 'Step 2'을 포함한다
|
||||
- PASS: Task 41가 'Step 3'을 포함한다
|
||||
- PASS: Task 41가 'Step 4'을 포함한다
|
||||
- PASS: Task 41가 'Step 5'을 포함한다
|
||||
- PASS: Task 41가 'git commit -m'을 포함한다
|
||||
- PASS: Task 42가 '**Files:**'을 포함한다
|
||||
- PASS: Task 42가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 42가 'Step 1'을 포함한다
|
||||
- PASS: Task 42가 'Step 2'을 포함한다
|
||||
- PASS: Task 42가 'Step 3'을 포함한다
|
||||
- PASS: Task 42가 'Step 4'을 포함한다
|
||||
- PASS: Task 42가 'Step 5'을 포함한다
|
||||
- PASS: Task 42가 'git commit -m'을 포함한다
|
||||
- PASS: Task 43가 '**Files:**'을 포함한다
|
||||
- PASS: Task 43가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 43가 'Step 1'을 포함한다
|
||||
- PASS: Task 43가 'Step 2'을 포함한다
|
||||
- PASS: Task 43가 'Step 3'을 포함한다
|
||||
- PASS: Task 43가 'Step 4'을 포함한다
|
||||
- PASS: Task 43가 'Step 5'을 포함한다
|
||||
- PASS: Task 43가 'git commit -m'을 포함한다
|
||||
- PASS: Task 44가 '**Files:**'을 포함한다
|
||||
- PASS: Task 44가 '**Interfaces:**'을 포함한다
|
||||
- PASS: Task 44가 'Step 1'을 포함한다
|
||||
- PASS: Task 44가 'Step 2'을 포함한다
|
||||
- PASS: Task 44가 'Step 3'을 포함한다
|
||||
- PASS: Task 44가 'Step 4'을 포함한다
|
||||
- PASS: Task 44가 'Step 5'을 포함한다
|
||||
- PASS: Task 44가 'git commit -m'을 포함한다
|
||||
- PASS: 중복된 Create 파일 경로가 없다
|
||||
- PASS: Create 파일 경로에 wildcard가 없다
|
||||
- PASS: 계획서가 필수 작업 'Kafka Producer Adapter와 Publish Evidence'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Kafka Consumer Group, Partition Coordinator'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Kafka Native Transaction Capability'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Kafka Share Group Experimental Adapter'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Rabbit Publisher Confirm·Return Evidence Adapter'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Rabbit Consumer Manual ACK'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Transactional Outbox Repository'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Inbox Transactional Idempotent Consumer'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Debezium Outbox Event Router'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Pulsar Experimental Adapter'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'NATS JetStream Experimental Adapter'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Spring Cloud Stream Optional Bridge'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Global Backpressure'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 'Cross-broker 장애·보안·Reliability Contract Suite'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 '성능 인증, Compatibility Matrix'을 포함한다
|
||||
- PASS: 계획서가 필수 작업 '지원 문서, Runbook, ADR, Release Gate'을 포함한다
|
||||
- PASS: 계획서가 message identity 보존을 명시한다
|
||||
- PASS: 계획서가 DLQ 실패 시 source ACK 금지를 명시한다
|
||||
- PASS: 계획서가 credential 분리를 명시한다
|
||||
- PASS: Stable chaos aggregate task가 계획에 존재한다
|
||||
- PASS: performance aggregate task가 계획에 존재한다
|
||||
- PASS: compatibility aggregate task가 계획에 존재한다
|
||||
@@ -0,0 +1,47 @@
|
||||
> **보존 안내** — 이 파일은 저장소 루트 `mongodb-superpowers-package/` 에 있던 납품 패키지의 README다.
|
||||
> 2026-08-15 문서 정리에서 설계서·계획서는 `docs/superpowers/specs/` 와 `docs/superpowers/plans/` 로 통합했고,
|
||||
> `validate_mongodb_docs.py` 와 `MANIFEST.sha256` 은 제거했다.
|
||||
> 아래 본문은 납품 시점의 기록이므로 제거된 파일을 가리키는 문장은 더 이상 유효하지 않다.
|
||||
|
||||
# MongoDB Superpowers 문서 패키지
|
||||
|
||||
이 패키지는 첨부된 `MongoDB 문서 영속성 플랫폼 심층 리서치`를 요구사항 원본으로 사용해 작성한 설계서와 구현 계획서다.
|
||||
|
||||
## 파일
|
||||
|
||||
```text
|
||||
docs/superpowers/specs/2026-08-11-mongodb-document-persistence-platform-design.md
|
||||
docs/superpowers/plans/2026-08-11-mongodb-document-persistence-platform-implementation-plan.md
|
||||
docs/superpowers/plans/2026-08-11-mongodb-advanced-capabilities-expansion-plan.md
|
||||
VALIDATION.md
|
||||
validate_mongodb_docs.py
|
||||
MANIFEST.sha256
|
||||
```
|
||||
|
||||
## 적용 가정
|
||||
|
||||
```text
|
||||
Java 21
|
||||
Gradle Kotlin DSL
|
||||
Spring Boot 4.1 BOM
|
||||
Spring Data MongoDB 5.1
|
||||
Boot-managed MongoDB Java Driver
|
||||
MongoDB 8.0 primary certification
|
||||
MongoDB 7.0 compatibility
|
||||
root package: io.backend.skeleton.mongodb
|
||||
stable modules: modules/mongodb
|
||||
advanced modules: modules/mongodb-advanced
|
||||
```
|
||||
|
||||
실제 Backend Skeleton 저장소 구조가 입력에 포함되지 않았으므로 파일 경로는 위 가정에 따라 확정했다. 적용 시 기존 version catalog와 공통 build logic에 경로만 매핑하고 공개 계약과 신뢰성 의미론은 유지한다.
|
||||
|
||||
## 실행 순서
|
||||
|
||||
```text
|
||||
Stable Implementation Plan Task 1~50
|
||||
→ Stable Release Gate
|
||||
→ Advanced Plan Task 1~15
|
||||
→ capability별 Promotion Gate
|
||||
```
|
||||
|
||||
Stable 구현 전에 Advanced 모듈을 Starter에 추가하지 않는다.
|
||||
@@ -0,0 +1,737 @@
|
||||
# MongoDB Superpowers 문서 정적 검증 결과
|
||||
|
||||
## 결과
|
||||
|
||||
```text
|
||||
SUMMARY | total=687 pass=687 fail=0
|
||||
```
|
||||
|
||||
| 항목 | 값 |
|
||||
|---|---:|
|
||||
| 설계서 행 수 | 1303 |
|
||||
| Stable 구현 계획서 행 수 | 3943 |
|
||||
| Advanced 구현 계획서 행 수 | 1139 |
|
||||
| Stable Task | 50 |
|
||||
| Advanced Task | 15 |
|
||||
| Stable Create 경로 | 252 |
|
||||
| Advanced Create 경로 | 77 |
|
||||
|
||||
## 검증 범위
|
||||
|
||||
```text
|
||||
설계 핵심 결정 존재
|
||||
Task 번호 연속성
|
||||
모든 Task의 Files·Interfaces·Implementation requirements
|
||||
모든 Task의 Step 1~5
|
||||
Task별 실패·통과 예상 결과와 Commit
|
||||
Create 경로 중복·충돌
|
||||
Markdown code fence 균형
|
||||
TODO·TBD·FIXME 부재
|
||||
범용 Mongo Repository 실제 선언 부재
|
||||
Runtime arbitrary runCommand public API 부재
|
||||
Stable API V1 strict와 Replica Set 기준
|
||||
Transaction body retry와 commit retry 분리
|
||||
Change Stream at-least-once 계약
|
||||
TTL cleanup-only 계약
|
||||
GridFS compatibility-only 계약
|
||||
Stable·Advanced dependency 격리
|
||||
MongoDB 7.0·8.0 호환 Matrix
|
||||
Advanced actual topology promotion gate
|
||||
```
|
||||
|
||||
## 전체 검사 로그
|
||||
|
||||
```text
|
||||
PASS | design exists
|
||||
PASS | stable plan exists
|
||||
PASS | advanced plan exists
|
||||
PASS | design purpose
|
||||
PASS | domain ownership
|
||||
PASS | no generic repository design
|
||||
PASS | stable api strict
|
||||
PASS | local replica set
|
||||
PASS | standalone smoke only
|
||||
PASS | bson manifest
|
||||
PASS | transaction retry separation
|
||||
PASS | change stream at least once
|
||||
PASS | ttl cleanup only
|
||||
PASS | gridfs compatibility only
|
||||
PASS | driver native observability
|
||||
PASS | stable task count | 50
|
||||
PASS | stable task sequence | [1, 2, 3]...[48, 49, 50]
|
||||
PASS | stable task 1 has **Files:**
|
||||
PASS | stable task 1 has **Interfaces:**
|
||||
PASS | stable task 1 has **Implementation requirements:**
|
||||
PASS | stable task 1 has **Step 1:
|
||||
PASS | stable task 1 has **Step 2:
|
||||
PASS | stable task 1 has **Step 3:
|
||||
PASS | stable task 1 has **Step 4:
|
||||
PASS | stable task 1 has **Step 5:
|
||||
PASS | stable task 1 has commit
|
||||
PASS | stable task 1 has expected result
|
||||
PASS | stable task 2 has **Files:**
|
||||
PASS | stable task 2 has **Interfaces:**
|
||||
PASS | stable task 2 has **Implementation requirements:**
|
||||
PASS | stable task 2 has **Step 1:
|
||||
PASS | stable task 2 has **Step 2:
|
||||
PASS | stable task 2 has **Step 3:
|
||||
PASS | stable task 2 has **Step 4:
|
||||
PASS | stable task 2 has **Step 5:
|
||||
PASS | stable task 2 has commit
|
||||
PASS | stable task 2 has expected result
|
||||
PASS | stable task 3 has **Files:**
|
||||
PASS | stable task 3 has **Interfaces:**
|
||||
PASS | stable task 3 has **Implementation requirements:**
|
||||
PASS | stable task 3 has **Step 1:
|
||||
PASS | stable task 3 has **Step 2:
|
||||
PASS | stable task 3 has **Step 3:
|
||||
PASS | stable task 3 has **Step 4:
|
||||
PASS | stable task 3 has **Step 5:
|
||||
PASS | stable task 3 has commit
|
||||
PASS | stable task 3 has expected result
|
||||
PASS | stable task 4 has **Files:**
|
||||
PASS | stable task 4 has **Interfaces:**
|
||||
PASS | stable task 4 has **Implementation requirements:**
|
||||
PASS | stable task 4 has **Step 1:
|
||||
PASS | stable task 4 has **Step 2:
|
||||
PASS | stable task 4 has **Step 3:
|
||||
PASS | stable task 4 has **Step 4:
|
||||
PASS | stable task 4 has **Step 5:
|
||||
PASS | stable task 4 has commit
|
||||
PASS | stable task 4 has expected result
|
||||
PASS | stable task 5 has **Files:**
|
||||
PASS | stable task 5 has **Interfaces:**
|
||||
PASS | stable task 5 has **Implementation requirements:**
|
||||
PASS | stable task 5 has **Step 1:
|
||||
PASS | stable task 5 has **Step 2:
|
||||
PASS | stable task 5 has **Step 3:
|
||||
PASS | stable task 5 has **Step 4:
|
||||
PASS | stable task 5 has **Step 5:
|
||||
PASS | stable task 5 has commit
|
||||
PASS | stable task 5 has expected result
|
||||
PASS | stable task 6 has **Files:**
|
||||
PASS | stable task 6 has **Interfaces:**
|
||||
PASS | stable task 6 has **Implementation requirements:**
|
||||
PASS | stable task 6 has **Step 1:
|
||||
PASS | stable task 6 has **Step 2:
|
||||
PASS | stable task 6 has **Step 3:
|
||||
PASS | stable task 6 has **Step 4:
|
||||
PASS | stable task 6 has **Step 5:
|
||||
PASS | stable task 6 has commit
|
||||
PASS | stable task 6 has expected result
|
||||
PASS | stable task 7 has **Files:**
|
||||
PASS | stable task 7 has **Interfaces:**
|
||||
PASS | stable task 7 has **Implementation requirements:**
|
||||
PASS | stable task 7 has **Step 1:
|
||||
PASS | stable task 7 has **Step 2:
|
||||
PASS | stable task 7 has **Step 3:
|
||||
PASS | stable task 7 has **Step 4:
|
||||
PASS | stable task 7 has **Step 5:
|
||||
PASS | stable task 7 has commit
|
||||
PASS | stable task 7 has expected result
|
||||
PASS | stable task 8 has **Files:**
|
||||
PASS | stable task 8 has **Interfaces:**
|
||||
PASS | stable task 8 has **Implementation requirements:**
|
||||
PASS | stable task 8 has **Step 1:
|
||||
PASS | stable task 8 has **Step 2:
|
||||
PASS | stable task 8 has **Step 3:
|
||||
PASS | stable task 8 has **Step 4:
|
||||
PASS | stable task 8 has **Step 5:
|
||||
PASS | stable task 8 has commit
|
||||
PASS | stable task 8 has expected result
|
||||
PASS | stable task 9 has **Files:**
|
||||
PASS | stable task 9 has **Interfaces:**
|
||||
PASS | stable task 9 has **Implementation requirements:**
|
||||
PASS | stable task 9 has **Step 1:
|
||||
PASS | stable task 9 has **Step 2:
|
||||
PASS | stable task 9 has **Step 3:
|
||||
PASS | stable task 9 has **Step 4:
|
||||
PASS | stable task 9 has **Step 5:
|
||||
PASS | stable task 9 has commit
|
||||
PASS | stable task 9 has expected result
|
||||
PASS | stable task 10 has **Files:**
|
||||
PASS | stable task 10 has **Interfaces:**
|
||||
PASS | stable task 10 has **Implementation requirements:**
|
||||
PASS | stable task 10 has **Step 1:
|
||||
PASS | stable task 10 has **Step 2:
|
||||
PASS | stable task 10 has **Step 3:
|
||||
PASS | stable task 10 has **Step 4:
|
||||
PASS | stable task 10 has **Step 5:
|
||||
PASS | stable task 10 has commit
|
||||
PASS | stable task 10 has expected result
|
||||
PASS | stable task 11 has **Files:**
|
||||
PASS | stable task 11 has **Interfaces:**
|
||||
PASS | stable task 11 has **Implementation requirements:**
|
||||
PASS | stable task 11 has **Step 1:
|
||||
PASS | stable task 11 has **Step 2:
|
||||
PASS | stable task 11 has **Step 3:
|
||||
PASS | stable task 11 has **Step 4:
|
||||
PASS | stable task 11 has **Step 5:
|
||||
PASS | stable task 11 has commit
|
||||
PASS | stable task 11 has expected result
|
||||
PASS | stable task 12 has **Files:**
|
||||
PASS | stable task 12 has **Interfaces:**
|
||||
PASS | stable task 12 has **Implementation requirements:**
|
||||
PASS | stable task 12 has **Step 1:
|
||||
PASS | stable task 12 has **Step 2:
|
||||
PASS | stable task 12 has **Step 3:
|
||||
PASS | stable task 12 has **Step 4:
|
||||
PASS | stable task 12 has **Step 5:
|
||||
PASS | stable task 12 has commit
|
||||
PASS | stable task 12 has expected result
|
||||
PASS | stable task 13 has **Files:**
|
||||
PASS | stable task 13 has **Interfaces:**
|
||||
PASS | stable task 13 has **Implementation requirements:**
|
||||
PASS | stable task 13 has **Step 1:
|
||||
PASS | stable task 13 has **Step 2:
|
||||
PASS | stable task 13 has **Step 3:
|
||||
PASS | stable task 13 has **Step 4:
|
||||
PASS | stable task 13 has **Step 5:
|
||||
PASS | stable task 13 has commit
|
||||
PASS | stable task 13 has expected result
|
||||
PASS | stable task 14 has **Files:**
|
||||
PASS | stable task 14 has **Interfaces:**
|
||||
PASS | stable task 14 has **Implementation requirements:**
|
||||
PASS | stable task 14 has **Step 1:
|
||||
PASS | stable task 14 has **Step 2:
|
||||
PASS | stable task 14 has **Step 3:
|
||||
PASS | stable task 14 has **Step 4:
|
||||
PASS | stable task 14 has **Step 5:
|
||||
PASS | stable task 14 has commit
|
||||
PASS | stable task 14 has expected result
|
||||
PASS | stable task 15 has **Files:**
|
||||
PASS | stable task 15 has **Interfaces:**
|
||||
PASS | stable task 15 has **Implementation requirements:**
|
||||
PASS | stable task 15 has **Step 1:
|
||||
PASS | stable task 15 has **Step 2:
|
||||
PASS | stable task 15 has **Step 3:
|
||||
PASS | stable task 15 has **Step 4:
|
||||
PASS | stable task 15 has **Step 5:
|
||||
PASS | stable task 15 has commit
|
||||
PASS | stable task 15 has expected result
|
||||
PASS | stable task 16 has **Files:**
|
||||
PASS | stable task 16 has **Interfaces:**
|
||||
PASS | stable task 16 has **Implementation requirements:**
|
||||
PASS | stable task 16 has **Step 1:
|
||||
PASS | stable task 16 has **Step 2:
|
||||
PASS | stable task 16 has **Step 3:
|
||||
PASS | stable task 16 has **Step 4:
|
||||
PASS | stable task 16 has **Step 5:
|
||||
PASS | stable task 16 has commit
|
||||
PASS | stable task 16 has expected result
|
||||
PASS | stable task 17 has **Files:**
|
||||
PASS | stable task 17 has **Interfaces:**
|
||||
PASS | stable task 17 has **Implementation requirements:**
|
||||
PASS | stable task 17 has **Step 1:
|
||||
PASS | stable task 17 has **Step 2:
|
||||
PASS | stable task 17 has **Step 3:
|
||||
PASS | stable task 17 has **Step 4:
|
||||
PASS | stable task 17 has **Step 5:
|
||||
PASS | stable task 17 has commit
|
||||
PASS | stable task 17 has expected result
|
||||
PASS | stable task 18 has **Files:**
|
||||
PASS | stable task 18 has **Interfaces:**
|
||||
PASS | stable task 18 has **Implementation requirements:**
|
||||
PASS | stable task 18 has **Step 1:
|
||||
PASS | stable task 18 has **Step 2:
|
||||
PASS | stable task 18 has **Step 3:
|
||||
PASS | stable task 18 has **Step 4:
|
||||
PASS | stable task 18 has **Step 5:
|
||||
PASS | stable task 18 has commit
|
||||
PASS | stable task 18 has expected result
|
||||
PASS | stable task 19 has **Files:**
|
||||
PASS | stable task 19 has **Interfaces:**
|
||||
PASS | stable task 19 has **Implementation requirements:**
|
||||
PASS | stable task 19 has **Step 1:
|
||||
PASS | stable task 19 has **Step 2:
|
||||
PASS | stable task 19 has **Step 3:
|
||||
PASS | stable task 19 has **Step 4:
|
||||
PASS | stable task 19 has **Step 5:
|
||||
PASS | stable task 19 has commit
|
||||
PASS | stable task 19 has expected result
|
||||
PASS | stable task 20 has **Files:**
|
||||
PASS | stable task 20 has **Interfaces:**
|
||||
PASS | stable task 20 has **Implementation requirements:**
|
||||
PASS | stable task 20 has **Step 1:
|
||||
PASS | stable task 20 has **Step 2:
|
||||
PASS | stable task 20 has **Step 3:
|
||||
PASS | stable task 20 has **Step 4:
|
||||
PASS | stable task 20 has **Step 5:
|
||||
PASS | stable task 20 has commit
|
||||
PASS | stable task 20 has expected result
|
||||
PASS | stable task 21 has **Files:**
|
||||
PASS | stable task 21 has **Interfaces:**
|
||||
PASS | stable task 21 has **Implementation requirements:**
|
||||
PASS | stable task 21 has **Step 1:
|
||||
PASS | stable task 21 has **Step 2:
|
||||
PASS | stable task 21 has **Step 3:
|
||||
PASS | stable task 21 has **Step 4:
|
||||
PASS | stable task 21 has **Step 5:
|
||||
PASS | stable task 21 has commit
|
||||
PASS | stable task 21 has expected result
|
||||
PASS | stable task 22 has **Files:**
|
||||
PASS | stable task 22 has **Interfaces:**
|
||||
PASS | stable task 22 has **Implementation requirements:**
|
||||
PASS | stable task 22 has **Step 1:
|
||||
PASS | stable task 22 has **Step 2:
|
||||
PASS | stable task 22 has **Step 3:
|
||||
PASS | stable task 22 has **Step 4:
|
||||
PASS | stable task 22 has **Step 5:
|
||||
PASS | stable task 22 has commit
|
||||
PASS | stable task 22 has expected result
|
||||
PASS | stable task 23 has **Files:**
|
||||
PASS | stable task 23 has **Interfaces:**
|
||||
PASS | stable task 23 has **Implementation requirements:**
|
||||
PASS | stable task 23 has **Step 1:
|
||||
PASS | stable task 23 has **Step 2:
|
||||
PASS | stable task 23 has **Step 3:
|
||||
PASS | stable task 23 has **Step 4:
|
||||
PASS | stable task 23 has **Step 5:
|
||||
PASS | stable task 23 has commit
|
||||
PASS | stable task 23 has expected result
|
||||
PASS | stable task 24 has **Files:**
|
||||
PASS | stable task 24 has **Interfaces:**
|
||||
PASS | stable task 24 has **Implementation requirements:**
|
||||
PASS | stable task 24 has **Step 1:
|
||||
PASS | stable task 24 has **Step 2:
|
||||
PASS | stable task 24 has **Step 3:
|
||||
PASS | stable task 24 has **Step 4:
|
||||
PASS | stable task 24 has **Step 5:
|
||||
PASS | stable task 24 has commit
|
||||
PASS | stable task 24 has expected result
|
||||
PASS | stable task 25 has **Files:**
|
||||
PASS | stable task 25 has **Interfaces:**
|
||||
PASS | stable task 25 has **Implementation requirements:**
|
||||
PASS | stable task 25 has **Step 1:
|
||||
PASS | stable task 25 has **Step 2:
|
||||
PASS | stable task 25 has **Step 3:
|
||||
PASS | stable task 25 has **Step 4:
|
||||
PASS | stable task 25 has **Step 5:
|
||||
PASS | stable task 25 has commit
|
||||
PASS | stable task 25 has expected result
|
||||
PASS | stable task 26 has **Files:**
|
||||
PASS | stable task 26 has **Interfaces:**
|
||||
PASS | stable task 26 has **Implementation requirements:**
|
||||
PASS | stable task 26 has **Step 1:
|
||||
PASS | stable task 26 has **Step 2:
|
||||
PASS | stable task 26 has **Step 3:
|
||||
PASS | stable task 26 has **Step 4:
|
||||
PASS | stable task 26 has **Step 5:
|
||||
PASS | stable task 26 has commit
|
||||
PASS | stable task 26 has expected result
|
||||
PASS | stable task 27 has **Files:**
|
||||
PASS | stable task 27 has **Interfaces:**
|
||||
PASS | stable task 27 has **Implementation requirements:**
|
||||
PASS | stable task 27 has **Step 1:
|
||||
PASS | stable task 27 has **Step 2:
|
||||
PASS | stable task 27 has **Step 3:
|
||||
PASS | stable task 27 has **Step 4:
|
||||
PASS | stable task 27 has **Step 5:
|
||||
PASS | stable task 27 has commit
|
||||
PASS | stable task 27 has expected result
|
||||
PASS | stable task 28 has **Files:**
|
||||
PASS | stable task 28 has **Interfaces:**
|
||||
PASS | stable task 28 has **Implementation requirements:**
|
||||
PASS | stable task 28 has **Step 1:
|
||||
PASS | stable task 28 has **Step 2:
|
||||
PASS | stable task 28 has **Step 3:
|
||||
PASS | stable task 28 has **Step 4:
|
||||
PASS | stable task 28 has **Step 5:
|
||||
PASS | stable task 28 has commit
|
||||
PASS | stable task 28 has expected result
|
||||
PASS | stable task 29 has **Files:**
|
||||
PASS | stable task 29 has **Interfaces:**
|
||||
PASS | stable task 29 has **Implementation requirements:**
|
||||
PASS | stable task 29 has **Step 1:
|
||||
PASS | stable task 29 has **Step 2:
|
||||
PASS | stable task 29 has **Step 3:
|
||||
PASS | stable task 29 has **Step 4:
|
||||
PASS | stable task 29 has **Step 5:
|
||||
PASS | stable task 29 has commit
|
||||
PASS | stable task 29 has expected result
|
||||
PASS | stable task 30 has **Files:**
|
||||
PASS | stable task 30 has **Interfaces:**
|
||||
PASS | stable task 30 has **Implementation requirements:**
|
||||
PASS | stable task 30 has **Step 1:
|
||||
PASS | stable task 30 has **Step 2:
|
||||
PASS | stable task 30 has **Step 3:
|
||||
PASS | stable task 30 has **Step 4:
|
||||
PASS | stable task 30 has **Step 5:
|
||||
PASS | stable task 30 has commit
|
||||
PASS | stable task 30 has expected result
|
||||
PASS | stable task 31 has **Files:**
|
||||
PASS | stable task 31 has **Interfaces:**
|
||||
PASS | stable task 31 has **Implementation requirements:**
|
||||
PASS | stable task 31 has **Step 1:
|
||||
PASS | stable task 31 has **Step 2:
|
||||
PASS | stable task 31 has **Step 3:
|
||||
PASS | stable task 31 has **Step 4:
|
||||
PASS | stable task 31 has **Step 5:
|
||||
PASS | stable task 31 has commit
|
||||
PASS | stable task 31 has expected result
|
||||
PASS | stable task 32 has **Files:**
|
||||
PASS | stable task 32 has **Interfaces:**
|
||||
PASS | stable task 32 has **Implementation requirements:**
|
||||
PASS | stable task 32 has **Step 1:
|
||||
PASS | stable task 32 has **Step 2:
|
||||
PASS | stable task 32 has **Step 3:
|
||||
PASS | stable task 32 has **Step 4:
|
||||
PASS | stable task 32 has **Step 5:
|
||||
PASS | stable task 32 has commit
|
||||
PASS | stable task 32 has expected result
|
||||
PASS | stable task 33 has **Files:**
|
||||
PASS | stable task 33 has **Interfaces:**
|
||||
PASS | stable task 33 has **Implementation requirements:**
|
||||
PASS | stable task 33 has **Step 1:
|
||||
PASS | stable task 33 has **Step 2:
|
||||
PASS | stable task 33 has **Step 3:
|
||||
PASS | stable task 33 has **Step 4:
|
||||
PASS | stable task 33 has **Step 5:
|
||||
PASS | stable task 33 has commit
|
||||
PASS | stable task 33 has expected result
|
||||
PASS | stable task 34 has **Files:**
|
||||
PASS | stable task 34 has **Interfaces:**
|
||||
PASS | stable task 34 has **Implementation requirements:**
|
||||
PASS | stable task 34 has **Step 1:
|
||||
PASS | stable task 34 has **Step 2:
|
||||
PASS | stable task 34 has **Step 3:
|
||||
PASS | stable task 34 has **Step 4:
|
||||
PASS | stable task 34 has **Step 5:
|
||||
PASS | stable task 34 has commit
|
||||
PASS | stable task 34 has expected result
|
||||
PASS | stable task 35 has **Files:**
|
||||
PASS | stable task 35 has **Interfaces:**
|
||||
PASS | stable task 35 has **Implementation requirements:**
|
||||
PASS | stable task 35 has **Step 1:
|
||||
PASS | stable task 35 has **Step 2:
|
||||
PASS | stable task 35 has **Step 3:
|
||||
PASS | stable task 35 has **Step 4:
|
||||
PASS | stable task 35 has **Step 5:
|
||||
PASS | stable task 35 has commit
|
||||
PASS | stable task 35 has expected result
|
||||
PASS | stable task 36 has **Files:**
|
||||
PASS | stable task 36 has **Interfaces:**
|
||||
PASS | stable task 36 has **Implementation requirements:**
|
||||
PASS | stable task 36 has **Step 1:
|
||||
PASS | stable task 36 has **Step 2:
|
||||
PASS | stable task 36 has **Step 3:
|
||||
PASS | stable task 36 has **Step 4:
|
||||
PASS | stable task 36 has **Step 5:
|
||||
PASS | stable task 36 has commit
|
||||
PASS | stable task 36 has expected result
|
||||
PASS | stable task 37 has **Files:**
|
||||
PASS | stable task 37 has **Interfaces:**
|
||||
PASS | stable task 37 has **Implementation requirements:**
|
||||
PASS | stable task 37 has **Step 1:
|
||||
PASS | stable task 37 has **Step 2:
|
||||
PASS | stable task 37 has **Step 3:
|
||||
PASS | stable task 37 has **Step 4:
|
||||
PASS | stable task 37 has **Step 5:
|
||||
PASS | stable task 37 has commit
|
||||
PASS | stable task 37 has expected result
|
||||
PASS | stable task 38 has **Files:**
|
||||
PASS | stable task 38 has **Interfaces:**
|
||||
PASS | stable task 38 has **Implementation requirements:**
|
||||
PASS | stable task 38 has **Step 1:
|
||||
PASS | stable task 38 has **Step 2:
|
||||
PASS | stable task 38 has **Step 3:
|
||||
PASS | stable task 38 has **Step 4:
|
||||
PASS | stable task 38 has **Step 5:
|
||||
PASS | stable task 38 has commit
|
||||
PASS | stable task 38 has expected result
|
||||
PASS | stable task 39 has **Files:**
|
||||
PASS | stable task 39 has **Interfaces:**
|
||||
PASS | stable task 39 has **Implementation requirements:**
|
||||
PASS | stable task 39 has **Step 1:
|
||||
PASS | stable task 39 has **Step 2:
|
||||
PASS | stable task 39 has **Step 3:
|
||||
PASS | stable task 39 has **Step 4:
|
||||
PASS | stable task 39 has **Step 5:
|
||||
PASS | stable task 39 has commit
|
||||
PASS | stable task 39 has expected result
|
||||
PASS | stable task 40 has **Files:**
|
||||
PASS | stable task 40 has **Interfaces:**
|
||||
PASS | stable task 40 has **Implementation requirements:**
|
||||
PASS | stable task 40 has **Step 1:
|
||||
PASS | stable task 40 has **Step 2:
|
||||
PASS | stable task 40 has **Step 3:
|
||||
PASS | stable task 40 has **Step 4:
|
||||
PASS | stable task 40 has **Step 5:
|
||||
PASS | stable task 40 has commit
|
||||
PASS | stable task 40 has expected result
|
||||
PASS | stable task 41 has **Files:**
|
||||
PASS | stable task 41 has **Interfaces:**
|
||||
PASS | stable task 41 has **Implementation requirements:**
|
||||
PASS | stable task 41 has **Step 1:
|
||||
PASS | stable task 41 has **Step 2:
|
||||
PASS | stable task 41 has **Step 3:
|
||||
PASS | stable task 41 has **Step 4:
|
||||
PASS | stable task 41 has **Step 5:
|
||||
PASS | stable task 41 has commit
|
||||
PASS | stable task 41 has expected result
|
||||
PASS | stable task 42 has **Files:**
|
||||
PASS | stable task 42 has **Interfaces:**
|
||||
PASS | stable task 42 has **Implementation requirements:**
|
||||
PASS | stable task 42 has **Step 1:
|
||||
PASS | stable task 42 has **Step 2:
|
||||
PASS | stable task 42 has **Step 3:
|
||||
PASS | stable task 42 has **Step 4:
|
||||
PASS | stable task 42 has **Step 5:
|
||||
PASS | stable task 42 has commit
|
||||
PASS | stable task 42 has expected result
|
||||
PASS | stable task 43 has **Files:**
|
||||
PASS | stable task 43 has **Interfaces:**
|
||||
PASS | stable task 43 has **Implementation requirements:**
|
||||
PASS | stable task 43 has **Step 1:
|
||||
PASS | stable task 43 has **Step 2:
|
||||
PASS | stable task 43 has **Step 3:
|
||||
PASS | stable task 43 has **Step 4:
|
||||
PASS | stable task 43 has **Step 5:
|
||||
PASS | stable task 43 has commit
|
||||
PASS | stable task 43 has expected result
|
||||
PASS | stable task 44 has **Files:**
|
||||
PASS | stable task 44 has **Interfaces:**
|
||||
PASS | stable task 44 has **Implementation requirements:**
|
||||
PASS | stable task 44 has **Step 1:
|
||||
PASS | stable task 44 has **Step 2:
|
||||
PASS | stable task 44 has **Step 3:
|
||||
PASS | stable task 44 has **Step 4:
|
||||
PASS | stable task 44 has **Step 5:
|
||||
PASS | stable task 44 has commit
|
||||
PASS | stable task 44 has expected result
|
||||
PASS | stable task 45 has **Files:**
|
||||
PASS | stable task 45 has **Interfaces:**
|
||||
PASS | stable task 45 has **Implementation requirements:**
|
||||
PASS | stable task 45 has **Step 1:
|
||||
PASS | stable task 45 has **Step 2:
|
||||
PASS | stable task 45 has **Step 3:
|
||||
PASS | stable task 45 has **Step 4:
|
||||
PASS | stable task 45 has **Step 5:
|
||||
PASS | stable task 45 has commit
|
||||
PASS | stable task 45 has expected result
|
||||
PASS | stable task 46 has **Files:**
|
||||
PASS | stable task 46 has **Interfaces:**
|
||||
PASS | stable task 46 has **Implementation requirements:**
|
||||
PASS | stable task 46 has **Step 1:
|
||||
PASS | stable task 46 has **Step 2:
|
||||
PASS | stable task 46 has **Step 3:
|
||||
PASS | stable task 46 has **Step 4:
|
||||
PASS | stable task 46 has **Step 5:
|
||||
PASS | stable task 46 has commit
|
||||
PASS | stable task 46 has expected result
|
||||
PASS | stable task 47 has **Files:**
|
||||
PASS | stable task 47 has **Interfaces:**
|
||||
PASS | stable task 47 has **Implementation requirements:**
|
||||
PASS | stable task 47 has **Step 1:
|
||||
PASS | stable task 47 has **Step 2:
|
||||
PASS | stable task 47 has **Step 3:
|
||||
PASS | stable task 47 has **Step 4:
|
||||
PASS | stable task 47 has **Step 5:
|
||||
PASS | stable task 47 has commit
|
||||
PASS | stable task 47 has expected result
|
||||
PASS | stable task 48 has **Files:**
|
||||
PASS | stable task 48 has **Interfaces:**
|
||||
PASS | stable task 48 has **Implementation requirements:**
|
||||
PASS | stable task 48 has **Step 1:
|
||||
PASS | stable task 48 has **Step 2:
|
||||
PASS | stable task 48 has **Step 3:
|
||||
PASS | stable task 48 has **Step 4:
|
||||
PASS | stable task 48 has **Step 5:
|
||||
PASS | stable task 48 has commit
|
||||
PASS | stable task 48 has expected result
|
||||
PASS | stable task 49 has **Files:**
|
||||
PASS | stable task 49 has **Interfaces:**
|
||||
PASS | stable task 49 has **Implementation requirements:**
|
||||
PASS | stable task 49 has **Step 1:
|
||||
PASS | stable task 49 has **Step 2:
|
||||
PASS | stable task 49 has **Step 3:
|
||||
PASS | stable task 49 has **Step 4:
|
||||
PASS | stable task 49 has **Step 5:
|
||||
PASS | stable task 49 has commit
|
||||
PASS | stable task 49 has expected result
|
||||
PASS | stable task 50 has **Files:**
|
||||
PASS | stable task 50 has **Interfaces:**
|
||||
PASS | stable task 50 has **Implementation requirements:**
|
||||
PASS | stable task 50 has **Step 1:
|
||||
PASS | stable task 50 has **Step 2:
|
||||
PASS | stable task 50 has **Step 3:
|
||||
PASS | stable task 50 has **Step 4:
|
||||
PASS | stable task 50 has **Step 5:
|
||||
PASS | stable task 50 has commit
|
||||
PASS | stable task 50 has expected result
|
||||
PASS | advanced task count | 15
|
||||
PASS | advanced task sequence | [1, 2, 3]...[13, 14, 15]
|
||||
PASS | advanced task 1 has **Files:**
|
||||
PASS | advanced task 1 has **Interfaces:**
|
||||
PASS | advanced task 1 has **Implementation requirements:**
|
||||
PASS | advanced task 1 has **Step 1:
|
||||
PASS | advanced task 1 has **Step 2:
|
||||
PASS | advanced task 1 has **Step 3:
|
||||
PASS | advanced task 1 has **Step 4:
|
||||
PASS | advanced task 1 has **Step 5:
|
||||
PASS | advanced task 1 has commit
|
||||
PASS | advanced task 1 has expected result
|
||||
PASS | advanced task 2 has **Files:**
|
||||
PASS | advanced task 2 has **Interfaces:**
|
||||
PASS | advanced task 2 has **Implementation requirements:**
|
||||
PASS | advanced task 2 has **Step 1:
|
||||
PASS | advanced task 2 has **Step 2:
|
||||
PASS | advanced task 2 has **Step 3:
|
||||
PASS | advanced task 2 has **Step 4:
|
||||
PASS | advanced task 2 has **Step 5:
|
||||
PASS | advanced task 2 has commit
|
||||
PASS | advanced task 2 has expected result
|
||||
PASS | advanced task 3 has **Files:**
|
||||
PASS | advanced task 3 has **Interfaces:**
|
||||
PASS | advanced task 3 has **Implementation requirements:**
|
||||
PASS | advanced task 3 has **Step 1:
|
||||
PASS | advanced task 3 has **Step 2:
|
||||
PASS | advanced task 3 has **Step 3:
|
||||
PASS | advanced task 3 has **Step 4:
|
||||
PASS | advanced task 3 has **Step 5:
|
||||
PASS | advanced task 3 has commit
|
||||
PASS | advanced task 3 has expected result
|
||||
PASS | advanced task 4 has **Files:**
|
||||
PASS | advanced task 4 has **Interfaces:**
|
||||
PASS | advanced task 4 has **Implementation requirements:**
|
||||
PASS | advanced task 4 has **Step 1:
|
||||
PASS | advanced task 4 has **Step 2:
|
||||
PASS | advanced task 4 has **Step 3:
|
||||
PASS | advanced task 4 has **Step 4:
|
||||
PASS | advanced task 4 has **Step 5:
|
||||
PASS | advanced task 4 has commit
|
||||
PASS | advanced task 4 has expected result
|
||||
PASS | advanced task 5 has **Files:**
|
||||
PASS | advanced task 5 has **Interfaces:**
|
||||
PASS | advanced task 5 has **Implementation requirements:**
|
||||
PASS | advanced task 5 has **Step 1:
|
||||
PASS | advanced task 5 has **Step 2:
|
||||
PASS | advanced task 5 has **Step 3:
|
||||
PASS | advanced task 5 has **Step 4:
|
||||
PASS | advanced task 5 has **Step 5:
|
||||
PASS | advanced task 5 has commit
|
||||
PASS | advanced task 5 has expected result
|
||||
PASS | advanced task 6 has **Files:**
|
||||
PASS | advanced task 6 has **Interfaces:**
|
||||
PASS | advanced task 6 has **Implementation requirements:**
|
||||
PASS | advanced task 6 has **Step 1:
|
||||
PASS | advanced task 6 has **Step 2:
|
||||
PASS | advanced task 6 has **Step 3:
|
||||
PASS | advanced task 6 has **Step 4:
|
||||
PASS | advanced task 6 has **Step 5:
|
||||
PASS | advanced task 6 has commit
|
||||
PASS | advanced task 6 has expected result
|
||||
PASS | advanced task 7 has **Files:**
|
||||
PASS | advanced task 7 has **Interfaces:**
|
||||
PASS | advanced task 7 has **Implementation requirements:**
|
||||
PASS | advanced task 7 has **Step 1:
|
||||
PASS | advanced task 7 has **Step 2:
|
||||
PASS | advanced task 7 has **Step 3:
|
||||
PASS | advanced task 7 has **Step 4:
|
||||
PASS | advanced task 7 has **Step 5:
|
||||
PASS | advanced task 7 has commit
|
||||
PASS | advanced task 7 has expected result
|
||||
PASS | advanced task 8 has **Files:**
|
||||
PASS | advanced task 8 has **Interfaces:**
|
||||
PASS | advanced task 8 has **Implementation requirements:**
|
||||
PASS | advanced task 8 has **Step 1:
|
||||
PASS | advanced task 8 has **Step 2:
|
||||
PASS | advanced task 8 has **Step 3:
|
||||
PASS | advanced task 8 has **Step 4:
|
||||
PASS | advanced task 8 has **Step 5:
|
||||
PASS | advanced task 8 has commit
|
||||
PASS | advanced task 8 has expected result
|
||||
PASS | advanced task 9 has **Files:**
|
||||
PASS | advanced task 9 has **Interfaces:**
|
||||
PASS | advanced task 9 has **Implementation requirements:**
|
||||
PASS | advanced task 9 has **Step 1:
|
||||
PASS | advanced task 9 has **Step 2:
|
||||
PASS | advanced task 9 has **Step 3:
|
||||
PASS | advanced task 9 has **Step 4:
|
||||
PASS | advanced task 9 has **Step 5:
|
||||
PASS | advanced task 9 has commit
|
||||
PASS | advanced task 9 has expected result
|
||||
PASS | advanced task 10 has **Files:**
|
||||
PASS | advanced task 10 has **Interfaces:**
|
||||
PASS | advanced task 10 has **Implementation requirements:**
|
||||
PASS | advanced task 10 has **Step 1:
|
||||
PASS | advanced task 10 has **Step 2:
|
||||
PASS | advanced task 10 has **Step 3:
|
||||
PASS | advanced task 10 has **Step 4:
|
||||
PASS | advanced task 10 has **Step 5:
|
||||
PASS | advanced task 10 has commit
|
||||
PASS | advanced task 10 has expected result
|
||||
PASS | advanced task 11 has **Files:**
|
||||
PASS | advanced task 11 has **Interfaces:**
|
||||
PASS | advanced task 11 has **Implementation requirements:**
|
||||
PASS | advanced task 11 has **Step 1:
|
||||
PASS | advanced task 11 has **Step 2:
|
||||
PASS | advanced task 11 has **Step 3:
|
||||
PASS | advanced task 11 has **Step 4:
|
||||
PASS | advanced task 11 has **Step 5:
|
||||
PASS | advanced task 11 has commit
|
||||
PASS | advanced task 11 has expected result
|
||||
PASS | advanced task 12 has **Files:**
|
||||
PASS | advanced task 12 has **Interfaces:**
|
||||
PASS | advanced task 12 has **Implementation requirements:**
|
||||
PASS | advanced task 12 has **Step 1:
|
||||
PASS | advanced task 12 has **Step 2:
|
||||
PASS | advanced task 12 has **Step 3:
|
||||
PASS | advanced task 12 has **Step 4:
|
||||
PASS | advanced task 12 has **Step 5:
|
||||
PASS | advanced task 12 has commit
|
||||
PASS | advanced task 12 has expected result
|
||||
PASS | advanced task 13 has **Files:**
|
||||
PASS | advanced task 13 has **Interfaces:**
|
||||
PASS | advanced task 13 has **Implementation requirements:**
|
||||
PASS | advanced task 13 has **Step 1:
|
||||
PASS | advanced task 13 has **Step 2:
|
||||
PASS | advanced task 13 has **Step 3:
|
||||
PASS | advanced task 13 has **Step 4:
|
||||
PASS | advanced task 13 has **Step 5:
|
||||
PASS | advanced task 13 has commit
|
||||
PASS | advanced task 13 has expected result
|
||||
PASS | advanced task 14 has **Files:**
|
||||
PASS | advanced task 14 has **Interfaces:**
|
||||
PASS | advanced task 14 has **Implementation requirements:**
|
||||
PASS | advanced task 14 has **Step 1:
|
||||
PASS | advanced task 14 has **Step 2:
|
||||
PASS | advanced task 14 has **Step 3:
|
||||
PASS | advanced task 14 has **Step 4:
|
||||
PASS | advanced task 14 has **Step 5:
|
||||
PASS | advanced task 14 has commit
|
||||
PASS | advanced task 14 has expected result
|
||||
PASS | advanced task 15 has **Files:**
|
||||
PASS | advanced task 15 has **Interfaces:**
|
||||
PASS | advanced task 15 has **Implementation requirements:**
|
||||
PASS | advanced task 15 has **Step 1:
|
||||
PASS | advanced task 15 has **Step 2:
|
||||
PASS | advanced task 15 has **Step 3:
|
||||
PASS | advanced task 15 has **Step 4:
|
||||
PASS | advanced task 15 has **Step 5:
|
||||
PASS | advanced task 15 has commit
|
||||
PASS | advanced task 15 has expected result
|
||||
PASS | 2026-08-11-mongodb-document-persistence-platform-design.md code fences balanced | 132
|
||||
PASS | 2026-08-11-mongodb-document-persistence-platform-design.md no TODO markers
|
||||
PASS | 2026-08-11-mongodb-document-persistence-platform-design.md no wildcard create paths
|
||||
PASS | 2026-08-11-mongodb-document-persistence-platform-implementation-plan.md code fences balanced | 504
|
||||
PASS | 2026-08-11-mongodb-document-persistence-platform-implementation-plan.md no TODO markers
|
||||
PASS | 2026-08-11-mongodb-document-persistence-platform-implementation-plan.md no wildcard create paths
|
||||
PASS | 2026-08-11-mongodb-advanced-capabilities-expansion-plan.md code fences balanced | 150
|
||||
PASS | 2026-08-11-mongodb-advanced-capabilities-expansion-plan.md no TODO markers
|
||||
PASS | 2026-08-11-mongodb-advanced-capabilities-expansion-plan.md no wildcard create paths
|
||||
PASS | stable no duplicate create paths
|
||||
PASS | advanced no duplicate create paths
|
||||
PASS | stable and advanced create paths do not collide
|
||||
PASS | no real generic repository declaration
|
||||
PASS | no public arbitrary run command
|
||||
PASS | stable starter excludes advanced
|
||||
PASS | unknown commit body retry forbidden
|
||||
PASS | mongo seven and eight matrix
|
||||
PASS | advanced actual topology gate
|
||||
SUMMARY | total=687 pass=687 fail=0
|
||||
```
|
||||
|
||||
## 검증 한계
|
||||
|
||||
현재 검증은 설계서와 구현 계획서의 정적 구조·일관성 검사다. 실제 Backend Skeleton 저장소가 제공되지 않았으므로 Gradle configuration, compile, Spring Context, MongoDB Replica Set, failover, sharded cluster, Atlas/KMS, performance와 Git commit은 실행하지 않았다.
|
||||
@@ -0,0 +1,65 @@
|
||||
> **보존 안내** — 이 파일은 저장소 루트 `notification-superpowers-package/` 에 있던 납품 패키지의 README다.
|
||||
> 2026-08-15 문서 정리에서 설계서·계획서는 `docs/superpowers/specs/` 와 `docs/superpowers/plans/` 로 통합했고,
|
||||
> 실행 불가 상태였던 `validate_notification_docs.py` 와 `MANIFEST.sha256` 은 제거했다.
|
||||
> 아래 본문은 납품 시점의 기록이므로 제거된 파일을 가리키는 문장은 더 이상 유효하지 않다.
|
||||
|
||||
# Notification Delivery Platform Superpowers Package
|
||||
|
||||
이 패키지는 Backend Skeleton의 `notification` 기술 모듈을 구현하기 위한 설계서와 TDD 구현 계획서다.
|
||||
|
||||
## 파일
|
||||
|
||||
```text
|
||||
docs/superpowers/specs/2026-08-10-notification-platform-design.md
|
||||
docs/superpowers/plans/2026-08-10-notification-platform-implementation-plan.md
|
||||
VALIDATION.md
|
||||
validate_notification_docs.py
|
||||
MANIFEST.sha256
|
||||
```
|
||||
|
||||
## 핵심 계약
|
||||
|
||||
```text
|
||||
NotificationRequest
|
||||
→ RecipientDelivery
|
||||
→ DeliveryAttempt
|
||||
→ ProviderEvent append-only ledger
|
||||
→ channel-specific projection
|
||||
→ SubmissionOutcome / DeliveryOutcome / EvidenceLevel
|
||||
```
|
||||
|
||||
- `submit()` 성공은 durable acceptance만 뜻한다.
|
||||
- Provider acceptance와 delivery/read evidence를 분리한다.
|
||||
- 결과를 확정할 수 없으면 `AMBIGUOUS`로 보존한다.
|
||||
- ambiguous attempt의 자동 retry와 cross-channel fallback은 기본 차단한다.
|
||||
- FCM은 FID를 primary target으로, registration token을 legacy compatibility로 둔다.
|
||||
- Callback은 signature 검증 후 원장에 append하고 중복·역순·누락을 처리한다.
|
||||
- Contact Point는 AES-256-GCM 암호화와 HMAC-SHA-256 equality fingerprint를 사용한다.
|
||||
|
||||
## 구현 기준 가정
|
||||
|
||||
실제 Backend Skeleton 저장소가 입력되지 않았기 때문에 다음 가정을 문서에 명시했다.
|
||||
|
||||
```text
|
||||
Java 21
|
||||
Gradle Kotlin DSL
|
||||
Spring Framework 6.2 common line + Spring 7.0 compatibility job
|
||||
PostgreSQL 16
|
||||
JPA + Flyway
|
||||
root package: io.backend.skeleton.notification
|
||||
module root: modules/notification
|
||||
```
|
||||
|
||||
실제 저장소에서는 dependency catalog와 package/file path를 기존 규칙에 맞게 매핑하되 공개 계약과 신뢰성 의미론은 유지한다.
|
||||
|
||||
## 실행
|
||||
|
||||
1. 설계서를 검토한다.
|
||||
2. 계획서 Task 1부터 순서대로 실행한다.
|
||||
3. 각 Task에서 failing test → red 확인 → 최소 구현 → green 확인 → commit 순서를 지킨다.
|
||||
4. Task마다 specification review와 code-quality review를 분리한다.
|
||||
5. 마지막 release gate에서 contract, chaos, security, performance, compatibility job을 모두 실행한다.
|
||||
|
||||
## 검증 범위
|
||||
|
||||
`VALIDATION.md`는 문서 구조, Task 연속성, 파일 경로 중복, 미확정 표현, 핵심 계약, ZIP CRC를 검증한 결과다. 실제 Gradle compile과 Provider integration은 Backend Skeleton 저장소에서 계획서의 명령을 실행해야 한다.
|
||||
@@ -0,0 +1,590 @@
|
||||
# Notification Superpowers 문서 정적 검증
|
||||
|
||||
- 결과: **PASS**
|
||||
- 실행 검사: **567개**
|
||||
- 통과: **567개**
|
||||
- 실패: **0개**
|
||||
- 설계서: **4,770행**
|
||||
- 구현 계획서: **5,325행**
|
||||
- 구현 Task: **50개**
|
||||
- Create 경로: **322개**
|
||||
- 설계 SHA-256: `fe7b57c6573ef7305033fe9402333d3c10f7a03ccf421dce5f353e2616ac8677`
|
||||
- 계획 SHA-256: `176b0c86e11e6d4d8440285dd723e5555616ff9a69a7a9419250c2ce2b67f565`
|
||||
|
||||
## 검사 결과
|
||||
|
||||
| 검사 | 결과 | 상세 |
|
||||
|---|---:|---|
|
||||
| 설계서 존재 | PASS | /mnt/data/notification-platform-design.md |
|
||||
| 구현 계획서 존재 | PASS | /mnt/data/notification-platform-implementation-plan.md |
|
||||
| 설계서 최소 상세도 | PASS | 4,770 lines |
|
||||
| 계획서 최소 상세도 | PASS | 5,325 lines |
|
||||
| 설계서 코드 fence 균형 | PASS | 482 |
|
||||
| 계획서 코드 fence 균형 | PASS | 308 |
|
||||
| 설계 핵심 계약: NotificationRequest | PASS | |
|
||||
| 설계 핵심 계약: RecipientDelivery | PASS | |
|
||||
| 설계 핵심 계약: DeliveryAttempt | PASS | |
|
||||
| 설계 핵심 계약: ProviderEvent | PASS | |
|
||||
| 설계 핵심 계약: EvidenceLevel | PASS | |
|
||||
| 설계 핵심 계약: SubmissionOutcome | PASS | |
|
||||
| 설계 핵심 계약: DeliveryOutcome | PASS | |
|
||||
| 설계 핵심 계약: AMBIGUOUS | PASS | |
|
||||
| 설계 핵심 계약: append-only | PASS | |
|
||||
| 설계 핵심 계약: FCM_FID | PASS | |
|
||||
| 설계 핵심 계약: FCM_REGISTRATION_TOKEN_LEGACY | PASS | |
|
||||
| 설계 핵심 계약: AES-256-GCM | PASS | |
|
||||
| 설계 핵심 계약: HMAC-SHA-256 | PASS | |
|
||||
| 설계 핵심 계약: FOR UPDATE SKIP LOCKED | PASS | |
|
||||
| 설계 핵심 계약: SMTP Adapter | PASS | |
|
||||
| 설계 핵심 계약: Amazon SES Adapter | PASS | |
|
||||
| 설계 핵심 계약: Twilio Adapter | PASS | |
|
||||
| 설계 핵심 계약: FCM Adapter | PASS | |
|
||||
| 설계 핵심 계약: APNs Adapter | PASS | |
|
||||
| 설계 핵심 계약: Web Push Adapter | PASS | |
|
||||
| 설계 핵심 계약: In-App Inbox | PASS | |
|
||||
| 설계 핵심 계약: Reconciliation | PASS | |
|
||||
| 설계 핵심 계약: N4 Admin Plane | PASS | |
|
||||
| 설계 핵심 계약: 비지원 범위 | PASS | |
|
||||
| 설계 핵심 계약: 완료 정의 | PASS | |
|
||||
| exactlyOnce 단순 옵션 금지 명시 | PASS | |
|
||||
| 금지 보장 부재: guaranteedDelivery=true | PASS | |
|
||||
| 금지 보장 부재: APNs HTTP 200 = DELIVERED | PASS | |
|
||||
| 금지 보장 부재: FCM send success = DEVICE_DELIVERED | PASS | |
|
||||
| Task 1~50 연속성 | PASS | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50] |
|
||||
| Task chunk 수 | PASS | 50 |
|
||||
| Task 1 필수 항목: **Files:** | PASS | |
|
||||
| Task 1 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 1 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 1 필수 항목: **Step 1: | PASS | |
|
||||
| Task 1 필수 항목: **Step 2: | PASS | |
|
||||
| Task 1 필수 항목: **Step 3: | PASS | |
|
||||
| Task 1 필수 항목: **Step 4: | PASS | |
|
||||
| Task 1 필수 항목: **Step 5: | PASS | |
|
||||
| Task 1 필수 항목: Expected: | PASS | |
|
||||
| Task 1 필수 항목: git commit -m | PASS | |
|
||||
| Task 2 필수 항목: **Files:** | PASS | |
|
||||
| Task 2 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 2 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 2 필수 항목: **Step 1: | PASS | |
|
||||
| Task 2 필수 항목: **Step 2: | PASS | |
|
||||
| Task 2 필수 항목: **Step 3: | PASS | |
|
||||
| Task 2 필수 항목: **Step 4: | PASS | |
|
||||
| Task 2 필수 항목: **Step 5: | PASS | |
|
||||
| Task 2 필수 항목: Expected: | PASS | |
|
||||
| Task 2 필수 항목: git commit -m | PASS | |
|
||||
| Task 3 필수 항목: **Files:** | PASS | |
|
||||
| Task 3 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 3 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 3 필수 항목: **Step 1: | PASS | |
|
||||
| Task 3 필수 항목: **Step 2: | PASS | |
|
||||
| Task 3 필수 항목: **Step 3: | PASS | |
|
||||
| Task 3 필수 항목: **Step 4: | PASS | |
|
||||
| Task 3 필수 항목: **Step 5: | PASS | |
|
||||
| Task 3 필수 항목: Expected: | PASS | |
|
||||
| Task 3 필수 항목: git commit -m | PASS | |
|
||||
| Task 4 필수 항목: **Files:** | PASS | |
|
||||
| Task 4 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 4 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 4 필수 항목: **Step 1: | PASS | |
|
||||
| Task 4 필수 항목: **Step 2: | PASS | |
|
||||
| Task 4 필수 항목: **Step 3: | PASS | |
|
||||
| Task 4 필수 항목: **Step 4: | PASS | |
|
||||
| Task 4 필수 항목: **Step 5: | PASS | |
|
||||
| Task 4 필수 항목: Expected: | PASS | |
|
||||
| Task 4 필수 항목: git commit -m | PASS | |
|
||||
| Task 5 필수 항목: **Files:** | PASS | |
|
||||
| Task 5 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 5 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 5 필수 항목: **Step 1: | PASS | |
|
||||
| Task 5 필수 항목: **Step 2: | PASS | |
|
||||
| Task 5 필수 항목: **Step 3: | PASS | |
|
||||
| Task 5 필수 항목: **Step 4: | PASS | |
|
||||
| Task 5 필수 항목: **Step 5: | PASS | |
|
||||
| Task 5 필수 항목: Expected: | PASS | |
|
||||
| Task 5 필수 항목: git commit -m | PASS | |
|
||||
| Task 6 필수 항목: **Files:** | PASS | |
|
||||
| Task 6 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 6 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 6 필수 항목: **Step 1: | PASS | |
|
||||
| Task 6 필수 항목: **Step 2: | PASS | |
|
||||
| Task 6 필수 항목: **Step 3: | PASS | |
|
||||
| Task 6 필수 항목: **Step 4: | PASS | |
|
||||
| Task 6 필수 항목: **Step 5: | PASS | |
|
||||
| Task 6 필수 항목: Expected: | PASS | |
|
||||
| Task 6 필수 항목: git commit -m | PASS | |
|
||||
| Task 7 필수 항목: **Files:** | PASS | |
|
||||
| Task 7 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 7 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 7 필수 항목: **Step 1: | PASS | |
|
||||
| Task 7 필수 항목: **Step 2: | PASS | |
|
||||
| Task 7 필수 항목: **Step 3: | PASS | |
|
||||
| Task 7 필수 항목: **Step 4: | PASS | |
|
||||
| Task 7 필수 항목: **Step 5: | PASS | |
|
||||
| Task 7 필수 항목: Expected: | PASS | |
|
||||
| Task 7 필수 항목: git commit -m | PASS | |
|
||||
| Task 8 필수 항목: **Files:** | PASS | |
|
||||
| Task 8 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 8 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 8 필수 항목: **Step 1: | PASS | |
|
||||
| Task 8 필수 항목: **Step 2: | PASS | |
|
||||
| Task 8 필수 항목: **Step 3: | PASS | |
|
||||
| Task 8 필수 항목: **Step 4: | PASS | |
|
||||
| Task 8 필수 항목: **Step 5: | PASS | |
|
||||
| Task 8 필수 항목: Expected: | PASS | |
|
||||
| Task 8 필수 항목: git commit -m | PASS | |
|
||||
| Task 9 필수 항목: **Files:** | PASS | |
|
||||
| Task 9 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 9 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 9 필수 항목: **Step 1: | PASS | |
|
||||
| Task 9 필수 항목: **Step 2: | PASS | |
|
||||
| Task 9 필수 항목: **Step 3: | PASS | |
|
||||
| Task 9 필수 항목: **Step 4: | PASS | |
|
||||
| Task 9 필수 항목: **Step 5: | PASS | |
|
||||
| Task 9 필수 항목: Expected: | PASS | |
|
||||
| Task 9 필수 항목: git commit -m | PASS | |
|
||||
| Task 10 필수 항목: **Files:** | PASS | |
|
||||
| Task 10 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 10 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 10 필수 항목: **Step 1: | PASS | |
|
||||
| Task 10 필수 항목: **Step 2: | PASS | |
|
||||
| Task 10 필수 항목: **Step 3: | PASS | |
|
||||
| Task 10 필수 항목: **Step 4: | PASS | |
|
||||
| Task 10 필수 항목: **Step 5: | PASS | |
|
||||
| Task 10 필수 항목: Expected: | PASS | |
|
||||
| Task 10 필수 항목: git commit -m | PASS | |
|
||||
| Task 11 필수 항목: **Files:** | PASS | |
|
||||
| Task 11 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 11 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 11 필수 항목: **Step 1: | PASS | |
|
||||
| Task 11 필수 항목: **Step 2: | PASS | |
|
||||
| Task 11 필수 항목: **Step 3: | PASS | |
|
||||
| Task 11 필수 항목: **Step 4: | PASS | |
|
||||
| Task 11 필수 항목: **Step 5: | PASS | |
|
||||
| Task 11 필수 항목: Expected: | PASS | |
|
||||
| Task 11 필수 항목: git commit -m | PASS | |
|
||||
| Task 12 필수 항목: **Files:** | PASS | |
|
||||
| Task 12 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 12 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 12 필수 항목: **Step 1: | PASS | |
|
||||
| Task 12 필수 항목: **Step 2: | PASS | |
|
||||
| Task 12 필수 항목: **Step 3: | PASS | |
|
||||
| Task 12 필수 항목: **Step 4: | PASS | |
|
||||
| Task 12 필수 항목: **Step 5: | PASS | |
|
||||
| Task 12 필수 항목: Expected: | PASS | |
|
||||
| Task 12 필수 항목: git commit -m | PASS | |
|
||||
| Task 13 필수 항목: **Files:** | PASS | |
|
||||
| Task 13 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 13 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 13 필수 항목: **Step 1: | PASS | |
|
||||
| Task 13 필수 항목: **Step 2: | PASS | |
|
||||
| Task 13 필수 항목: **Step 3: | PASS | |
|
||||
| Task 13 필수 항목: **Step 4: | PASS | |
|
||||
| Task 13 필수 항목: **Step 5: | PASS | |
|
||||
| Task 13 필수 항목: Expected: | PASS | |
|
||||
| Task 13 필수 항목: git commit -m | PASS | |
|
||||
| Task 14 필수 항목: **Files:** | PASS | |
|
||||
| Task 14 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 14 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 14 필수 항목: **Step 1: | PASS | |
|
||||
| Task 14 필수 항목: **Step 2: | PASS | |
|
||||
| Task 14 필수 항목: **Step 3: | PASS | |
|
||||
| Task 14 필수 항목: **Step 4: | PASS | |
|
||||
| Task 14 필수 항목: **Step 5: | PASS | |
|
||||
| Task 14 필수 항목: Expected: | PASS | |
|
||||
| Task 14 필수 항목: git commit -m | PASS | |
|
||||
| Task 15 필수 항목: **Files:** | PASS | |
|
||||
| Task 15 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 15 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 15 필수 항목: **Step 1: | PASS | |
|
||||
| Task 15 필수 항목: **Step 2: | PASS | |
|
||||
| Task 15 필수 항목: **Step 3: | PASS | |
|
||||
| Task 15 필수 항목: **Step 4: | PASS | |
|
||||
| Task 15 필수 항목: **Step 5: | PASS | |
|
||||
| Task 15 필수 항목: Expected: | PASS | |
|
||||
| Task 15 필수 항목: git commit -m | PASS | |
|
||||
| Task 16 필수 항목: **Files:** | PASS | |
|
||||
| Task 16 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 16 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 16 필수 항목: **Step 1: | PASS | |
|
||||
| Task 16 필수 항목: **Step 2: | PASS | |
|
||||
| Task 16 필수 항목: **Step 3: | PASS | |
|
||||
| Task 16 필수 항목: **Step 4: | PASS | |
|
||||
| Task 16 필수 항목: **Step 5: | PASS | |
|
||||
| Task 16 필수 항목: Expected: | PASS | |
|
||||
| Task 16 필수 항목: git commit -m | PASS | |
|
||||
| Task 17 필수 항목: **Files:** | PASS | |
|
||||
| Task 17 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 17 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 17 필수 항목: **Step 1: | PASS | |
|
||||
| Task 17 필수 항목: **Step 2: | PASS | |
|
||||
| Task 17 필수 항목: **Step 3: | PASS | |
|
||||
| Task 17 필수 항목: **Step 4: | PASS | |
|
||||
| Task 17 필수 항목: **Step 5: | PASS | |
|
||||
| Task 17 필수 항목: Expected: | PASS | |
|
||||
| Task 17 필수 항목: git commit -m | PASS | |
|
||||
| Task 18 필수 항목: **Files:** | PASS | |
|
||||
| Task 18 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 18 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 18 필수 항목: **Step 1: | PASS | |
|
||||
| Task 18 필수 항목: **Step 2: | PASS | |
|
||||
| Task 18 필수 항목: **Step 3: | PASS | |
|
||||
| Task 18 필수 항목: **Step 4: | PASS | |
|
||||
| Task 18 필수 항목: **Step 5: | PASS | |
|
||||
| Task 18 필수 항목: Expected: | PASS | |
|
||||
| Task 18 필수 항목: git commit -m | PASS | |
|
||||
| Task 19 필수 항목: **Files:** | PASS | |
|
||||
| Task 19 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 19 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 19 필수 항목: **Step 1: | PASS | |
|
||||
| Task 19 필수 항목: **Step 2: | PASS | |
|
||||
| Task 19 필수 항목: **Step 3: | PASS | |
|
||||
| Task 19 필수 항목: **Step 4: | PASS | |
|
||||
| Task 19 필수 항목: **Step 5: | PASS | |
|
||||
| Task 19 필수 항목: Expected: | PASS | |
|
||||
| Task 19 필수 항목: git commit -m | PASS | |
|
||||
| Task 20 필수 항목: **Files:** | PASS | |
|
||||
| Task 20 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 20 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 20 필수 항목: **Step 1: | PASS | |
|
||||
| Task 20 필수 항목: **Step 2: | PASS | |
|
||||
| Task 20 필수 항목: **Step 3: | PASS | |
|
||||
| Task 20 필수 항목: **Step 4: | PASS | |
|
||||
| Task 20 필수 항목: **Step 5: | PASS | |
|
||||
| Task 20 필수 항목: Expected: | PASS | |
|
||||
| Task 20 필수 항목: git commit -m | PASS | |
|
||||
| Task 21 필수 항목: **Files:** | PASS | |
|
||||
| Task 21 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 21 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 21 필수 항목: **Step 1: | PASS | |
|
||||
| Task 21 필수 항목: **Step 2: | PASS | |
|
||||
| Task 21 필수 항목: **Step 3: | PASS | |
|
||||
| Task 21 필수 항목: **Step 4: | PASS | |
|
||||
| Task 21 필수 항목: **Step 5: | PASS | |
|
||||
| Task 21 필수 항목: Expected: | PASS | |
|
||||
| Task 21 필수 항목: git commit -m | PASS | |
|
||||
| Task 22 필수 항목: **Files:** | PASS | |
|
||||
| Task 22 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 22 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 22 필수 항목: **Step 1: | PASS | |
|
||||
| Task 22 필수 항목: **Step 2: | PASS | |
|
||||
| Task 22 필수 항목: **Step 3: | PASS | |
|
||||
| Task 22 필수 항목: **Step 4: | PASS | |
|
||||
| Task 22 필수 항목: **Step 5: | PASS | |
|
||||
| Task 22 필수 항목: Expected: | PASS | |
|
||||
| Task 22 필수 항목: git commit -m | PASS | |
|
||||
| Task 23 필수 항목: **Files:** | PASS | |
|
||||
| Task 23 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 23 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 23 필수 항목: **Step 1: | PASS | |
|
||||
| Task 23 필수 항목: **Step 2: | PASS | |
|
||||
| Task 23 필수 항목: **Step 3: | PASS | |
|
||||
| Task 23 필수 항목: **Step 4: | PASS | |
|
||||
| Task 23 필수 항목: **Step 5: | PASS | |
|
||||
| Task 23 필수 항목: Expected: | PASS | |
|
||||
| Task 23 필수 항목: git commit -m | PASS | |
|
||||
| Task 24 필수 항목: **Files:** | PASS | |
|
||||
| Task 24 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 24 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 24 필수 항목: **Step 1: | PASS | |
|
||||
| Task 24 필수 항목: **Step 2: | PASS | |
|
||||
| Task 24 필수 항목: **Step 3: | PASS | |
|
||||
| Task 24 필수 항목: **Step 4: | PASS | |
|
||||
| Task 24 필수 항목: **Step 5: | PASS | |
|
||||
| Task 24 필수 항목: Expected: | PASS | |
|
||||
| Task 24 필수 항목: git commit -m | PASS | |
|
||||
| Task 25 필수 항목: **Files:** | PASS | |
|
||||
| Task 25 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 25 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 25 필수 항목: **Step 1: | PASS | |
|
||||
| Task 25 필수 항목: **Step 2: | PASS | |
|
||||
| Task 25 필수 항목: **Step 3: | PASS | |
|
||||
| Task 25 필수 항목: **Step 4: | PASS | |
|
||||
| Task 25 필수 항목: **Step 5: | PASS | |
|
||||
| Task 25 필수 항목: Expected: | PASS | |
|
||||
| Task 25 필수 항목: git commit -m | PASS | |
|
||||
| Task 26 필수 항목: **Files:** | PASS | |
|
||||
| Task 26 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 26 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 26 필수 항목: **Step 1: | PASS | |
|
||||
| Task 26 필수 항목: **Step 2: | PASS | |
|
||||
| Task 26 필수 항목: **Step 3: | PASS | |
|
||||
| Task 26 필수 항목: **Step 4: | PASS | |
|
||||
| Task 26 필수 항목: **Step 5: | PASS | |
|
||||
| Task 26 필수 항목: Expected: | PASS | |
|
||||
| Task 26 필수 항목: git commit -m | PASS | |
|
||||
| Task 27 필수 항목: **Files:** | PASS | |
|
||||
| Task 27 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 27 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 27 필수 항목: **Step 1: | PASS | |
|
||||
| Task 27 필수 항목: **Step 2: | PASS | |
|
||||
| Task 27 필수 항목: **Step 3: | PASS | |
|
||||
| Task 27 필수 항목: **Step 4: | PASS | |
|
||||
| Task 27 필수 항목: **Step 5: | PASS | |
|
||||
| Task 27 필수 항목: Expected: | PASS | |
|
||||
| Task 27 필수 항목: git commit -m | PASS | |
|
||||
| Task 28 필수 항목: **Files:** | PASS | |
|
||||
| Task 28 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 28 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 28 필수 항목: **Step 1: | PASS | |
|
||||
| Task 28 필수 항목: **Step 2: | PASS | |
|
||||
| Task 28 필수 항목: **Step 3: | PASS | |
|
||||
| Task 28 필수 항목: **Step 4: | PASS | |
|
||||
| Task 28 필수 항목: **Step 5: | PASS | |
|
||||
| Task 28 필수 항목: Expected: | PASS | |
|
||||
| Task 28 필수 항목: git commit -m | PASS | |
|
||||
| Task 29 필수 항목: **Files:** | PASS | |
|
||||
| Task 29 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 29 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 29 필수 항목: **Step 1: | PASS | |
|
||||
| Task 29 필수 항목: **Step 2: | PASS | |
|
||||
| Task 29 필수 항목: **Step 3: | PASS | |
|
||||
| Task 29 필수 항목: **Step 4: | PASS | |
|
||||
| Task 29 필수 항목: **Step 5: | PASS | |
|
||||
| Task 29 필수 항목: Expected: | PASS | |
|
||||
| Task 29 필수 항목: git commit -m | PASS | |
|
||||
| Task 30 필수 항목: **Files:** | PASS | |
|
||||
| Task 30 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 30 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 30 필수 항목: **Step 1: | PASS | |
|
||||
| Task 30 필수 항목: **Step 2: | PASS | |
|
||||
| Task 30 필수 항목: **Step 3: | PASS | |
|
||||
| Task 30 필수 항목: **Step 4: | PASS | |
|
||||
| Task 30 필수 항목: **Step 5: | PASS | |
|
||||
| Task 30 필수 항목: Expected: | PASS | |
|
||||
| Task 30 필수 항목: git commit -m | PASS | |
|
||||
| Task 31 필수 항목: **Files:** | PASS | |
|
||||
| Task 31 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 31 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 31 필수 항목: **Step 1: | PASS | |
|
||||
| Task 31 필수 항목: **Step 2: | PASS | |
|
||||
| Task 31 필수 항목: **Step 3: | PASS | |
|
||||
| Task 31 필수 항목: **Step 4: | PASS | |
|
||||
| Task 31 필수 항목: **Step 5: | PASS | |
|
||||
| Task 31 필수 항목: Expected: | PASS | |
|
||||
| Task 31 필수 항목: git commit -m | PASS | |
|
||||
| Task 32 필수 항목: **Files:** | PASS | |
|
||||
| Task 32 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 32 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 32 필수 항목: **Step 1: | PASS | |
|
||||
| Task 32 필수 항목: **Step 2: | PASS | |
|
||||
| Task 32 필수 항목: **Step 3: | PASS | |
|
||||
| Task 32 필수 항목: **Step 4: | PASS | |
|
||||
| Task 32 필수 항목: **Step 5: | PASS | |
|
||||
| Task 32 필수 항목: Expected: | PASS | |
|
||||
| Task 32 필수 항목: git commit -m | PASS | |
|
||||
| Task 33 필수 항목: **Files:** | PASS | |
|
||||
| Task 33 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 33 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 33 필수 항목: **Step 1: | PASS | |
|
||||
| Task 33 필수 항목: **Step 2: | PASS | |
|
||||
| Task 33 필수 항목: **Step 3: | PASS | |
|
||||
| Task 33 필수 항목: **Step 4: | PASS | |
|
||||
| Task 33 필수 항목: **Step 5: | PASS | |
|
||||
| Task 33 필수 항목: Expected: | PASS | |
|
||||
| Task 33 필수 항목: git commit -m | PASS | |
|
||||
| Task 34 필수 항목: **Files:** | PASS | |
|
||||
| Task 34 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 34 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 34 필수 항목: **Step 1: | PASS | |
|
||||
| Task 34 필수 항목: **Step 2: | PASS | |
|
||||
| Task 34 필수 항목: **Step 3: | PASS | |
|
||||
| Task 34 필수 항목: **Step 4: | PASS | |
|
||||
| Task 34 필수 항목: **Step 5: | PASS | |
|
||||
| Task 34 필수 항목: Expected: | PASS | |
|
||||
| Task 34 필수 항목: git commit -m | PASS | |
|
||||
| Task 35 필수 항목: **Files:** | PASS | |
|
||||
| Task 35 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 35 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 35 필수 항목: **Step 1: | PASS | |
|
||||
| Task 35 필수 항목: **Step 2: | PASS | |
|
||||
| Task 35 필수 항목: **Step 3: | PASS | |
|
||||
| Task 35 필수 항목: **Step 4: | PASS | |
|
||||
| Task 35 필수 항목: **Step 5: | PASS | |
|
||||
| Task 35 필수 항목: Expected: | PASS | |
|
||||
| Task 35 필수 항목: git commit -m | PASS | |
|
||||
| Task 36 필수 항목: **Files:** | PASS | |
|
||||
| Task 36 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 36 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 36 필수 항목: **Step 1: | PASS | |
|
||||
| Task 36 필수 항목: **Step 2: | PASS | |
|
||||
| Task 36 필수 항목: **Step 3: | PASS | |
|
||||
| Task 36 필수 항목: **Step 4: | PASS | |
|
||||
| Task 36 필수 항목: **Step 5: | PASS | |
|
||||
| Task 36 필수 항목: Expected: | PASS | |
|
||||
| Task 36 필수 항목: git commit -m | PASS | |
|
||||
| Task 37 필수 항목: **Files:** | PASS | |
|
||||
| Task 37 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 37 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 37 필수 항목: **Step 1: | PASS | |
|
||||
| Task 37 필수 항목: **Step 2: | PASS | |
|
||||
| Task 37 필수 항목: **Step 3: | PASS | |
|
||||
| Task 37 필수 항목: **Step 4: | PASS | |
|
||||
| Task 37 필수 항목: **Step 5: | PASS | |
|
||||
| Task 37 필수 항목: Expected: | PASS | |
|
||||
| Task 37 필수 항목: git commit -m | PASS | |
|
||||
| Task 38 필수 항목: **Files:** | PASS | |
|
||||
| Task 38 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 38 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 38 필수 항목: **Step 1: | PASS | |
|
||||
| Task 38 필수 항목: **Step 2: | PASS | |
|
||||
| Task 38 필수 항목: **Step 3: | PASS | |
|
||||
| Task 38 필수 항목: **Step 4: | PASS | |
|
||||
| Task 38 필수 항목: **Step 5: | PASS | |
|
||||
| Task 38 필수 항목: Expected: | PASS | |
|
||||
| Task 38 필수 항목: git commit -m | PASS | |
|
||||
| Task 39 필수 항목: **Files:** | PASS | |
|
||||
| Task 39 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 39 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 39 필수 항목: **Step 1: | PASS | |
|
||||
| Task 39 필수 항목: **Step 2: | PASS | |
|
||||
| Task 39 필수 항목: **Step 3: | PASS | |
|
||||
| Task 39 필수 항목: **Step 4: | PASS | |
|
||||
| Task 39 필수 항목: **Step 5: | PASS | |
|
||||
| Task 39 필수 항목: Expected: | PASS | |
|
||||
| Task 39 필수 항목: git commit -m | PASS | |
|
||||
| Task 40 필수 항목: **Files:** | PASS | |
|
||||
| Task 40 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 40 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 40 필수 항목: **Step 1: | PASS | |
|
||||
| Task 40 필수 항목: **Step 2: | PASS | |
|
||||
| Task 40 필수 항목: **Step 3: | PASS | |
|
||||
| Task 40 필수 항목: **Step 4: | PASS | |
|
||||
| Task 40 필수 항목: **Step 5: | PASS | |
|
||||
| Task 40 필수 항목: Expected: | PASS | |
|
||||
| Task 40 필수 항목: git commit -m | PASS | |
|
||||
| Task 41 필수 항목: **Files:** | PASS | |
|
||||
| Task 41 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 41 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 41 필수 항목: **Step 1: | PASS | |
|
||||
| Task 41 필수 항목: **Step 2: | PASS | |
|
||||
| Task 41 필수 항목: **Step 3: | PASS | |
|
||||
| Task 41 필수 항목: **Step 4: | PASS | |
|
||||
| Task 41 필수 항목: **Step 5: | PASS | |
|
||||
| Task 41 필수 항목: Expected: | PASS | |
|
||||
| Task 41 필수 항목: git commit -m | PASS | |
|
||||
| Task 42 필수 항목: **Files:** | PASS | |
|
||||
| Task 42 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 42 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 42 필수 항목: **Step 1: | PASS | |
|
||||
| Task 42 필수 항목: **Step 2: | PASS | |
|
||||
| Task 42 필수 항목: **Step 3: | PASS | |
|
||||
| Task 42 필수 항목: **Step 4: | PASS | |
|
||||
| Task 42 필수 항목: **Step 5: | PASS | |
|
||||
| Task 42 필수 항목: Expected: | PASS | |
|
||||
| Task 42 필수 항목: git commit -m | PASS | |
|
||||
| Task 43 필수 항목: **Files:** | PASS | |
|
||||
| Task 43 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 43 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 43 필수 항목: **Step 1: | PASS | |
|
||||
| Task 43 필수 항목: **Step 2: | PASS | |
|
||||
| Task 43 필수 항목: **Step 3: | PASS | |
|
||||
| Task 43 필수 항목: **Step 4: | PASS | |
|
||||
| Task 43 필수 항목: **Step 5: | PASS | |
|
||||
| Task 43 필수 항목: Expected: | PASS | |
|
||||
| Task 43 필수 항목: git commit -m | PASS | |
|
||||
| Task 44 필수 항목: **Files:** | PASS | |
|
||||
| Task 44 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 44 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 44 필수 항목: **Step 1: | PASS | |
|
||||
| Task 44 필수 항목: **Step 2: | PASS | |
|
||||
| Task 44 필수 항목: **Step 3: | PASS | |
|
||||
| Task 44 필수 항목: **Step 4: | PASS | |
|
||||
| Task 44 필수 항목: **Step 5: | PASS | |
|
||||
| Task 44 필수 항목: Expected: | PASS | |
|
||||
| Task 44 필수 항목: git commit -m | PASS | |
|
||||
| Task 45 필수 항목: **Files:** | PASS | |
|
||||
| Task 45 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 45 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 45 필수 항목: **Step 1: | PASS | |
|
||||
| Task 45 필수 항목: **Step 2: | PASS | |
|
||||
| Task 45 필수 항목: **Step 3: | PASS | |
|
||||
| Task 45 필수 항목: **Step 4: | PASS | |
|
||||
| Task 45 필수 항목: **Step 5: | PASS | |
|
||||
| Task 45 필수 항목: Expected: | PASS | |
|
||||
| Task 45 필수 항목: git commit -m | PASS | |
|
||||
| Task 46 필수 항목: **Files:** | PASS | |
|
||||
| Task 46 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 46 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 46 필수 항목: **Step 1: | PASS | |
|
||||
| Task 46 필수 항목: **Step 2: | PASS | |
|
||||
| Task 46 필수 항목: **Step 3: | PASS | |
|
||||
| Task 46 필수 항목: **Step 4: | PASS | |
|
||||
| Task 46 필수 항목: **Step 5: | PASS | |
|
||||
| Task 46 필수 항목: Expected: | PASS | |
|
||||
| Task 46 필수 항목: git commit -m | PASS | |
|
||||
| Task 47 필수 항목: **Files:** | PASS | |
|
||||
| Task 47 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 47 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 47 필수 항목: **Step 1: | PASS | |
|
||||
| Task 47 필수 항목: **Step 2: | PASS | |
|
||||
| Task 47 필수 항목: **Step 3: | PASS | |
|
||||
| Task 47 필수 항목: **Step 4: | PASS | |
|
||||
| Task 47 필수 항목: **Step 5: | PASS | |
|
||||
| Task 47 필수 항목: Expected: | PASS | |
|
||||
| Task 47 필수 항목: git commit -m | PASS | |
|
||||
| Task 48 필수 항목: **Files:** | PASS | |
|
||||
| Task 48 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 48 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 48 필수 항목: **Step 1: | PASS | |
|
||||
| Task 48 필수 항목: **Step 2: | PASS | |
|
||||
| Task 48 필수 항목: **Step 3: | PASS | |
|
||||
| Task 48 필수 항목: **Step 4: | PASS | |
|
||||
| Task 48 필수 항목: **Step 5: | PASS | |
|
||||
| Task 48 필수 항목: Expected: | PASS | |
|
||||
| Task 48 필수 항목: git commit -m | PASS | |
|
||||
| Task 49 필수 항목: **Files:** | PASS | |
|
||||
| Task 49 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 49 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 49 필수 항목: **Step 1: | PASS | |
|
||||
| Task 49 필수 항목: **Step 2: | PASS | |
|
||||
| Task 49 필수 항목: **Step 3: | PASS | |
|
||||
| Task 49 필수 항목: **Step 4: | PASS | |
|
||||
| Task 49 필수 항목: **Step 5: | PASS | |
|
||||
| Task 49 필수 항목: Expected: | PASS | |
|
||||
| Task 49 필수 항목: git commit -m | PASS | |
|
||||
| Task 50 필수 항목: **Files:** | PASS | |
|
||||
| Task 50 필수 항목: **Interfaces:** | PASS | |
|
||||
| Task 50 필수 항목: **Implementation requirements:** | PASS | |
|
||||
| Task 50 필수 항목: **Step 1: | PASS | |
|
||||
| Task 50 필수 항목: **Step 2: | PASS | |
|
||||
| Task 50 필수 항목: **Step 3: | PASS | |
|
||||
| Task 50 필수 항목: **Step 4: | PASS | |
|
||||
| Task 50 필수 항목: **Step 5: | PASS | |
|
||||
| Task 50 필수 항목: Expected: | PASS | |
|
||||
| Task 50 필수 항목: git commit -m | PASS | |
|
||||
| Create 경로 중복 없음 | PASS | |
|
||||
| Create 경로 충분성 | PASS | 322 |
|
||||
| 미확정 표현 없음: TODO | PASS | 0 |
|
||||
| 미확정 표현 없음: TBD | PASS | 0 |
|
||||
| 미확정 표현 없음: FIXME | PASS | 0 |
|
||||
| 미확정 표현 없음: fill in details | PASS | 0 |
|
||||
| 미확정 표현 없음: implement later | PASS | 0 |
|
||||
| 미확정 표현 없음: concrete assertion below | PASS | 0 |
|
||||
| 미확정 표현 없음: 유사 작업 참조 | PASS | 0 |
|
||||
| 계획 핵심 회귀 테스트: providerAcceptanceIsNotDelivery | PASS | |
|
||||
| 계획 핵심 회귀 테스트: concurrentSameRequestReturnsOneNotificationId | PASS | |
|
||||
| 계획 핵심 회귀 테스트: providerAcceptsThenResponseIsLostRecordsAmbiguousAndBlocksFallback | PASS | |
|
||||
| 계획 핵심 회귀 테스트: deliveredBeforeSentNeverDowngrades | PASS | |
|
||||
| 계획 핵심 회귀 테스트: fcmInstallationAndLegacyTokenAreDifferentTypes | PASS | |
|
||||
| 계획 핵심 회귀 테스트: http200IsProviderAcceptedNotDelivered | PASS | |
|
||||
| 계획 핵심 회귀 테스트: ttlHeaderIsRequiredAndAcceptanceIsNotDelivery | PASS | |
|
||||
| 계획 핵심 회귀 테스트: websocketFailureDoesNotRollbackInboxItem | PASS | |
|
||||
| 계획 핵심 회귀 테스트: metricTagsNeverContainHighCardinalityIdentifiers | PASS | |
|
||||
| 계획 핵심 회귀 테스트: acceptedThenResponseLossIsAmbiguousForEveryApplicableAdapter | PASS | |
|
||||
| 계획 핵심 회귀 테스트: notificationPerformanceTest | PASS | |
|
||||
| 설계·계획 날짜 일치 | PASS | |
|
||||
| Java 21 가정 명시 | PASS | |
|
||||
| 실제 저장소 부재 가정 명시 | PASS | |
|
||||
| Provider SDK 공개 금지 | PASS | |
|
||||
| Core async CompletionStage | PASS | |
|
||||
| FCM FID 우선 | PASS | |
|
||||
| Ambiguous fallback 금지 | PASS | |
|
||||
| ProviderEvent 원장 | PASS | |
|
||||
| ZIP CRC 무결성 | PASS | None |
|
||||
| ZIP 필수 파일 | PASS | [] |
|
||||
|
||||
## 검증 범위
|
||||
|
||||
- 이 검증은 Markdown 설계서와 구현 계획서의 구조·정합성·필수 계약·경로 중복·미확정 표현·패키지 CRC를 검사한다.
|
||||
- 실제 Backend Skeleton 저장소가 입력되지 않았으므로 Gradle compile, Provider sandbox, PostgreSQL integration, chaos, performance test 실행 결과는 포함하지 않는다.
|
||||
- 구현 시에는 계획의 각 Task가 지정한 red-green TDD 명령을 실제 저장소에서 실행해야 한다.
|
||||
@@ -0,0 +1,48 @@
|
||||
> **보존 안내** — 이 파일은 저장소 루트 `redis-superpowers-package/` 에 있던 납품 패키지의 README다.
|
||||
> 2026-08-15 문서 정리에서 설계서·계획서는 `docs/superpowers/specs/` 와 `docs/superpowers/plans/` 로 통합했고,
|
||||
> 이 패키지에는 검증 스크립트가 없었다.
|
||||
> 아래 본문은 납품 시점의 기록이므로 제거된 파일을 가리키는 문장은 더 이상 유효하지 않다.
|
||||
|
||||
# Redis Wrapper 및 Typed API 설계 패키지
|
||||
|
||||
이 패키지는 Spring 기반 Backend Skeleton에서 Redis 자료구조와 명령을 폭넓게 제공하기 위한 설계서와 구현 계획서다.
|
||||
|
||||
## 문서
|
||||
|
||||
- `docs/superpowers/specs/2026-08-07-redis-wrapper-typed-api-design.md`
|
||||
- 범위와 비지원 범위
|
||||
- Redis 버전·배포 모드
|
||||
- 모듈과 의존 규칙
|
||||
- 자료구조별 동기·Reactive Typed API
|
||||
- R1~R4 명령 노출 정책
|
||||
- permit·budget·Raw Gateway·Admin Plane
|
||||
- namespace·직렬화·TTL·timeout·retry·오류·관측성·ACL
|
||||
- Standalone·Sentinel·Cluster
|
||||
- 테스트·CI·완료 정의
|
||||
|
||||
- `docs/superpowers/plans/2026-08-07-redis-wrapper-typed-api-implementation-plan.md`
|
||||
- 27개 구현 작업
|
||||
- 작업별 생성·수정 파일
|
||||
- 작업 간 입력·출력 인터페이스
|
||||
- 실패 테스트, 실행 명령, 최소 구현, 통과 검증, 커밋
|
||||
- Redis 7.2·7.4·8.2·8.10 및 Sentinel·Cluster 테스트 작업
|
||||
|
||||
- `VALIDATION.md`
|
||||
- 문서 구조와 계획 완전성에 대한 정적 검증 결과
|
||||
|
||||
## 핵심 결정
|
||||
|
||||
1. classic Redis 자료구조는 최대한 Typed API로 제공한다.
|
||||
2. 고비용·Blocking·다중 키 명령은 permit와 `OperationBudget`을 요구한다.
|
||||
3. Typed API에 아직 없는 R1·R2 명령은 승인형 Raw Gateway로 제공한다.
|
||||
4. 운영 명령은 별도 Admin Plane, 파괴적 명령은 SDK 차단으로 분리한다.
|
||||
5. command catalog는 Redis 공식 metadata에서 생성하고 조직 정책을 오버레이한다.
|
||||
6. 동기와 Reactive API를 정식 지원하고 같은 내부 async primitive를 공유한다.
|
||||
7. 일반·Blocking·Transaction·Pub/Sub·Admin 연결을 격리한다.
|
||||
8. timeout 후 write는 자동 재시도하지 않고 실행 결과 불명을 표현한다.
|
||||
|
||||
## 적용 전제
|
||||
|
||||
현재 Backend Skeleton 저장소가 첨부되지 않아 경로와 Gradle 구조는 목표 구조로 확정했다. 실제 저장소에 적용할 때 기존 package naming, convention plugin, dependency management가 더 강한 기준을 이미 갖고 있다면 구조적 계약은 유지하면서 해당 규칙에 맞춘다.
|
||||
|
||||
입력 Markdown이 참조한 309행 Excel 워크북은 현재 작업 공간에 존재하지 않았다. 따라서 정확한 command matrix는 구현 과정에서 `COMMAND DOCS`, `COMMAND INFO`, `COMMAND GETKEYSANDFLAGS`를 읽어 재생성하고 정책 오버레이를 적용하도록 설계했다.
|
||||
@@ -0,0 +1,38 @@
|
||||
# 정적 검증 결과
|
||||
|
||||
- **결과:** PASS
|
||||
- **검사 수:** 29
|
||||
- **설계서 SHA-256:** `e742ea78f4f40c2f5ed65093a71d2c85c27da52b0761374030a5ca64143aea63`
|
||||
- **계획서 SHA-256:** `6592a37373a79bc2ccf9434fc3516d8273d9f9369e392d5e4f3360a46d6398c0`
|
||||
|
||||
| 검사 | 결과 | 세부 |
|
||||
|---|---|---|
|
||||
| 설계서 파일 존재 | PASS | docs/superpowers/specs/2026-08-07-redis-wrapper-typed-api-design.md |
|
||||
| 설계서 코드 펜스 균형 | PASS | fences=70 |
|
||||
| 설계서 미확정 표식 없음 | PASS | none |
|
||||
| 계획서 파일 존재 | PASS | docs/superpowers/plans/2026-08-07-redis-wrapper-typed-api-implementation-plan.md |
|
||||
| 계획서 코드 펜스 균형 | PASS | fences=276 |
|
||||
| 계획서 미확정 표식 없음 | PASS | none |
|
||||
| 계획 작업 수 | PASS | 27 tasks |
|
||||
| 모든 작업 Step 1 보유 | PASS | 27/27 |
|
||||
| 모든 작업 Step 2 보유 | PASS | 27/27 |
|
||||
| 모든 작업 Step 3 보유 | PASS | 27/27 |
|
||||
| 모든 작업 Step 4 보유 | PASS | 27/27 |
|
||||
| 모든 작업 Step 5 보유 | PASS | 27/27 |
|
||||
| 모든 작업 **Files:** 보유 | PASS | 27/27 |
|
||||
| 모든 작업 **Interfaces:** 보유 | PASS | 27/27 |
|
||||
| 모든 작업 git commit -m 보유 | PASS | 27/27 |
|
||||
| Create 경로 중복 없음 | PASS | none |
|
||||
| Superpowers 계획 헤더 | PASS | required header present |
|
||||
| 설계 입력 제약 명시 | PASS | missing workbook handled explicitly |
|
||||
| Typed/Advanced/Raw/Admin 4단계 | PASS | four exposure tiers |
|
||||
| classic 자료구조 범위 | PASS | all classic groups present |
|
||||
| 동기·Reactive parity 계획 | PASS | API parity covered |
|
||||
| permit 위조 검증 | PASS | provenance verification covered |
|
||||
| 토폴로지 task 선행 등록 | PASS | test tasks available before contracts |
|
||||
| 환경 파일 생명주기 일관성 | PASS | create once, extend twice |
|
||||
| 잘못된 Persistent factory 없음 | PASS | constructor usage consistent |
|
||||
| 공유 async primitive | PASS | sync/reactive executor share invocation |
|
||||
| Raw 문자열 API 금지 | PASS | guardrail fixed |
|
||||
| R4 차단 | PASS | blocked in plan and design |
|
||||
| 완료 정의 존재 | PASS | definition and release task present |
|
||||
Reference in New Issue
Block a user