fix: 하네스 제거 및 keycloak 문서 보강
This commit is contained in:
@@ -1 +0,0 @@
|
||||
../../vault/20-evidence/official-docs/sample-realworld-gothinkster-github.md
|
||||
@@ -0,0 +1,103 @@
|
||||
---
|
||||
title: gothinkster/realworld — "The mother of all demo apps" cross-stack 동일 명세 sample
|
||||
source_type: official-doc
|
||||
url: https://github.com/gothinkster/realworld
|
||||
archive_url:
|
||||
status: raw
|
||||
confidence: high
|
||||
tags: [ca-tmpl, sample-fixture, realworld, conduit, cross-stack-spec, github-reference, official-doc]
|
||||
related_projects: [ca-skeleton-operational-contract]
|
||||
related_branches: [feature-sample-domain-contract-fixture]
|
||||
created: 2026-05-22
|
||||
last_reviewed: 2026-05-27
|
||||
---
|
||||
|
||||
# gothinkster/realworld (Conduit)
|
||||
|
||||
> Layer: `raw/official-docs/` — gothinkster/realworld README + spec docs verbatim 발췌. ca-tmpl sample-ticket 결정의 대안 2 (cross-stack spec sample) 비교 근거. **OSS community spec — 단일 벤더의 official doc 은 아님**.
|
||||
|
||||
## Parent / 활용 branch (필수)
|
||||
|
||||
| Branch | 이 자료가 정당화하는 결정 |
|
||||
|---|---|
|
||||
| [[raw/branch-notes/feature-sample-domain-contract-fixture]] | sample fixture 의 "cross-stack 명세 vs 내부 contract 검증" trade-off — RealWorld 는 frontend/backend interop 명세, ca-tmpl 은 skeleton 내부 contract (state machine, optimistic lock, idempotency) 검증이라는 차별점 |
|
||||
|
||||
## 컨텍스트
|
||||
|
||||
ca-tmpl sample-ticket 결정에 대한 대안 2. RealWorld는 "동일한 API/UI 명세를 백엔드·프론트엔드 어떤 스택으로도 구현"하는 cross-stack sample이며, "sample을 명세(spec)로 정의한다"는 접근이 ca-tmpl의 "sample fixture = skeleton contract 검증" 접근과 비교 가치 있음.
|
||||
|
||||
## 출처 / Source
|
||||
|
||||
- 원본 URL: https://github.com/gothinkster/realworld
|
||||
- 명세: https://realworld-docs.netlify.app/specifications/backend/introduction/
|
||||
- 아카이브 URL: (미수집)
|
||||
- 저자/조직: gothinkster (OSS 커뮤니티, Eric Simons 외)
|
||||
- Star 수: 80,000+ (사실상 cross-language reference)
|
||||
- 라이선스: MIT
|
||||
- 마지막 확인일: 2026-05-27
|
||||
|
||||
## 핵심 인용 / Key quotes (verbatim)
|
||||
|
||||
> [§README headline] "The mother of all demo apps — Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more"
|
||||
|
||||
> [§README — combining frontends/backends] "You can combine any frontend with any backend, because they all adhere to the same API spec"
|
||||
|
||||
> [§README — modularity] "Every tutorial is built against the same API spec to ensure modularity of every frontend & backend"
|
||||
|
||||
## Claims Extracted / 추출된 주장
|
||||
|
||||
| Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove |
|
||||
|---|---|---|---|---|---|
|
||||
| SMP-RW-C1 | RealWorld 는 React/Angular/Node/Django 등 다양한 스택으로 구현된 "fullstack Medium.com clone" 데모 앱들의 묶음이다 | [§README headline] "The mother of all demo apps — Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more" | `engineering-blog` | OSS demo / 학습 reference 평가 | "production-ready" / "공식 best practice" 라는 뜻은 아님 — 어디까지나 demo 명세 |
|
||||
| SMP-RW-C2 | 모든 frontend 와 모든 backend 는 **동일 API spec** 을 따르므로 자유롭게 조합 가능하다 | [§README] "You can combine any frontend with any backend, because they all adhere to the same API spec" | `engineering-blog` | cross-stack interop 학습 / spec-first 접근 평가 | spec 이 모든 endpoint contract 의 모든 corner case (concurrency / idempotency / optimistic lock) 를 다룬다는 뜻은 아님 |
|
||||
| SMP-RW-C3 | 모든 튜토리얼/구현체는 같은 API spec 으로 빌드되어 frontend & backend 의 modularity 가 보장된다 | [§README] "Every tutorial is built against the same API spec to ensure modularity of every frontend & backend" | `engineering-blog` | RealWorld 튜토리얼 군의 일관성 평가 | 각 구현체가 동일 spec 준수임을 자동 검증하는 conformance test suite 가 모든 언어에 적용된다는 뜻은 본 인용에 명시 없음 |
|
||||
|
||||
### Strength 허용값 사용
|
||||
|
||||
- `engineering-blog` — gothinkster 는 OSS 커뮤니티 프로젝트로, 단일 벤더의 공식 문서나 공식 표준이 아님. 따라서 `engineering-blog` (커뮤니티 reference 수준) 로 분류. ca-tmpl 운영 규칙 §5 의 "company-tech-blog 는 공식 best practice 로 취급 금지" 와 동일한 제약 적용 — RealWorld 자체는 "공식 best practice" 가 아님
|
||||
|
||||
## Usage Boundaries / 적용 경계
|
||||
|
||||
- **이 자료가 직접 증명하는 것**:
|
||||
- `SMP-RW-C1`: RealWorld 가 다언어 데모의 묶음이라는 사실
|
||||
- `SMP-RW-C2`: frontend/backend 의 동일 spec 조합 가능성
|
||||
- `SMP-RW-C3`: tutorial 단위 modularity 의도
|
||||
- **이 자료가 증명하지 않는 것**:
|
||||
- RealWorld spec 이 optimistic lock / idempotency key / state machine corner case 를 다룬다 — README 자체에는 명시 없음 (별도 spec 페이지의 endpoint 정의를 직접 확인 필요)
|
||||
- RealWorld 의 모든 backend 구현체가 production 검증되었다는 사실
|
||||
- 80k star 가 "공식 표준" 또는 "best practice" 를 의미한다 — 인기 ≠ 공식
|
||||
- ca-tmpl 의 12-scenario matrix (sample disabled startup, sample removal smoke 등) 에 해당하는 RealWorld 의 검증 시나리오 존재 여부
|
||||
- **내 프로젝트에 적용하려면 추가 확인이 필요한 것**:
|
||||
- RealWorld API spec 의 정확한 endpoint 목록 (Article / Comment / User / Profile / Favorite / Follow) 및 각 endpoint 의 contract 깊이
|
||||
- Spring Boot 구현체 reference 의 코드 품질 (별도 평가)
|
||||
- RealWorld 가 ca-tmpl 의 "skeleton 내부 contract 검증" 목적에 noise 가 너무 큰지 단순화 가능한지
|
||||
|
||||
## 메모 / Notes (내 프로젝트 해석)
|
||||
|
||||
> 본 섹션은 자료 직접 인용 아님. ca-tmpl 결정 컨텍스트 해석.
|
||||
|
||||
- 도메인: Article / Comment / User / Profile / Favorite / Follow — 소셜 블로그.
|
||||
- 핵심 차이점: RealWorld는 **frontend/backend interop 검증**용 명세. ca-tmpl sample-ticket은 **skeleton 내부 contract**(상태 머신·optimistic lock·idempotency) 검증.
|
||||
- 시나리오 매트릭스: RealWorld API spec은 endpoint 단위 contract만 정의. ca-tmpl 12-scenario(sample disabled startup, sample removal smoke 등)는 RealWorld에는 없음.
|
||||
- 모델 깊이: optimistic lock·idempotency key가 명세에 없음. → ca-tmpl 결정(6-field min model + idempotency + optimistic lock)이 RealWorld보다 contract 검증에 적합.
|
||||
- 장점: cross-stack 비교가 가능하고 백엔드 구현체가 수십 개라 패턴 참고 풍부.
|
||||
- 단점: 도메인이 너무 풍부해 minimum fixture가 아님. skeleton 검증용으로 차용 시 noise 큼.
|
||||
- 신뢰도: github star 80k급 OSS reference. 단 official-doc은 아니고 community spec. tag는 official-doc으로 묶되 본문에 "OSS community spec" 명시 (frontmatter `source_type: official-doc` 은 wiki 의 광의의 "외부 reference 문서" 분류 — 단일 벤더의 표준이 아닌 점은 strength = `engineering-blog` 로 표시).
|
||||
|
||||
## 관련 ca-tmpl branch / contract
|
||||
|
||||
- 적용 branch-note:
|
||||
- [[raw/branch-notes/feature-sample-domain-contract-fixture]]
|
||||
- canonical contract 섹션:
|
||||
- [[raw/project-notes/ca-skeleton-operational-contract#17. Sample Domain Fixture]]
|
||||
- [[raw/project-notes/ca-skeleton-operational-contract#22. Sample-portfolio Contract Matrix]]
|
||||
- 대안 그룹: **Group G — Sample domain contract fixture**
|
||||
- 본 source의 위치: 대안 2 — cross-stack spec sample (RealWorld/Conduit)
|
||||
|
||||
## Related / 관련
|
||||
|
||||
- 같은 주제 다른 official-doc:
|
||||
- [[raw/official-docs/sample-microservices-spring-cloud-github]] (대안 3 — microservices reference variant)
|
||||
- 인용하는 branch:
|
||||
- [[raw/branch-notes/feature-sample-domain-contract-fixture]]
|
||||
- 인용하는 wiki: (미작성)
|
||||
Reference in New Issue
Block a user