init: company-haness 설계
This commit is contained in:
+27
@@ -0,0 +1,27 @@
|
||||
report-type: workflow-artifact
|
||||
artifact-kind: decision-brief
|
||||
artifact-version: 1
|
||||
identity:
|
||||
artifact-id: EXEC-CEO-20260720T110333Z
|
||||
workflow-id: hyeonworks-vnext-v2
|
||||
stage: intake
|
||||
producer-role-id: EXEC-CEO
|
||||
created-at: 20260720T110333Z
|
||||
attempt-id: 1
|
||||
payload: {}
|
||||
projection-version: 1
|
||||
decision-summary:
|
||||
bottom-line: ""
|
||||
recommendation: ""
|
||||
decision-needed: false
|
||||
confidence: Med
|
||||
evidence-index: []
|
||||
dissent: []
|
||||
open-risks: []
|
||||
artifact-refs: []
|
||||
report-header:
|
||||
bottom-line: ""
|
||||
decision-needed: { needed: false, approver: }
|
||||
confidence: { value: Med, derived-from: evidence }
|
||||
risks: []
|
||||
evidence: []
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
report-type: workflow-artifact
|
||||
artifact-kind: decision-brief
|
||||
artifact-version: 1
|
||||
identity:
|
||||
artifact-id: EXEC-CEO-20260720T110525Z
|
||||
workflow-id: hyeonworks-vnext-v2
|
||||
stage: intake
|
||||
producer-role-id: EXEC-CEO
|
||||
created-at: 20260720T110525Z
|
||||
attempt-id: 1
|
||||
payload:
|
||||
mode: divergent
|
||||
tier: standard
|
||||
candidate-families:
|
||||
- FAM-STRATEGY
|
||||
- FAM-UX-RESEARCH
|
||||
- FAM-GTM-GROWTH
|
||||
- FAM-PRODUCT-MGMT
|
||||
- FAM-ARCHITECTURE-TECH
|
||||
intent-restatement: >-
|
||||
hyeonworks 학습 제품을 경쟁 경험 근거 위에서 재설계한다. v1이 확정한 dual-portal 정보구조와
|
||||
Lost Update 단일 주제 범위를 기정사실로 두지 않고, 정보구조·상호작용·제품 범위를 다시 발산해
|
||||
결정한다.
|
||||
lineage:
|
||||
supersedes-parent-workflow: hyeonworks-vnext-v1
|
||||
reason: >-
|
||||
v1 부모 원장에 design-direction-approval(child=hyeonworks-vnext-v1-direction)이 이미 기록돼
|
||||
있어 같은 부모에서 새 방향 사이클을 finalize할 수 없다(기존 approval 충돌 검사). 따라서 신규
|
||||
부모 계보를 연다. v1 산출물은 삭제하지 않고 비교 기준으로 보존한다.
|
||||
candidate-family-rationale:
|
||||
- family-id: FAM-GTM-GROWTH
|
||||
why: >-
|
||||
v1 intake의 candidate-families에 이 family가 없어 GTM-CI(competitive-intelligence)가 후보에서
|
||||
구조적으로 배제됐고, 그 결과 v1 부모 workflow 전체의 외부 근거가 0건이었다. 이번 사이클의
|
||||
1순위 시정 항목이다.
|
||||
- family-id: FAM-UX-RESEARCH
|
||||
why: 학습 경험 재설계의 고객 렌즈. 사용 데이터가 없으므로 정성 리서치가 주 경로다.
|
||||
- family-id: FAM-STRATEGY
|
||||
why: 제품 범위·포지셔닝 옵션 발산.
|
||||
- family-id: FAM-PRODUCT-MGMT
|
||||
why: 제품 가치·범위 판단 및 독립 리뷰.
|
||||
- family-id: FAM-ARCHITECTURE-TECH
|
||||
why: 브라우저 실행 제약(WASM·단일 연결) 하에서 범위 옵션의 실현 가능성 검증.
|
||||
role-selection-note:
|
||||
plan-status: ready
|
||||
engine-selected: [ARCH-APP, STR-ANALYST, DATA-ANALYST, GTM-CI, PROD-PO]
|
||||
tie-break-applied:
|
||||
capability: customer-research
|
||||
engine-suggested: DATA-ANALYST
|
||||
resolved-to: UX-RESEARCHER
|
||||
basis: >-
|
||||
role-selection-scorecard tie-break(동점 시 relevance 우선). 두 역할 모두 FAM-UX-RESEARCH의
|
||||
customer-research를 덮고 엔진 점수가 total:1 동점이었다. 제품에 사용자·사용 데이터가 없어
|
||||
정량 분석 대상이 존재하지 않으므로 relevance는 UX-RESEARCHER가 높다. 엔진 산출 DATA-ANALYST는
|
||||
coverage에 lens 기여가 없어 LENS-CUSTOMER가 미충족으로 남는 문제도 함께 해소된다.
|
||||
projection-version: 1
|
||||
decision-summary:
|
||||
bottom-line: >-
|
||||
v1을 보존한 채 신규 부모 계보 hyeonworks-vnext-v2를 divergent/standard로 열고, v1에서 누락됐던
|
||||
경쟁 근거 역할(GTM-CI)을 후보에 포함해 제품 범위와 정보구조를 재발산한다.
|
||||
recommendation: >-
|
||||
/ground를 5렌즈+contrarian으로 실행하되 외부 경쟁 근거를 필수로 요구하고, /decide에서 dual-portal을
|
||||
기정사실이 아닌 후보 중 하나로 재경쟁시킨다.
|
||||
decision-needed: true
|
||||
confidence: Med
|
||||
evidence-index:
|
||||
- EXEC-CEO-20260718T111108Z
|
||||
- STR-ANALYST-20260718T110705Z
|
||||
dissent:
|
||||
- >-
|
||||
v1 제품 결정문 자체가 "Dual Portal이 두 제품처럼 보이면 선택 근거가 사라진다"와 "사용자 실측 전에는
|
||||
두 카드가 시작률을 높이는지 알 수 없다"를 dissent로 남겼다. 이 소수의견은 검증되지 않은 채
|
||||
released까지 통과했으므로 이번 discovery의 반증 대상으로 승계한다.
|
||||
open-risks:
|
||||
- >-
|
||||
v2도 결정 이후 단계에서만 경쟁 근거를 확보하면 제품 결정 자체는 여전히 얇은 근거 위에 놓인다.
|
||||
/ground 단계에서 외부 근거를 확보해야 한다.
|
||||
- >-
|
||||
범위 확대(단일 주제 → 복수 주제)는 1인 유지부담과 직접 상충한다. 발산 단계에서 옵션별 유지비용을
|
||||
함께 산출하지 않으면 실행 불가능한 옵션이 선택될 수 있다.
|
||||
artifact-refs:
|
||||
- hyeonworks/completion-records/hyeonworks-vnext-v1/EXEC-CEO-20260718T111108Z.report.yaml
|
||||
- hyeonworks/completion-records/hyeonworks-vnext-v1/STR-ANALYST-20260718T110705Z.report.yaml
|
||||
report-header:
|
||||
bottom-line: >-
|
||||
v1을 보존한 채 신규 부모 hyeonworks-vnext-v2를 divergent/standard로 열고, v1에서 구조적으로
|
||||
배제됐던 경쟁 근거 역할(GTM-CI)을 candidate-families에 포함해 제품 범위·정보구조를 재발산한다.
|
||||
decision-needed: { needed: true, approver: HUMAN-001 }
|
||||
confidence: { value: Med, derived-from: evidence }
|
||||
risks:
|
||||
- 범위 확대와 1인 유지부담의 상충이 발산 단계에서 정량화되지 않으면 실행 불가능한 옵션이 선택될 수 있다.
|
||||
- company-context가 provisional이라 회사 문맥 기반 주장은 E2 상한에 묶인다.
|
||||
evidence:
|
||||
- source-uri: hyeonworks/completion-records/hyeonworks-vnext-v1/EXEC-CEO-20260718T111108Z.report.yaml
|
||||
grade: E3
|
||||
note: >-
|
||||
v1 executive-decision-packet. selected-option-id=OPT-DUAL-PORTAL과 미검증 dissent 2건이
|
||||
기록돼 있다 — 이번 사이클이 재경쟁시킬 대상.
|
||||
- source-uri: hyeonworks/completion-records/hyeonworks-vnext-v1/STR-ANALYST-20260718T110705Z.report.yaml
|
||||
grade: E3
|
||||
note: >-
|
||||
v1 grounding-package. evidence 3건이 전부 사내 아티팩트이며 외부 경쟁 근거가 0건이다 —
|
||||
candidate-families에 FAM-GTM-GROWTH를 넣는 직접 근거.
|
||||
- source-uri: hyeonworks/state/hyeonworks-vnext-v1/workflow.yaml
|
||||
grade: E3
|
||||
note: >-
|
||||
부모 원장에 design-direction-approval이 기록돼 있고 stage=released다. 같은 부모에서 새 방향
|
||||
사이클을 닫을 수 없어 신규 계보가 필요하다는 근거.
|
||||
- source-uri: org-os/01-company/company-context.yaml
|
||||
grade: E2
|
||||
note: status=provisional. 회사 문맥 인용은 E2/Med 상한.
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
report-type: workflow-artifact
|
||||
artifact-kind: workload-profile
|
||||
artifact-version: 1
|
||||
identity:
|
||||
artifact-id: EXEC-CEO-20260720T110616Z
|
||||
workflow-id: hyeonworks-vnext-v2
|
||||
stage: intake
|
||||
producer-role-id: EXEC-CEO
|
||||
created-at: 20260720T110616Z
|
||||
attempt-id: 1
|
||||
payload:
|
||||
surfaces:
|
||||
ui: true
|
||||
public-api: false
|
||||
persistence: false
|
||||
infrastructure: false
|
||||
surface-archetype: interactive-learning
|
||||
experience-change: major-redesign
|
||||
risk:
|
||||
security-bearing: false
|
||||
data-migration: false
|
||||
external-side-effect: false
|
||||
required-capabilities:
|
||||
- strategy
|
||||
- customer-research
|
||||
- competitive-intelligence
|
||||
- product
|
||||
- architecture
|
||||
product-feature: true
|
||||
projection-version: 1
|
||||
decision-summary:
|
||||
bottom-line: >-
|
||||
UI를 가진 interactive-learning 제품의 major-redesign이므로 experience-foundation이
|
||||
design-direction보다 먼저 강제되며, discovery wave는 경쟁 근거를 포함한 5 capability로 계획한다.
|
||||
recommendation: >-
|
||||
required-capabilities를 discovery wave의 최소 충분 집합으로 유지하고, design·frontend·
|
||||
information-architecture는 각 후속 stage와 experience-foundation child가 자체 선택하게 둔다.
|
||||
decision-needed: false
|
||||
confidence: Med
|
||||
evidence-index:
|
||||
- EXEC-CEO-20260720T110525Z
|
||||
dissent: []
|
||||
open-risks:
|
||||
- >-
|
||||
required-capabilities를 discovery 범위로 좁혔으므로 design·information-architecture·frontend
|
||||
커버리지는 후속 stage에서 별도로 보장해야 한다. 이 프로필만으로는 그 단계의 충분성을 주장하지 않는다.
|
||||
artifact-refs:
|
||||
- hyeonworks/completion-records/hyeonworks-vnext-v2/EXEC-CEO-20260720T110525Z.report.yaml
|
||||
report-header:
|
||||
bottom-line: >-
|
||||
surfaces.ui=true · surface-archetype=interactive-learning · experience-change=major-redesign으로
|
||||
판정한다. 이 조합은 experience-foundation을 design-direction 선행으로 강제한다.
|
||||
decision-needed: { needed: false, approver: null }
|
||||
confidence: { value: Med, derived-from: evidence }
|
||||
risks:
|
||||
- discovery 범위로 좁힌 capability 집합이므로 후속 stage 커버리지는 별도 보장이 필요하다.
|
||||
evidence:
|
||||
- source-uri: hyeonworks/app/index.html
|
||||
grade: E3
|
||||
note: >-
|
||||
v1이 released한 실물 UI. surfaces.ui=true와 interactive-learning archetype의 직접 근거이며,
|
||||
이번 작업이 신규 제품이 아니라 기존 릴리스의 major-redesign임을 보인다.
|
||||
- source-uri: hyeonworks/completion-records/hyeonworks-vnext-v2/EXEC-CEO-20260720T110525Z.report.yaml
|
||||
grade: E3
|
||||
note: 같은 intake의 decision-brief. mode/tier/candidate-families 선언과 정합.
|
||||
- source-uri: hyeonworks/app/package.json
|
||||
grade: E3
|
||||
note: >-
|
||||
런타임 의존성 0의 browser-local 정적 앱. public-api·persistence·infrastructure 모두 false인 근거.
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
report-type: workflow-artifact
|
||||
artifact-kind: workload-profile
|
||||
artifact-version: 1
|
||||
identity:
|
||||
artifact-id: EXEC-CEO-20260720T110657Z
|
||||
workflow-id: hyeonworks-vnext-v2
|
||||
stage: intake
|
||||
producer-role-id: EXEC-CEO
|
||||
created-at: 20260720T110657Z
|
||||
attempt-id: 1
|
||||
supersedes-report-id: EXEC-CEO-20260720T110616Z
|
||||
payload:
|
||||
surfaces:
|
||||
ui: true
|
||||
public-api: false
|
||||
persistence: false
|
||||
infrastructure: false
|
||||
surface-archetype: interactive-learning
|
||||
experience-change: major-redesign
|
||||
risk:
|
||||
security-bearing: false
|
||||
data-migration: false
|
||||
external-side-effect: false
|
||||
required-capabilities:
|
||||
- strategy
|
||||
- customer-research
|
||||
- competitive-intelligence
|
||||
- product
|
||||
- architecture
|
||||
product-feature: true
|
||||
projection-version: 1
|
||||
decision-summary:
|
||||
bottom-line: >-
|
||||
UI를 가진 interactive-learning 제품의 major-redesign이므로 experience-foundation이
|
||||
design-direction보다 먼저 강제되며, discovery wave는 경쟁 근거를 포함한 5 capability로 계획한다.
|
||||
recommendation: >-
|
||||
required-capabilities를 discovery wave의 최소 충분 집합으로 유지하고, design·frontend·
|
||||
information-architecture는 각 후속 stage와 experience-foundation child가 자체 선택하게 둔다.
|
||||
decision-needed: false
|
||||
confidence: Med
|
||||
evidence-index:
|
||||
- EXEC-CEO-20260720T110525Z
|
||||
dissent: []
|
||||
open-risks:
|
||||
- >-
|
||||
required-capabilities를 discovery 범위로 좁혔으므로 design·information-architecture·frontend
|
||||
커버리지는 후속 stage에서 별도로 보장해야 한다. 이 프로필만으로는 그 단계의 충분성을 주장하지 않는다.
|
||||
revision-note: >-
|
||||
EXEC-CEO-20260720T110616Z의 evidence[0] source-uri가 미실존 경로(hyeonworks/app/index.html)였다.
|
||||
validate_report가 허위 근거로 차단했고, 실제 산출물 경로(hyeonworks/app/dist/index.html)로 교정했다.
|
||||
artifact-refs:
|
||||
- hyeonworks/completion-records/hyeonworks-vnext-v2/EXEC-CEO-20260720T110525Z.report.yaml
|
||||
report-header:
|
||||
bottom-line: >-
|
||||
surfaces.ui=true · surface-archetype=interactive-learning · experience-change=major-redesign으로
|
||||
판정한다. 이 조합은 experience-foundation을 design-direction 선행으로 강제한다.
|
||||
decision-needed: { needed: false, approver: null }
|
||||
confidence: { value: Med, derived-from: evidence }
|
||||
risks:
|
||||
- discovery 범위로 좁힌 capability 집합이므로 후속 stage 커버리지는 별도 보장이 필요하다.
|
||||
evidence:
|
||||
- source-uri: hyeonworks/app/dist/index.html
|
||||
grade: E3
|
||||
note: >-
|
||||
v1이 released한 실물 UI 엔트리. surfaces.ui=true와 interactive-learning archetype의 직접
|
||||
근거이며, 이번 작업이 신규 제품이 아니라 기존 릴리스의 major-redesign임을 보인다.
|
||||
- source-uri: hyeonworks/completion-records/hyeonworks-vnext-v2/EXEC-CEO-20260720T110525Z.report.yaml
|
||||
grade: E3
|
||||
note: 같은 intake의 decision-brief. mode/tier/candidate-families 선언과 정합.
|
||||
- source-uri: hyeonworks/app/package.json
|
||||
grade: E3
|
||||
note: >-
|
||||
런타임 의존성 0의 browser-local 정적 앱. public-api·persistence·infrastructure 모두 false인 근거.
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
report-type: workflow-artifact
|
||||
artifact-kind: workload-profile
|
||||
artifact-version: 1
|
||||
identity:
|
||||
artifact-id: EXEC-CEO-20260720T110814Z
|
||||
workflow-id: hyeonworks-vnext-v2
|
||||
stage: intake
|
||||
producer-role-id: EXEC-CEO
|
||||
created-at: 20260720T110814Z
|
||||
attempt-id: 1
|
||||
supersedes-report-id: EXEC-CEO-20260720T110657Z
|
||||
payload:
|
||||
surfaces:
|
||||
ui: true
|
||||
public-api: false
|
||||
persistence: false
|
||||
infrastructure: false
|
||||
surface-archetype: interactive-learning
|
||||
experience-change: major-redesign
|
||||
risk:
|
||||
security-bearing: false
|
||||
data-migration: false
|
||||
external-side-effect: false
|
||||
risk-level: Low
|
||||
reversibility: two-way-door
|
||||
blast-radius: single-role
|
||||
privacy: false
|
||||
regulatory: false
|
||||
slo-impact: false
|
||||
required-capabilities:
|
||||
- strategy
|
||||
- customer-research
|
||||
- competitive-intelligence
|
||||
- product
|
||||
- architecture
|
||||
product-feature: true
|
||||
projection-version: 1
|
||||
decision-summary:
|
||||
bottom-line: >-
|
||||
UI를 가진 interactive-learning 제품의 major-redesign이므로 experience-foundation이
|
||||
design-direction보다 먼저 강제되며, discovery wave는 경쟁 근거를 포함한 5 capability로 계획한다.
|
||||
recommendation: >-
|
||||
required-capabilities를 discovery wave의 최소 충분 집합으로 유지하고, design·frontend·
|
||||
information-architecture는 각 후속 stage와 experience-foundation child가 자체 선택하게 둔다.
|
||||
decision-needed: false
|
||||
confidence: Med
|
||||
evidence-index:
|
||||
- EXEC-CEO-20260720T110525Z
|
||||
dissent: []
|
||||
open-risks:
|
||||
- >-
|
||||
required-capabilities를 discovery 범위로 좁혔으므로 design·information-architecture·frontend
|
||||
커버리지는 후속 stage에서 별도로 보장해야 한다. 이 프로필만으로는 그 단계의 충분성을 주장하지 않는다.
|
||||
revision-note: >-
|
||||
110616Z는 evidence source-uri 미실존(hyeonworks/app/index.html)으로 validate_report에 차단됐고,
|
||||
110657Z는 risk 필수 필드(risk-level·reversibility·blast-radius·privacy·regulatory·slo-impact)
|
||||
누락으로 submit-artifact 스키마 게이트에 차단됐다. 이 revision이 두 결함을 모두 교정한다.
|
||||
artifact-refs:
|
||||
- hyeonworks/completion-records/hyeonworks-vnext-v2/EXEC-CEO-20260720T110525Z.report.yaml
|
||||
report-header:
|
||||
bottom-line: >-
|
||||
surfaces.ui=true · surface-archetype=interactive-learning · experience-change=major-redesign으로
|
||||
판정한다. 이 조합은 experience-foundation을 design-direction 선행으로 강제한다.
|
||||
decision-needed: { needed: false, approver: null }
|
||||
confidence: { value: Med, derived-from: evidence }
|
||||
risks:
|
||||
- discovery 범위로 좁힌 capability 집합이므로 후속 stage 커버리지는 별도 보장이 필요하다.
|
||||
- >-
|
||||
risk-level=Low는 사용자·매출·개인정보 노출이 없는 현재 상태 기준이다. 범위 확대 옵션이 서버·
|
||||
계정·데이터 수집을 도입하면 이 판정은 재검토 대상이다.
|
||||
evidence:
|
||||
- source-uri: hyeonworks/app/dist/index.html
|
||||
grade: E3
|
||||
note: >-
|
||||
v1이 released한 실물 UI 엔트리. surfaces.ui=true와 interactive-learning archetype의 직접
|
||||
근거이며, 이번 작업이 신규 제품이 아니라 기존 릴리스의 major-redesign임을 보인다.
|
||||
- source-uri: hyeonworks/completion-records/hyeonworks-vnext-v2/EXEC-CEO-20260720T110525Z.report.yaml
|
||||
grade: E3
|
||||
note: 같은 intake의 decision-brief. mode/tier/candidate-families 선언과 정합.
|
||||
- source-uri: hyeonworks/app/package.json
|
||||
grade: E3
|
||||
note: >-
|
||||
런타임 의존성 0의 browser-local 정적 앱. public-api·persistence·infrastructure=false와
|
||||
blast-radius=single-role·privacy/regulatory/slo-impact=false의 근거.
|
||||
+460
@@ -0,0 +1,460 @@
|
||||
report-type: workflow-artifact
|
||||
artifact-kind: competitive-market-grounding
|
||||
artifact-version: 1
|
||||
tier: standard
|
||||
identity:
|
||||
artifact-id: GTM-CI-20260720T115855Z
|
||||
workflow-id: hyeonworks-vnext-v2
|
||||
stage: discovery
|
||||
producer-role-id: GTM-CI
|
||||
created-at: 20260720T115855Z
|
||||
attempt-id: 1
|
||||
|
||||
payload:
|
||||
assigned-lens: LENS-REVENUE
|
||||
producer-run-id: hyeonworks-vnext-v2-discovery-gtm-ci-20260720T115755Z
|
||||
context-package-ref: hyeonworks/state/context-packages/hyeonworks-vnext-v2/gtm-ci-20260720T115755Z.pkg.yaml
|
||||
context-package-sha256: e533d781dc0ed8341e4d1fef2a608fd6a9144e40b34b3f802b15f2f61ce6aec7
|
||||
|
||||
research-note: >-
|
||||
v1 부모 workflow(STR-ANALYST-20260718T110705Z)는 evidence 3건이 전부 사내 아티팩트였고 외부
|
||||
경쟁 근거가 0건이었다. 이번 pack은 WebSearch/WebFetch로 오늘(2026-07-20) 실제 접속해 확인한
|
||||
9개 실명 competitor/substitute를 direct/adjacent/substitute 3개 class로 접지한다. 각 옵션(A/B/C)은
|
||||
이 하나의 pack 위에서만 평가하고 옵션별 추가 조사를 하지 않았다. hyeonworks 자체 사용자 행동
|
||||
데이터(GA/전환/설문)는 없으므로 모든 유입·반복방문·수익 가설은 외부 사례에서 도출한 유추(E2)다.
|
||||
|
||||
competitors-and-substitutes:
|
||||
- name: "The Deadlock Empire"
|
||||
type: competitor
|
||||
class: direct
|
||||
product-form: >-
|
||||
브라우저 인터랙티브 퍼즐 게임. 사용자가 스케줄러 역할을 맡아 멀티스레드 프로그램의 명령을
|
||||
한 단계씩 실행하며 데드락이나 critical-section 동시 진입 같은 금지된 상태를 스스로 유발한다.
|
||||
content-unit: "16개 동시성 챌린지(레벨) 캠페인 — 단일 도메인(락·데드락) 카탈로그"
|
||||
interaction-model: >-
|
||||
원자적이지 않은 명령(load/store 등)까지 쪼개 한 단계씩 실행·되돌리기하며 스레드 스케줄링을
|
||||
직접 조작한다. Predict(사전 가설)나 Explain(사후 인과 서술) 단계는 없다.
|
||||
paywall: "무료 — 결제·로그인·광고 없음"
|
||||
evidence-urls:
|
||||
- https://deadlockempire.github.io/
|
||||
- https://github.com/deadlockempire/deadlockempire.github.io
|
||||
confirmed-at: "2026-07-20"
|
||||
|
||||
- name: "The Secret Lives of Data — Raft"
|
||||
type: competitor
|
||||
class: direct
|
||||
product-form: "단일 페이지 explorable explanation(스크롤/클릭 연동 애니메이션)"
|
||||
content-unit: "단일 메커니즘(Raft 합의 알고리즘) 하나만 best-case/worst-case 시나리오로 깊게 다룸"
|
||||
interaction-model: >-
|
||||
리더 선출·로그 복제를 애니메이션으로 재생·일시정지하며 관찰한다. 사용자가 값을 먼저
|
||||
예측하거나 결과를 자기 언어로 설명하는 단계는 없는 관찰자 모드에 가깝다.
|
||||
paywall: "무료"
|
||||
evidence-urls:
|
||||
- https://thesecretlivesofdata.com/raft/
|
||||
confirmed-at: "2026-07-20"
|
||||
|
||||
- name: "Jepsen — Consistency Models"
|
||||
type: substitute
|
||||
class: adjacent
|
||||
product-form: "정적 레퍼런스 사이트(내비게이션 + 텍스트 + 다이어그램). 상태를 조작하는 인터랙션 없음"
|
||||
content-unit: "일관성 모델·현상(phenomena) 전체를 아우르는 카탈로그형 참고자료"
|
||||
interaction-model: "읽기 전용 문서 탐색. 사용자가 상태를 조작하거나 예측/비교하지 않는다."
|
||||
paywall: "레퍼런스 자체는 무료. 별도 Jepsen 컨설팅/테스트 서비스(Services)는 유료로 시사됨"
|
||||
evidence-urls:
|
||||
- https://jepsen.io/consistency
|
||||
- https://jepsen.io/consistency/models
|
||||
confirmed-at: "2026-07-20"
|
||||
|
||||
- name: "CodeCrafters"
|
||||
type: competitor
|
||||
class: adjacent
|
||||
product-form: >-
|
||||
실제 프로덕션급 도구(Redis/Git/SQLite 등)를 처음부터 코드로 구현하는 IDE 연동 챌린지 플랫폼.
|
||||
git push 시 자동 테스트(Turbo tests)로 즉시 피드백을 준다.
|
||||
content-unit: "11개 주요 챌린지 카탈로그(Git/Redis/Shell/Kafka/SQLite/DNS/BitTorrent 등), 챌린지별 단계형 구조"
|
||||
interaction-model: >-
|
||||
로컬에서 실제 코드를 작성해 프로토콜/명령을 구현하고 자동 테스트를 통과시키는 방식이다.
|
||||
Predict/Observe/Compare/Explain 같은 개념 학습 단계는 없고 구현 성공 여부로 학습을 확인한다.
|
||||
paywall: "무료 티어(제한적) + 유료 멤버십(3개월/연간/평생) + 5인 이상 팀 플랜(연간 결제)"
|
||||
evidence-urls:
|
||||
- https://codecrafters.io/pricing
|
||||
- https://app.codecrafters.io/courses/redis/overview
|
||||
confirmed-at: "2026-07-20"
|
||||
|
||||
- name: "VisuAlgo"
|
||||
type: competitor
|
||||
class: adjacent
|
||||
product-form: "웹 기반 알고리즘/자료구조 애니메이션 시각화 도구(NUS 제작, 2011년부터 운영)"
|
||||
content-unit: "26개 이상 알고리즘·자료구조 주제 카탈로그, 주제별 e-Lecture 모드 포함"
|
||||
interaction-model: "단계별 애니메이션 재생 + 커스텀 입력으로 직접 조작 가능. causal '왜' 설명은 약함"
|
||||
paywall: "완전 무료, 로그인 불필요"
|
||||
evidence-urls:
|
||||
- https://visualgo.net/en
|
||||
confirmed-at: "2026-07-20"
|
||||
|
||||
- name: "Use The Index, Luke"
|
||||
type: substitute
|
||||
class: substitute
|
||||
product-form: "무료 웹북(정적 텍스트 + SQL 코드 스니펫). 유료 인쇄판은 별도 판매"
|
||||
content-unit: "SQL 인덱싱·성능 주제를 다루는 챕터형 책 전체(Oracle/MySQL/PostgreSQL/SQL Server/Db2 벤더 중립)"
|
||||
interaction-model: "읽기 전용. '3분 SQL 스킬 진단' 퀴즈 외에는 상태 시각화·시뮬레이션이 없다."
|
||||
paywall: "웹 버전 무료. 인쇄본/전자책(SQL Performance Explained)은 유료 구매"
|
||||
evidence-urls:
|
||||
- https://use-the-index-luke.com/
|
||||
confirmed-at: "2026-07-20"
|
||||
|
||||
- name: "CMU 15-445 Database Systems + BusTub"
|
||||
type: substitute
|
||||
class: substitute
|
||||
product-form: "대학 강의 영상(YouTube 전체 공개) + 실제 C++ 데이터베이스 구현 프로젝트(BusTub)"
|
||||
content-unit: >-
|
||||
26개 강의 + 4개 대형 프로젝트(버퍼풀 매니저 / B+Tree 인덱스 / 쿼리 실행기 /
|
||||
동시성 제어·락 매니저) 전체 학기 커리큘럼
|
||||
interaction-model: >-
|
||||
영상 시청(수동)과 자기 PC에서 실제 C++ 코드로 락 매니저·격리 프로토콜까지 구현하는
|
||||
중자산(heavy) 실습이 결합된 방식. 정식 자동채점(Gradescope)은 등록 학생 전용이다.
|
||||
paywall: "강의·코드 다운로드는 전부 무료. 정식 채점만 비공개"
|
||||
evidence-urls:
|
||||
- https://15445.courses.cs.cmu.edu/
|
||||
- https://www.youtube.com/playlist?list=PLSE8ODhjZXjYMAgsGH-GtY5rJYZ6zjsd5
|
||||
confirmed-at: "2026-07-20"
|
||||
|
||||
- name: "Brilliant.org"
|
||||
type: competitor
|
||||
class: adjacent
|
||||
product-form: "수학·과학·CS 전반을 다루는 인터랙티브 학습 구독 플랫폼(웹/모바일)"
|
||||
content-unit: "다수 코스 카탈로그. 코스당 챕터 구조이며 비로그인/무료는 코스당 첫 챕터만 공개"
|
||||
interaction-model: "짧은 인터랙티브 퀴즈·조작형 위젯 단위 학습 + 일일 챌린지로 재방문을 유도"
|
||||
paywall: "월 $27.99 또는 연 $161.88(월 환산 $13.49) 구독. 가족 플랜 별도. 7일 무료체험"
|
||||
evidence-urls:
|
||||
- https://brilliant.org/subscribe/
|
||||
- https://brilliant.org/courses/
|
||||
confirmed-at: "2026-07-20"
|
||||
|
||||
- name: "PostgreSQL 공식 문서 — Transaction Isolation"
|
||||
type: substitute
|
||||
class: substitute
|
||||
product-form: "공식 정적 텍스트 문서(격리수준×이상현상 매트릭스 표 + SQL 예시)"
|
||||
content-unit: "단일 문서 페이지. Lost Update는 별도 용어로 명명되지 않고 이상현상 설명에 암묵 포함"
|
||||
interaction-model: "읽기 전용. 표와 SQL 예시뿐이며 상태 변화를 조작하거나 인과를 단계별로 설명하지 않는다."
|
||||
paywall: "무료"
|
||||
evidence-urls:
|
||||
- https://www.postgresql.org/docs/current/transaction-iso.html
|
||||
confirmed-at: "2026-07-20"
|
||||
|
||||
current-alternatives:
|
||||
- alternative: "공식 데이터베이스 문서 정독(예: PostgreSQL Transaction Isolation)"
|
||||
evidence-url: https://www.postgresql.org/docs/current/transaction-iso.html
|
||||
- alternative: "Stack Overflow 등 커뮤니티 Q&A에서 유사 증상 검색"
|
||||
- alternative: "동료에게 질문하거나 화면 공유로 페어 디버깅"
|
||||
- alternative: "책(예: Designing Data-Intensive Applications류) 정독을 통한 정적 텍스트 학습 — 이번 pack에서 URL로 개별 검증하지 않음, 일반 통념으로만 인용(E1)"
|
||||
- alternative: "hyeonworks v1 자체 released 제품(Dual Portal, 단일 Lost Update 주제) — 사내 status quo"
|
||||
evidence-path: hyeonworks/app/README.md
|
||||
|
||||
strengths-weaknesses:
|
||||
- subject: "The Deadlock Empire"
|
||||
strengths:
|
||||
- "능동적 조작으로 동시성 버그를 스스로 유발하는 몰입감 높은 상호작용"
|
||||
- "무료·가입 불필요로 진입장벽이 낮음"
|
||||
- "2016년 해커톤 이후 HN 등 개발자 커뮤니티에서 자발적으로 회자된 바이럴 사례"
|
||||
weaknesses:
|
||||
- "원인→결과를 언어로 설명(explain)하거나 기대값·관찰값을 대조하는 단계가 없어 causal reasoning 언어화가 약함"
|
||||
- "새 사례로 전이(transfer)하는 후속 연습이 없음"
|
||||
- "카탈로그가 2016년 이후 크게 갱신되지 않아 최신성 신호가 약함"
|
||||
|
||||
- subject: "The Secret Lives of Data — Raft"
|
||||
strengths:
|
||||
- "단일 메커니즘을 best/worst-case 시나리오로 나눠 시각적으로 깊게 보여주는 서사 구조"
|
||||
- "스크롤 연동 애니메이션이 기억에 남는 설명 방식으로 널리 인용됨"
|
||||
weaknesses:
|
||||
- "수동 재생 위주라 사용자가 직접 예측·조작하지 않는 관찰자 모드에 가까움"
|
||||
- "단일 페이지 이후 재방문을 유도할 후속 콘텐츠가 없음"
|
||||
|
||||
- subject: "Jepsen — Consistency Models"
|
||||
strengths:
|
||||
- "일관성 모델 전체를 아우르는 권위 있는 카탈로그형 레퍼런스로 업계 표준 용어의 근거로 자주 인용됨"
|
||||
weaknesses:
|
||||
- "인터랙티브 조작이 없는 정적 텍스트+다이어그램이라 상태를 직접 조작하며 배우기 어려움"
|
||||
- "실무자 대상 사전지식을 요구해 입문 난이도가 높음"
|
||||
|
||||
- subject: "CodeCrafters"
|
||||
strengths:
|
||||
- "실제 프로덕션급 도구를 처음부터 구현해 확신(confidence)을 준다는 창업자 인터뷰의 핵심 가치제안"
|
||||
- "git push 즉시 자동 테스트로 피드백 루프가 빠름"
|
||||
- "400K+ 사용자, GitHub 'build-your-own-x' 레포 50만 스타 수준의 높은 인지도"
|
||||
weaknesses:
|
||||
- "코드 작성이 전제조건이라 진입장벽이 높고 '개념/증상만 아는' 사용자에게는 부적합"
|
||||
- >-
|
||||
4년 이상 운영 후 "the gap between people love it and people pay for it"을 좁히지
|
||||
못했다며 신규 챌린지 개발을 공식 중단(2026 블로그) — 참여도(사랑받음)와 지불의사(과금)
|
||||
사이 괴리가 breadth-catalog·프리미엄 모델의 핵심 리스크임을 실증하는 사례
|
||||
|
||||
- subject: "VisuAlgo"
|
||||
strengths:
|
||||
- "26개 이상 주제의 폭넓은 카탈로그로 검색 트래픽을 다각화"
|
||||
- "무료·무로그인으로 접근장벽이 없고 10년 이상 운영되며 대학 강의 표준 자료로 정착"
|
||||
weaknesses:
|
||||
- "알고리즘/자료구조 도메인에 한정돼 있어 동시성/트랜잭션 같은 시스템 상태 개념에 적용된 직접 사례가 없음"
|
||||
- "e-Lecture 모드 외에는 causal '왜' 설명이 약하고 애니메이션 관찰 위주"
|
||||
|
||||
- subject: "Use The Index, Luke"
|
||||
strengths:
|
||||
- "벤더 중립적으로 5개 DB를 아우르는 권위 있는 무료 텍스트"
|
||||
- "다국어 번역으로 도달 범위가 넓음"
|
||||
weaknesses:
|
||||
- "정적 텍스트라 문제공간이 지적하는 한계('정적 문서만으로 이해하기 어려움')를 그대로 가짐"
|
||||
- "상태 변화를 직접 조작·비교하는 인터랙션이 없음"
|
||||
|
||||
- subject: "CMU 15-445 Database Systems + BusTub"
|
||||
strengths:
|
||||
- "동시성 제어(Project 4)까지 포함한 대학 수준의 완전한 무료 커리큘럼"
|
||||
- "실제 C++ 코드로 락 매니저를 구현하는 매우 높은 깊이"
|
||||
weaknesses:
|
||||
- "강의+대형 프로젝트 완주에 수십 시간이 필요해 진입장벽·시간비용이 매우 높음"
|
||||
- "정식 채점(Gradescope)이 등록 학생 전용이라 일반 개발자는 자기 검증 피드백이 약함"
|
||||
|
||||
- subject: "Brilliant.org"
|
||||
strengths:
|
||||
- "짧은 인터랙티브 퀴즈 단위로 매일 재방문을 유도하는 습관 형성 루프"
|
||||
- "연 $161.88 구독이 실제로 매출을 내는 검증된 모델"
|
||||
- "카탈로그 규모 자체가 구독 정당화 근거가 될 만큼 큼"
|
||||
weaknesses:
|
||||
- "CS 특정 시스템 주제(트랜잭션/동시성) 깊이보다 수학/과학 대중 교양 폭에 최적화"
|
||||
- "무료는 코스당 1챕터로 제한돼 초기 신뢰 형성 전 이탈 위험"
|
||||
|
||||
- subject: "PostgreSQL 공식 문서 — Transaction Isolation"
|
||||
strengths:
|
||||
- "가장 권위 있고 무료이며 버전별로 항상 최신 상태"
|
||||
- "실무자가 실제로 가장 먼저 찾는 기본 status quo"
|
||||
weaknesses:
|
||||
- "Lost Update가 별도 용어로 명명되지 않고 이상현상 설명에 암묵적으로만 포함돼 개념-증상 연결이 약함(고정 문제공간 정의 자체를 실증)"
|
||||
- "표와 SQL 예시뿐이라 인과 설명이 없음"
|
||||
|
||||
differentiation-hypotheses:
|
||||
- >-
|
||||
Deadlock Empire·Secret Lives of Data처럼 상호작용은 있지만 causal explain·전이 단계가 없는
|
||||
direct 대체재와 달리, Predict→Observe→Compare→Explain→Transfer 5단계 루프 전체를 갖춘 제품은
|
||||
확인된 9개 근거 중 없다 — 이 루프 완결성이 차별화 지점이 될 수 있다는 가설(미검증).
|
||||
- >-
|
||||
PostgreSQL 공식문서·Use The Index Luke 같은 정적 문서는 Lost Update를 별도 개념으로 명명조차
|
||||
하지 않는다 — '증상에서 시작해 원인을 추적'하는 진입 경로 자체가 시장에 상대적으로 비어있다는
|
||||
가설(단, 그 진입 경로에 대한 수요 존재는 미검증).
|
||||
- >-
|
||||
CodeCrafters·CMU 15-445는 실제 코드 작성을 요구해 진입장벽이 매우 높다 — 코드 작성 없이 상태를
|
||||
조작하며 인과를 배우는 포지션은 '개념/증상만 아는' 개발자 세그먼트에서 상대적으로 비어있다는 가설.
|
||||
- >-
|
||||
VisuAlgo·Brilliant는 카탈로그 폭으로 검색 트래픽을 다각화했지만, 시스템 동시성/트랜잭션
|
||||
도메인에 특화된 카탈로그 경쟁자는 이번 조사에서 확인되지 않았다 — breadth 확장 시 도메인
|
||||
특화가 차별화가 될 수 있다는 가설.
|
||||
- >-
|
||||
경계 가설(differentiation이 아니라 risk-bounding): CodeCrafters 사례(400K+ 사용자·GitHub 50만
|
||||
스타에도 수익화 실패로 신규 개발 중단)는 참여도가 곧 지불의사로 전환되지 않음을 보여준다.
|
||||
ground-boundary의 under-review 항목("반복 방문 가치", "배포 및 향후 유료 가치")을 낙관적으로
|
||||
가정하려면 이 반증 사례를 반박할 별도 근거가 필요하다.
|
||||
|
||||
evidence-urls:
|
||||
- https://deadlockempire.github.io/
|
||||
- https://github.com/deadlockempire/deadlockempire.github.io
|
||||
- https://thesecretlivesofdata.com/raft/
|
||||
- https://jepsen.io/consistency
|
||||
- https://jepsen.io/consistency/models
|
||||
- https://codecrafters.io/pricing
|
||||
- https://app.codecrafters.io/courses/redis/overview
|
||||
- https://codecrafters.io/blog/pausing-new-challenges
|
||||
- https://visualgo.net/en
|
||||
- https://use-the-index-luke.com/
|
||||
- https://15445.courses.cs.cmu.edu/
|
||||
- https://www.youtube.com/playlist?list=PLSE8ODhjZXjYMAgsGH-GtY5rJYZ6zjsd5
|
||||
- https://brilliant.org/subscribe/
|
||||
- https://brilliant.org/courses/
|
||||
- https://www.postgresql.org/docs/current/transaction-iso.html
|
||||
|
||||
option-evaluations:
|
||||
- option-id: OPT-A-DEPTH-FIRST
|
||||
label: "Depth-first flagship"
|
||||
current-alternatives-and-competitors: >-
|
||||
오늘 이 문제를 겪는 개발자는 공식 문서(PostgreSQL 문서)나 책을 읽거나, Deadlock Empire류
|
||||
인터랙티브 퍼즐, Secret Lives of Data류 explorable로 단일 메커니즘을 학습한다. 가장 가까운
|
||||
direct 경쟁자는 Deadlock Empire(상호작용은 있으나 explain 단계 없음)와 Secret Lives of Data
|
||||
(설명은 깊으나 관찰자 모드)이며, Jepsen consistency는 같은 도메인의 substitute 레퍼런스다.
|
||||
differentiation-hypothesis: >-
|
||||
두 direct 경쟁자 모두 갖추지 못한 predict-compare-explain-transfer 전체 루프가 depth-first의
|
||||
차별화 지점이 될 수 있다(미검증 가설).
|
||||
acquisition-hypothesis: >-
|
||||
단일 주제 depth 제품은 SEO/공유 키워드가 좁아 초기 유입 채널이 협소할 위험이 있다. Deadlock
|
||||
Empire는 2016년 HN 게시로 일회성 트래픽 급증 후 눈에 띄는 재확산 신호가 없다(같은 해커톤
|
||||
기원 이후 콘텐츠 갱신이 뜸함) — depth-first 단독으로는 반복적 외부 유입 채널 확보가 어려울
|
||||
수 있다는 유추.
|
||||
retention-hypothesis: >-
|
||||
완성 콘텐츠가 1개뿐이면 재방문 유인이 약하다. Secret Lives of Data(Raft)도 단일 페이지 이후
|
||||
후속 콘텐츠가 없어 재방문 유인이 없는 동일 패턴을 보인다 — depth-first 단독 유지 시 반복
|
||||
방문 가치는 '전이(transfer)' 연습이나 신규 사례 추가로만 확보될 수 있다는 가설.
|
||||
revenue-hypothesis: >-
|
||||
무료 단일 콘텐츠는 CodeCrafters/Brilliant류 구독 모델의 전제인 '카탈로그 규모'가 없어
|
||||
유료화 근거가 약하다 — depth-first는 초기엔 무료 브랜드 자산으로 포지셔닝하고 수익화는
|
||||
카탈로그 확장 이후로 지연될 가능성이 높다는 가설.
|
||||
evidence-refs:
|
||||
- "The Deadlock Empire (https://deadlockempire.github.io/)"
|
||||
- "The Secret Lives of Data — Raft (https://thesecretlivesofdata.com/raft/)"
|
||||
- "Jepsen — Consistency Models (https://jepsen.io/consistency)"
|
||||
unresolved-assumptions:
|
||||
- "단일 심층 주제만으로 개발자 커뮤니티에서 재확산(바이럴)될지는 실측 없이 유추한 것이다."
|
||||
- "Lost Update가 Raft/데드락 수준의 대중적 인지도를 가진 주제인지 확인되지 않았다."
|
||||
kill-criteria:
|
||||
- "3개월 내 외부 링크(HN/Reddit/X) 경유 유입이 없고 오가닉 검색 세션이 주당 10 미만이면 depth-first 단독 유입 전략을 재검토한다."
|
||||
- "완주자 대상 재방문(2주 내)이 5% 미만이면 반복방문 가치 가정을 기각한다."
|
||||
|
||||
- option-id: OPT-B-BREADTH-CATALOG
|
||||
label: "Breadth-first structured catalog"
|
||||
current-alternatives-and-competitors: >-
|
||||
VisuAlgo(알고리즘 26+주제 무료 카탈로그), CodeCrafters(시스템 도구 11개 유료 카탈로그),
|
||||
Brilliant.org(수학/과학/CS 다과목 구독 카탈로그), CMU 15-445(프로젝트 시퀀스 커리큘럼)가
|
||||
모두 breadth-catalog 패턴의 실명 경쟁·인접 대체재다.
|
||||
differentiation-hypothesis: >-
|
||||
VisuAlgo는 알고리즘, Brilliant는 범용 STEM에 최적화돼 있고 시스템 동시성/트랜잭션 도메인에
|
||||
특화된 카탈로그 경쟁자는 확인되지 않았다 — 도메인 특화 breadth가 white space일 수 있다는
|
||||
가설이나, CodeCrafters가 이미 인접 영역(Redis/Git/SQLite 직접 구현)을 유료로 채우고 있어
|
||||
여백이 생각보다 좁을 수 있다.
|
||||
acquisition-hypothesis: >-
|
||||
카탈로그형은 주제별로 각각 SEO 키워드를 얻어 총 유입 채널이 다각화된다(VisuAlgo가 26+
|
||||
주제로 광범위 검색 트래픽을 확보한 사례) — breadth가 유입 채널 다각화에 유리하다는 가설.
|
||||
retention-hypothesis: >-
|
||||
카탈로그는 '다음 주제' 진행형 재방문 구조를 만들 수 있다(CodeCrafters 챌린지 시퀀스,
|
||||
Brilliant 코스 이어보기·일일 챌린지). 단, 1인 운영으로 카탈로그를 계속 채우지 못하면
|
||||
재방문 유인이 끊긴다는 상충 리스크가 있다(운영비용 자체는 이 lens 밖이나 수익가설의 전제조건).
|
||||
revenue-hypothesis: >-
|
||||
카탈로그 존재가 구독형 과금의 전제조건으로 보인다(Brilliant $27.99/mo·$161.88/yr, CodeCrafters
|
||||
유료 멤버십). 그러나 CodeCrafters는 11개 챌린지 카탈로그·400K+ 사용자·GitHub 50만 스타의
|
||||
높은 참여도에도 "수익화 구조 부재"로 4년 만에 신규 개발을 중단했다 — 카탈로그 breadth가
|
||||
곧 수익 전환을 보장하지 않는다는 강한 반증이다. breadth 자체보다 초기부터 명확한 지불
|
||||
전환 지점 설계가 선행돼야 한다는 가설.
|
||||
evidence-refs:
|
||||
- "VisuAlgo (https://visualgo.net/en)"
|
||||
- "CodeCrafters pricing (https://codecrafters.io/pricing)"
|
||||
- "CodeCrafters — 신규 챌린지 중단 (https://codecrafters.io/blog/pausing-new-challenges)"
|
||||
- "Brilliant.org subscribe (https://brilliant.org/subscribe/)"
|
||||
unresolved-assumptions:
|
||||
- "동시성/트랜잭션 도메인에서 카탈로그가 몇 개 주제 규모여야 구독 전환이 발생하는지 실측이 없다."
|
||||
- "1인 운영으로 카탈로그 제작 속도가 유입 성장 속도를 따라갈 수 있는지 확인되지 않았다(운영 렌즈 소관이나 수익가설의 전제)."
|
||||
kill-criteria:
|
||||
- "카탈로그 3개 주제 이후에도 재방문율(2주 내 재방문)이 depth-first 단일 버전 대비 개선되지 않으면 breadth의 반복방문 가설을 기각한다."
|
||||
- "CodeCrafters 사례처럼 참여 지표(완주율·체류시간)는 높으나 12개월 내 지불의사 신호(사전등록·유료 문의)가 전무하면 breadth-first의 수익 가설을 기각한다."
|
||||
|
||||
- option-id: OPT-C-CATEGORY-REDEF
|
||||
label: "Category redefinition"
|
||||
current-alternatives-and-competitors: >-
|
||||
카테고리 자체를 재정의한다는 것은 A/B 패턴에 속한 위 8개 제품 전체를 '현재 카테고리'로
|
||||
간주하고 그 카테고리 밖의 형태를 찾는 것이다. 확인된 공통 약점: Jepsen은 정적이라 상호작용이
|
||||
없고, Deadlock Empire·Raft explorable은 상호작용은 있으나 causal explain·transfer가 없으며,
|
||||
CodeCrafters·CMU 15-445는 실제 코드 작성을 요구해 진입장벽이 매우 높고, VisuAlgo·Brilliant는
|
||||
도메인이 알고리즘/범용 STEM에 국한된다.
|
||||
differentiation-hypothesis: >-
|
||||
'코드 작성 없이 상태를 직접 조작하며 causal reasoning을 언어화하는' 카테고리는 9개 근거
|
||||
어디에도 명시적으로 존재하지 않는다는 gap 가설. 단, 이 gap이 실제 시장 기회인지 단순 비수요
|
||||
(아무도 원하지 않아 아무도 안 만들었다)인지는 이번 조사로 구분할 수 없다.
|
||||
acquisition-hypothesis: >-
|
||||
새 카테고리는 기존 검색어(예: "concurrency game", "sql performance", "algorithm visualizer")에
|
||||
올라타지 못한다는 리스크가 가장 크다. 확인된 9개 레퍼런스 전부가 기존 카테고리 키워드
|
||||
(게임/비주얼라이제이션/북/코스/챌린지)로 발견됐으므로, 재정의 카테고리는 새 용어 자체를
|
||||
처음부터 만들어야 해 세 옵션 중 가장 느린 유입 가설을 갖는다.
|
||||
retention-hypothesis: >-
|
||||
카테고리가 불명확하면 사용자가 제품을 '무엇'이라 부를지 몰라 공유·추천이 어려워지고, 이는
|
||||
반복방문·바이럴 유입 모두에 불리하다는 간접 가설(근거: v1 자체 dissent "Dual Portal이 두
|
||||
제품처럼 보이면 선택 근거가 사라진다"가 명료성 리스크의 선례).
|
||||
revenue-hypothesis: >-
|
||||
카테고리가 시장에 없다는 것은 비교 가능한 가격 기준점(pricing anchor)도 없다는 뜻이다.
|
||||
Brilliant/CodeCrafters 같은 기존 카테고리의 가격 신호를 그대로 차용할 수 없어, 수익 가설
|
||||
자체를 세울 근거가 세 옵션 중 가장 약하다.
|
||||
evidence-refs:
|
||||
- "Jepsen — Consistency Models (https://jepsen.io/consistency)"
|
||||
- "The Deadlock Empire (https://deadlockempire.github.io/)"
|
||||
- "CodeCrafters pricing (https://codecrafters.io/pricing)"
|
||||
- "VisuAlgo (https://visualgo.net/en)"
|
||||
unresolved-assumptions:
|
||||
- "재정의된 카테고리에 대한 검색 수요 자체가 존재하는지 전혀 확인되지 않았다(세 옵션 중 가장 큰 미검증 가정)."
|
||||
- "기존 카테고리 부재가 시장 기회인지 단순 비수요인지 이번 조사만으로는 구분되지 않는다."
|
||||
kill-criteria:
|
||||
- "재정의 후 새 카테고리 용어로 첫 방문자에게 제품을 설명했을 때 5명 중 3명 이상이 무엇을 하는 제품인지 자력으로 설명하지 못하면 category redefinition을 기각한다."
|
||||
- "출시 후 6주 내 자연 검색·추천 공유가 0에 가깝고 유료 채널(광고) 없이는 유입이 전무하면 재정의 자체가 시장에 존재하지 않는 카테고리임을 인정하고 기각한다."
|
||||
|
||||
conditional-option-d:
|
||||
proposed: false
|
||||
admission-rule-checked: >-
|
||||
ground-boundary.yaml의 admission-rule: "조사 근거에서 독립적으로 도출될 경우에만 추가한다.
|
||||
A와 B를 절충했다는 이유만으로 hybrid를 기본 추천하지 않는다."를 이 pack의 근거에 대조했다.
|
||||
rationale: >-
|
||||
staged 전략(먼저 depth-first로 단일 주제를 검증한 뒤 breadth-catalog로 확장)의 실제 사례로
|
||||
CodeCrafters를 검토했으나, 창업자 인터뷰(TechCrunch/Y Combinator 자료)에 따르면 CodeCrafters는
|
||||
단일 챌린지에서 출발해 단계적으로 확장한 것이 아니라 **출시 시점부터 4개 챌린지로 동시에
|
||||
시작**했다. 즉 "먼저 하나로 증명한 뒤 넓힌다"는 staging 서사는 가장 근접한 실사례에서
|
||||
확인되지 않았다 — 오히려 그 CodeCrafters조차 breadth를 갖춘 채로도 4년 뒤 수익화 실패로
|
||||
신규 개발을 중단했다는 사실은, 문제가 'A냐 B냐 순서'가 아니라 두 옵션 모두에서 수익 전환
|
||||
설계가 별도로 필요하다는 것을 시사한다. 이는 A/B의 절충이 아니라 A와 B 각각의 독립적인
|
||||
약점이므로, staged 옵션(D)을 정당화하는 독립 근거가 되지 못한다. 따라서 D는 제안하지 않는다
|
||||
("D 미제안").
|
||||
evidence-refs:
|
||||
- "CodeCrafters — 신규 챌린지 중단 (https://codecrafters.io/blog/pausing-new-challenges)"
|
||||
- "CodeCrafters Y Combinator 프로필 (https://www.ycombinator.com/companies/codecrafters)"
|
||||
|
||||
report-header:
|
||||
bottom-line: >-
|
||||
실명 경쟁·대체재 9건(direct 2 · adjacent 4 · substitute 3, 전부 2026-07-20 실제 접속 확인)을
|
||||
공통 evidence pack으로 접지해 v1의 외부근거 0건을 시정했다. 이 pack 위에서 OPT-A/B/C를
|
||||
LENS-REVENUE(유입·반복방문·수익) 관점으로만 평가했고, CodeCrafters가 400K+ 사용자·GitHub
|
||||
50만 스타의 높은 참여도에도 수익화 실패로 신규 개발을 중단한 사례가 breadth-catalog·구독
|
||||
수익가설 전반의 핵심 리스크를 실증한다. 조건부 OPT-D는 근거에서 독립적으로 도출되지 않아
|
||||
제안하지 않는다("D 미제안").
|
||||
decision-needed:
|
||||
needed: false
|
||||
approver: null
|
||||
confidence:
|
||||
value: Med
|
||||
derived-from: evidence
|
||||
risks:
|
||||
- "옵션별 유입·반복방문·수익 가설은 전부 외부 사례에서 도출한 유추(E2)이며 hyeonworks 자체 실측 데이터(GA·전환·설문)가 전무하다 — /decide에서 이 가설만으로 확정하지 않아야 한다."
|
||||
- "CodeCrafters·Brilliant는 카탈로그 성숙기 제품(수년 운영·수십만 사용자)이라 hyeonworks 1인 초기단계로 그대로 스케일 다운한 유추는 규모 차이를 과소평가할 위험이 있다."
|
||||
- "OPT-C(category redefinition)의 근거는 '기존 카테고리 제품들의 공통 약점'에서 도출한 간접 추론이며, 재정의된 카테고리 자체의 수요는 어떤 근거로도 직접 확인되지 않았다 — 세 옵션 중 가장 낮은 확신도다."
|
||||
- "company-context가 provisional이라 회사 문맥 인용은 이 보고서에서 사용하지 않았다. 인용한 내부 문서는 전부 hyeonworks 프로젝트 산출물(E3)이며 org-os 회사문맥이 아니다."
|
||||
evidence:
|
||||
- source-uri: hyeonworks/design/hyeonworks-vnext-v2/ground-boundary.yaml
|
||||
grade: E3
|
||||
note: "mandated-option-set A/B/C(+조건부 D)와 evidence-protocol(공통 pack·외부근거 필수)의 원천."
|
||||
- source-uri: hyeonworks/completion-records/hyeonworks-vnext-v1/STR-ANALYST-20260718T110705Z.report.yaml
|
||||
grade: E3
|
||||
note: "v1 grounding-package. evidence 3건이 전부 사내 아티팩트였고 외부 경쟁 근거가 0건이었음을 직접 확인."
|
||||
- source-uri: hyeonworks/completion-records/hyeonworks-vnext-v1/EXEC-CEO-20260718T111108Z.report.yaml
|
||||
grade: E3
|
||||
note: "v1이 선택한 OPT-DUAL-PORTAL과 미검증 dissent 2건 — 이번 pack 비교의 baseline(계승 아님)."
|
||||
- source-uri: hyeonworks/app/README.md
|
||||
grade: E3
|
||||
note: "v1 released 실물(Dual Portal, 단일 Lost Update 주제) — 사내 현행 status quo 제품."
|
||||
- source-uri: https://deadlockempire.github.io/
|
||||
grade: E2
|
||||
note: "direct competitor — 인터랙티브 동시성 퍼즐 게임, 16챌린지, 무료. 2026-07-20 확인."
|
||||
- source-uri: https://thesecretlivesofdata.com/raft/
|
||||
grade: E2
|
||||
note: "direct competitor — 단일 메커니즘(Raft) explorable explanation, 무료. 2026-07-20 확인."
|
||||
- source-uri: https://jepsen.io/consistency
|
||||
grade: E2
|
||||
note: "substitute/adjacent — 일관성 모델 정적 카탈로그 레퍼런스, 무료. 2026-07-20 확인."
|
||||
- source-uri: https://codecrafters.io/pricing
|
||||
grade: E2
|
||||
note: "adjacent competitor — 시스템 도구 build-your-own-X 카탈로그, 유료 멤버십. 2026-07-20 확인."
|
||||
- source-uri: https://codecrafters.io/blog/pausing-new-challenges
|
||||
grade: E2
|
||||
note: "참여도-수익화 괴리 실증. 400K+ 사용자·GitHub 50만 스타에도 수익화 실패로 신규 챌린지 개발 중단(2026). breadth-catalog 수익가설의 핵심 리스크 근거. 2026-07-20 확인."
|
||||
- source-uri: https://visualgo.net/en
|
||||
grade: E2
|
||||
note: "adjacent competitor — 무료 알고리즘/자료구조 시각화 카탈로그(26+ 주제). 2026-07-20 확인."
|
||||
- source-uri: https://use-the-index-luke.com/
|
||||
grade: E2
|
||||
note: "substitute — 무료 정적 웹북(SQL 인덱싱/성능), 벤더 중립. 2026-07-20 확인."
|
||||
- source-uri: https://15445.courses.cs.cmu.edu/
|
||||
grade: E2
|
||||
note: "substitute — 무료 대학 강의 + 동시성제어 프로젝트(BusTub). 2026-07-20 확인."
|
||||
- source-uri: https://brilliant.org/subscribe/
|
||||
grade: E2
|
||||
note: "adjacent competitor — 구독형 STEM/CS 학습 카탈로그, 월 $27.99/연 $161.88. 2026-07-20 확인."
|
||||
- source-uri: https://www.postgresql.org/docs/current/transaction-iso.html
|
||||
grade: E2
|
||||
note: "substitute — 공식 정적 문서, Lost Update가 별도 명명되지 않고 이상현상 설명에 암묵 포함. 2026-07-20 확인."
|
||||
+375
@@ -0,0 +1,375 @@
|
||||
report-type: workflow-artifact
|
||||
artifact-kind: grounding-contribution
|
||||
artifact-version: 1
|
||||
tier: standard
|
||||
identity:
|
||||
artifact-id: UX-RESEARCHER-20260720T115855Z
|
||||
workflow-id: hyeonworks-vnext-v2
|
||||
stage: discovery
|
||||
producer-role-id: UX-RESEARCHER
|
||||
created-at: '20260720T115855Z'
|
||||
attempt-id: 1
|
||||
|
||||
payload:
|
||||
assigned-lens: LENS-CUSTOMER
|
||||
producer-run-id: hyeonworks-vnext-v2-discovery-ux-researcher-20260720T115952Z
|
||||
context-package-ref: hyeonworks/state/context-packages/hyeonworks-vnext-v2/ux-researcher-20260720T115952Z.pkg.yaml
|
||||
context-package-sha256: fb04b11007ab95b05ab4c533a2af943420c610a5b717f7186b89c7bcf86cac98
|
||||
|
||||
research-note: >-
|
||||
실사용자 0명(제품에 사용 데이터 없음). 아래는 전부 WebSearch/WebFetch로 접지한 2차 근거
|
||||
(외부 실무자료·학습과학 문헌·경쟁/대체재 제품)와 사내 기존 결정문 대조에 기반한 가설이다.
|
||||
"실측했다"고 주장하지 않으며, 이에 따라 confidence는 Med를 상한으로 유지한다. NN/g 방법선택
|
||||
프레임 기준으로는 generative 단계(문제 재구성)에 해당하며 formative/summative(실사용자 검증)는
|
||||
이번 조사 범위 밖이다.
|
||||
|
||||
findings:
|
||||
- id: PJ1
|
||||
statement: >-
|
||||
동시성·트랜잭션 격리 학습의 근본 어려움은 "약한 격리일수록 동시성은 늘지만 일관성이 흔들리고,
|
||||
강한 격리(Serializable)는 이론상 명확해도 실제로는 성능 저하·직렬화 실패로 이어진다"는
|
||||
트레이드오프 자체가 직관적으로 설명되지 않는다는 데 있다고 다수의 실무 자료가 지목한다.
|
||||
grade: E2
|
||||
evidence-refs:
|
||||
- https://www.baeldung.com/cs/concurrency-control-lost-update-problem
|
||||
- https://www.designgurus.io/answers/detail/top-concurrency-and-multithreading-for-system-design-interviews
|
||||
- id: PJ2
|
||||
statement: >-
|
||||
Race condition/동시성 버그는 "타이밍에 의존해 재현이 비결정적"이라는 성질 때문에 정적 코드
|
||||
리딩이나 단계별 디버거만으로는 원인을 재구성하기 어렵다 — ground-boundary의 target-user 정의
|
||||
(정적 문서만으로 이해하기 어려운 개발자)와 직접 부합한다.
|
||||
grade: E2
|
||||
evidence-refs:
|
||||
- https://www.rceenetworks.com/a-software-race-condition-is-hard-to-debug/
|
||||
- https://bugpilot.io/2026/05/28/debugging-concurrency-bugs-race-condition-resolution-guide/
|
||||
- id: PJ3
|
||||
statement: >-
|
||||
"Lost Update"류 이상 현상은 에러를 던지지 않고 두 트랜잭션 모두 성공을 보고하며, 손상은
|
||||
최종 상태에서만 관찰된다("no error is raised, both transactions report success, the
|
||||
corruption is visible only in the final state"). 이는 ground-boundary target-user의
|
||||
"증상·결과를 내부 상태 변화와 인과관계에 연결하기 어려운 개발자"가 가상의 페르소나가 아니라
|
||||
실제로 문서화된 혼란 지점임을 보여준다.
|
||||
grade: E2
|
||||
evidence-refs:
|
||||
- https://www.abstractalgorithms.dev/lost-update-database-anomaly
|
||||
- id: PJ4
|
||||
statement: >-
|
||||
근본원인분석(root cause analysis) 실무 문헌은 "반증 가능한 가설을 세우기 전에 코드를
|
||||
만지지 말라"를 강조한다. Predict 단계(관찰 전에 가설을 먼저 선택하게 하는 구조)가 임의의
|
||||
교육적 장치가 아니라 실무 디버깅 습관과 방향이 일치한다는 근거다.
|
||||
grade: E2
|
||||
evidence-refs:
|
||||
- https://www.seangoedecke.com/debugging/
|
||||
- https://www.freecodecamp.org/news/why-is-debugging-hard-how-to-develop-an-effective-debugging-mindset/
|
||||
- id: PJ5
|
||||
statement: >-
|
||||
정적 다이어그램(UML 상태/구조도 등)은 시간에 따라 변하는 시스템 동작을 표현하는 데 태생적
|
||||
한계가 있다는 점을 소프트웨어공학·물리교육 문헌이 일치해서 지적한다 — "정적 문서만으로
|
||||
이해하기 어렵다"는 문제 정의를 지지한다.
|
||||
grade: E2
|
||||
evidence-refs:
|
||||
- https://www.cs.uct.ac.za/mit_notes/software/htmls/ch05s08.html
|
||||
- https://arxiv.org/pdf/2405.18614
|
||||
- id: PJ6
|
||||
statement: >-
|
||||
능동학습(상호작용·시뮬레이션)이 수동적 학습(비디오·읽기)보다 유지율이 높다는 방향성은 학습
|
||||
과학 일반론에서 반복 확인되나, 인용되는 정량 수치(예: 80%대 20%)는 출처가 불명확한 요약
|
||||
통계이고 성인 개발자 자기주도 학습을 특정한 연구가 아니다 — 방향 참고(E2)로만 쓰고 수치를
|
||||
확정 근거로 쓰지 않는다.
|
||||
grade: E2
|
||||
evidence-refs:
|
||||
- https://transfrinc.com/resources/blog/active-learning-vs-passive-learning-with-technology
|
||||
- id: PJ7
|
||||
statement: >-
|
||||
"시스템 설계 인터뷰 준비"라는 학습 맥락은 ByteByteGo, Grokking the (Modern) System Design
|
||||
Interview, System Design Primer 같은 대형·지속 수익화 제품이 존재할 만큼 크고 이미 검증된
|
||||
수요다. 동시성/격리 수준 주제가 그 커리큘럼에 명시적으로 포함되어 있다.
|
||||
grade: E2
|
||||
evidence-refs:
|
||||
- https://www.designgurus.io/answers/detail/top-concurrency-and-multithreading-for-system-design-interviews
|
||||
- https://www.freecodecamp.org/news/systems-design-for-interviews
|
||||
- id: PJ8
|
||||
statement: >-
|
||||
"직접 만들어보며 배운다"(CodeCrafters의 "Build your own Redis/Git/SQLite")는 실무 심화·
|
||||
숙련 강화 동기의 존재를 보여주는 별개 세그먼트다 — 인터뷰 준비(PJ7)와는 다른 유입 동기
|
||||
(전문성 심화/호기심)로 보인다.
|
||||
grade: E2
|
||||
evidence-refs:
|
||||
- https://codecrafters.io/
|
||||
- id: PJ9
|
||||
statement: >-
|
||||
공식 문서·정의 중심 자료에 대한 반작용으로 만화/zine 형식(Julia Evans, wizardzines)이
|
||||
인기 있다는 사실은, "기존 학습자료가 실패하는 지점"이 상호작용 부재만이 아니라 접근성·
|
||||
친근함의 부재이기도 하다는 것을 시사한다.
|
||||
grade: E2
|
||||
evidence-refs:
|
||||
- https://jvns.ca/
|
||||
- https://wizardzines.com/zines/git/
|
||||
- id: PJ10
|
||||
statement: >-
|
||||
raft.github.io / thesecretlivesofdata.com류의 "각본화된 시나리오 기반 인터랙티브 시각화"가
|
||||
복잡한 분산 프로토콜 학습에 널리 인용되는 성공 사례로 존재한다 — 단일 메커니즘을 깊이
|
||||
학습시키는 접근(depth-first)의 실행 가능성을 뒷받침하는 선례다.
|
||||
grade: E2
|
||||
evidence-refs:
|
||||
- https://raft.github.io/
|
||||
- https://thesecretlivesofdata.com/raft/
|
||||
- id: PJ11
|
||||
statement: >-
|
||||
(주의 신호) SQL Murder Mystery는 스스로를 "SQL을 이미 아는 사람이 재미로 연습하는 게임에
|
||||
더 가까운 것"으로 규정한다 — 내러티브/게임 포장이 무(無)지식 상태의 최초 개념 학습을
|
||||
대체한다는 근거는 아니며, 오히려 실기 연습·재방문 동기에 가깝다. 카테고리 재정의(OPT-C)의
|
||||
내러티브 방향에 대한 반증적 참고.
|
||||
grade: E2
|
||||
evidence-refs:
|
||||
- https://mystery.knightlab.com/
|
||||
- id: PJ12
|
||||
statement: >-
|
||||
이번 조사에서 "팀 온보딩" 맥락(신규 입사자가 기존 시스템의 내부 동작을 학습)을 직접 다루는
|
||||
외부 근거는 찾지 못했다 — 데이터 공백으로 남긴다. "실무 디버깅" 맥락은 fixed-problem-space가
|
||||
실제 장애 확정을 영구 금지하므로, 이 제품 안에서는 "디버깅 스킬을 통제된 시나리오로 연습"하는
|
||||
형태로만 존재할 수 있고 실사고 대응 도구로는 존재할 수 없다(경계 재확인, 확장 제안 아님).
|
||||
grade: E1
|
||||
evidence-refs: []
|
||||
|
||||
v1-premise-verdict:
|
||||
dual-entry:
|
||||
verdict: population-supported--ui-form-unverified
|
||||
reasoning: >-
|
||||
두 사용자 모집단("개념은 알지만 인과를 설명 못 하는 개발자" vs "증상은 봤지만 어떤 메커니즘을
|
||||
검증해야 할지 모르는 개발자")이 실재한다는 것은 외부 근거로 뒷받침된다: 전자는 정의·isolation
|
||||
level 설명 중심 자료(PJ1, PJ7)의 존재 자체가, 후자는 "증상은 보이나 원인 후보를 좁혀야 하는"
|
||||
상황을 정면으로 다루는 실무 문헌(PJ3, PJ4)이 뒷받침한다. 그러나 이 두 모집단을 "첫 화면의
|
||||
선택 카드 두 개"로 분리해 보여주는 UI 해법 자체가 시작률·이해도를 높이는지 낮추는지에 대한
|
||||
근거는 이번 조사에서도 찾지 못했다 — v1 자체 dissent("사용자 실측 전에는 두 카드가 실제
|
||||
시작률을 높이는지 알 수 없다", EXEC-CEO-20260718T111108Z)가 그대로 유효하다. 판정: 문제
|
||||
(두 모집단의 실재)는 지지되나, 해법 형태(선택 카드 UI)는 지지도 반증도 되지 않는다 — 실측
|
||||
전까지 미해결.
|
||||
evidence-refs:
|
||||
- PJ1
|
||||
- PJ3
|
||||
- PJ4
|
||||
- PJ7
|
||||
- hyeonworks/completion-records/hyeonworks-vnext-v1/EXEC-CEO-20260718T111108Z.report.yaml
|
||||
five-step-loop:
|
||||
verdict: components-analogous--whole-loop-unverified-for-domain
|
||||
reasoning: >-
|
||||
Predict/Observe/Explain은 POE(Predict-Observe-Explain) 교수법과 구조적으로 유사하며, 그
|
||||
문헌은 오개념이 67%→7.4%로 줄었다고 보고한다(학교 과학교육 도메인). Compare(기대값-실제값
|
||||
명시 대조)는 근본원인분석 실무에서 강조하는 "반증 가능한 가설 없이 코드를 만지지 말라"(PJ4)는
|
||||
습관과 부합한다. Transfer는 productive-failure/far-transfer 문헌(Kapur)이 보고하는 "구조화된
|
||||
실패(struggle) 후 전이 과제가 개념 이해·새 문제 전이를 높인다"는 결과와 방향이 일치한다.
|
||||
그러나 이 근거들은 전부 (a) 정규 교육과정(교사 개입이 있는 교실, 대부분 K-12/대학 도메인)에서
|
||||
나왔고, (b) 자기주도·시간압박 상태의 성인 개발자가 감독 없이 온라인에서 완주하는 상황을 직접
|
||||
다루지 않으며, (c) "정확히 5단계, 이 순서·이 세분화"가 다른 변형(3~4단계)보다 낫다는 비교
|
||||
연구는 찾지 못했다. 판정: 각 단계가 임의의 설계가 아니라는 유추적 근거는 있으나, 이 도메인·이
|
||||
사용자층에 대한 5단계 고정 루프 자체의 직접 검증은 없다 — v1이 이를 "확정"으로 취급한 것은
|
||||
근거의 강도를 실제보다 높게 표현한 것이다.
|
||||
evidence-refs:
|
||||
- https://onlinelibrary.wiley.com/doi/10.1111/cogs.12107
|
||||
- https://files.eric.ed.gov/fulltext/EJ1272872.pdf
|
||||
- PJ4
|
||||
|
||||
option-evaluations:
|
||||
- option-id: OPT-A-DEPTH-FIRST
|
||||
target-user-and-painful-job: >-
|
||||
이미 Lost-Update류 이상을 마주쳤거나(증상 입구) 개념은 아는데(개념 입구) 왜 값이 사라지는지
|
||||
스스로도 남에게도 설명하지 못하는 개발자. 실제 장애를 진단하려는 게 아니라 "이 메커니즘 하나는
|
||||
완전히 설명할 수 있다"는 확신(인터뷰·코드리뷰·팀 설명 상황에서 재현 가능한 이해)을 원한다.
|
||||
learning-outcome-hypothesis: >-
|
||||
단일 주제에 대한 깊은 predict/observe/compare/explain/transfer 반복이 productive-failure/
|
||||
far-transfer 문헌이 보고하는 "새 사례로의 전이" 효과를 낼 가능성이 있다(가설, 미검증).
|
||||
Lost Update는 여러 2차 자료가 "동시성 이상현상을 가르치는 대표 예시"로 반복 인용하는 주제라
|
||||
다른 동시성 버그로의 전이 가능성이 상대적으로 높은 소재로 보인다.
|
||||
key-tradeoffs:
|
||||
- 깊이를 얻는 대신 도달범위를 잃는다 — "당장 내일 인터뷰"처럼 넓은 커버리지가 급한 사용자에게
|
||||
단일 주제 제품은 매력이 낮다.
|
||||
- 기존 대체재(PJ7의 ByteByteGo·Grokking·System Design Primer)가 이미 폭넓은 인터뷰 대비
|
||||
콘텐츠를 제공하므로, A는 그 수요와 정면 경쟁하지 않고 호기심/숙련 세그먼트(PJ8)에 기대야
|
||||
한다.
|
||||
evidence-refs: [PJ3, PJ4, PJ10, "https://onlinelibrary.wiley.com/doi/10.1111/cogs.12107"]
|
||||
unresolved-assumptions:
|
||||
- "단일 주제 완성도"가 성인 자기주도 학습자의 전이·유지에 실제로 유의미한 차이를 만드는지는
|
||||
이 도메인에서 검증된 바 없다.
|
||||
- 두 번째·세 번째 메커니즘으로 확장할 때 동일한 완성도를 유지할 수 있는지는 LENS-CUSTOMER
|
||||
근거만으로 판단할 수 없다(운영·콘텐츠 비용은 다른 렌즈 소관).
|
||||
kill-criteria:
|
||||
- "(가설, 미검증) 학습자 다수가 Transfer 단계에서 다른 사례로 일반화하지 못하고 암기한 단일
|
||||
사례만 재현한다면 depth-first의 핵심 전제(전이)가 성립하지 않는다."
|
||||
- "(가설, 미검증) 도달범위 부족으로 초기 유입이 임계치 이하로 떨어지면(예: 인터뷰 준비
|
||||
세그먼트가 전혀 붙지 않으면) depth 단독 전략의 성장경로가 막힌다."
|
||||
|
||||
- option-id: OPT-B-BREADTH-CATALOG
|
||||
target-user-and-painful-job: >-
|
||||
여러 동시성/DB 메커니즘을 인터뷰·설계 검토를 앞두고 일관된 분류체계로 빠르게 훑고 싶은
|
||||
개발자. "이 개념도 저 개념도 알아야 하는데 어디서부터 봐야 할지 모른다"는 항해(navigation)
|
||||
문제가 핵심 painful job이다.
|
||||
learning-outcome-hypothesis: >-
|
||||
ByteByteGo·Grokking류 기존 카탈로그는 대체로 정적/애니메이션 설명(수동적) 형태다. hyeonworks가
|
||||
각 항목에서도 predict/observe 상호작용 루프를 유지한다면 "능동학습이 수동학습보다 유지율이
|
||||
높다"는 일반 방향성(PJ6, 정량 미확정) 위에서 차별화될 수 있다는 가설. 단, 이 인터뷰-대비
|
||||
세그먼트가 실제로 상호작용 깊이를 요구하는지(시간 압박 상황에서는 속도가 더 중요할 수도 있음)는
|
||||
검증되지 않았다.
|
||||
key-tradeoffs:
|
||||
- 도달범위(PJ7의 크고 입증된 수요)를 얻는 대신, 항목마다 동일한 인터랙티브 깊이를 유지하지
|
||||
못하면 카탈로그가 fixed-problem-space가 애초에 "실패"라고 규정한 정적 자료로 퇴행할 위험이
|
||||
있다.
|
||||
- 이미 강한 기존 대체재가 있는 시장에 진입하므로, 사용자가 기존 자료로 "충분히 해결됨"을
|
||||
느끼는 상황에서 전환 이유를 사용자 관점에서 설명하기 어렵다.
|
||||
evidence-refs: [PJ1, PJ6, PJ7]
|
||||
unresolved-assumptions:
|
||||
- 인터뷰 준비 사용자가 "빠른 훑기"보다 "깊은 상호작용"을 실제로 선호하는지는 검증되지 않았다
|
||||
(시간 압박 상황에서는 얕고 빠른 콘텐츠를 선호할 수 있다는 반대 가설도 배제하지 못한다).
|
||||
- 카탈로그 각 항목이 v1과 동일한 완성도(로컬 정적 앱, zero dependency, E2E 검증)를 유지할 수
|
||||
있는지는 사용자 관점만으로 판단할 수 없다.
|
||||
kill-criteria:
|
||||
- "(가설, 미검증) 사용자 다수가 카탈로그 진입 화면에서 자신의 문제와 관련된 항목을 짧은 시간
|
||||
안에 고르지 못하고 이탈한다면 항해 문제 해결이라는 핵심 가설이 성립하지 않는다."
|
||||
- "(가설, 미검증) 항목별 상호작용 깊이가 얕아져 정적 자료와 체감상 구별되지 않는다면
|
||||
(사용자가 '결국 또 다른 설명 블로그'로 인식하면) 차별화 가설이 무너진다."
|
||||
|
||||
- option-id: OPT-C-CATEGORY-REDEF
|
||||
target-user-and-painful-job: >-
|
||||
현재로선 LENS-CUSTOMER 근거만으로 특정할 수 없음. 두 방향의 후보만 근거상 관찰된다: (1)
|
||||
공식 문서의 딱딱함·진입장벽에 대한 반작용으로 존재하는 "친근한 압축 설명" 수요(PJ9) — 정적
|
||||
콘텐츠로 회귀할 위험을 동반, (2) 이미 기초 지식을 가진 사용자의 실기 연습/재방문 수요(PJ8,
|
||||
PJ11) — 무지식 상태의 최초 학습을 대체하지 못하는 도구로 보인다.
|
||||
learning-outcome-hypothesis: >-
|
||||
두 후보 중 어느 쪽을 택하느냐에 따라 학습성과 가설이 정반대로 갈린다: (1)을 따르면 상호작용
|
||||
엔진을 축소하고 압축 설명으로 접근장벽을 낮추는 가설, (2)를 따르면 상호작용 엔진에 내러티브
|
||||
스킨만 입혀 기억 가능성·재방문을 높이는 가설이다. 이 둘을 구분할 근거가 없어 단일 학습성과
|
||||
가설을 세울 수 없다.
|
||||
key-tradeoffs:
|
||||
- 가장 넓은 재정의 자유를 얻는 대신 가장 큰 연구 부채(무엇을 만들지조차 미확정)를 진다 —
|
||||
ground-boundary가 "무제한 재정의는 아님"이라 명시한 이유와 부합한다.
|
||||
- 카테고리를 열면 fixed-problem-space(정적 문서로 이해 어려운 개발자)와의 연결이 느슨해질
|
||||
위험이 있다 — 문제공간을 벗어나지 않으면서 카테고리만 바꾸는 것이 실제로 가능한지는 이번
|
||||
조사로 결론 내리지 못했다.
|
||||
evidence-refs: [PJ8, PJ9, PJ11]
|
||||
unresolved-assumptions:
|
||||
- 이 옵션이 상호작용 학습 엔진을 유지하는지 포기하는지 자체가 정의되지 않았다.
|
||||
- target-user가 특정되지 않아 kill-criteria를 사용자 행동으로 조작적 정의할 수 없다.
|
||||
kill-criteria:
|
||||
- "/decide 전까지 A/B만큼 구체적인 target-user와 painful job 한 문장을 제시하지 못하면,
|
||||
이 옵션은 LENS-CUSTOMER 관점에서 반증 불가능하므로 다른 옵션과 동일 기준으로 비교될 수
|
||||
없다(채택 반려 대상)."
|
||||
|
||||
- option-id: OPT-D-STAGED
|
||||
admission-verdict: not-independently-supported-by-LENS-CUSTOMER
|
||||
reasoning: >-
|
||||
본 조사가 발견한 것은 A와 B가 서로 다른, 실재하는 유입 동기(호기심·숙련 대 인터뷰 준비, PJ7·
|
||||
PJ8)를 겨냥한다는 "세그먼트 분리" 사실이다. 이 사실은 논리적으로 "그러니 단계적으로 둘 다
|
||||
한다"(D)와 "그러니 하나의 세그먼트를 골라 잘 한다"(A 또는 B 단독)를 동등하게 지지한다 —
|
||||
세그먼트가 다르다는 사실 자체가 단계 전략을 요구하지 않는다. ground-boundary의 admission-rule
|
||||
("A와 B를 절충했다는 이유만으로 hybrid를 기본 추천하지 않는다")에 따라, 이 관찰만으로는
|
||||
LENS-CUSTOMER가 D를 독립적으로 도출하지 않는다 — 비채택. 다만 세그먼트 분리 사실 자체는
|
||||
자원배분·수익 판단을 하는 다른 렌즈(STR-ANALYST/PROD-PM/EXEC-CFO 등)가 단계 전략의 독립적
|
||||
근거로 쓸 수 있는 입력이므로 findings(PJ7, PJ8)로 남긴다.
|
||||
evidence-refs: [PJ7, PJ8, PJ10]
|
||||
|
||||
evidence-urls:
|
||||
- https://www.baeldung.com/cs/concurrency-control-lost-update-problem
|
||||
- https://www.abstractalgorithms.dev/lost-update-database-anomaly
|
||||
- https://www.rceenetworks.com/a-software-race-condition-is-hard-to-debug/
|
||||
- https://bugpilot.io/2026/05/28/debugging-concurrency-bugs-race-condition-resolution-guide/
|
||||
- https://www.seangoedecke.com/debugging/
|
||||
- https://www.freecodecamp.org/news/why-is-debugging-hard-how-to-develop-an-effective-debugging-mindset/
|
||||
- https://onlinelibrary.wiley.com/doi/10.1111/cogs.12107
|
||||
- https://files.eric.ed.gov/fulltext/EJ1272872.pdf
|
||||
- https://raft.github.io/
|
||||
- https://thesecretlivesofdata.com/raft/
|
||||
- https://mystery.knightlab.com/
|
||||
- https://jvns.ca/
|
||||
- https://wizardzines.com/zines/git/
|
||||
- https://codecrafters.io/
|
||||
- https://www.designgurus.io/answers/detail/top-concurrency-and-multithreading-for-system-design-interviews
|
||||
- https://www.freecodecamp.org/news/systems-design-for-interviews
|
||||
- https://www.cs.uct.ac.za/mit_notes/software/htmls/ch05s08.html
|
||||
- https://arxiv.org/pdf/2405.18614
|
||||
- https://transfrinc.com/resources/blog/active-learning-vs-passive-learning-with-technology
|
||||
|
||||
report-header:
|
||||
bottom-line: >-
|
||||
학습 painful job(정적 자료로는 동시성 상태변화·인과를 이해하기 어렵고, 증상만 봤을 때 무엇을
|
||||
검증해야 할지 모르는 상황)은 외부 2차 근거로 지지된다. 그러나 v1이 확정한 두 전제는 지지 강도가
|
||||
다르다: dual-entry는 "두 사용자 모집단이 실재한다"는 점만 지지되고 "선택 카드 UI가 시작률을
|
||||
높인다"는 점은 여전히 미검증(v1 dissent 그대로 유효)이며, 5단계 고정 루프는 각 단계가 인접
|
||||
학습과학(POE·productive failure·근본원인분석)에 유추적으로 근거하나 이 도메인·사용자층에 대한
|
||||
5단계 전체의 직접 검증은 없다. A(깊이)와 B(폭)는 서로 다른 실재 유입 동기(호기심·숙련 대 인터뷰
|
||||
준비)를 겨냥하고 후자는 강한 기존 대체재(ByteByteGo·Grokking·System Design Primer)가 이미
|
||||
점유하고 있다. C(카테고리 재정의)는 target-user와 painful job이 특정되지 않아 LENS-CUSTOMER
|
||||
관점에서 아직 반증 불가능한 옵션으로 남는다. D는 A/B의 세그먼트 분리 관찰만으로는 LENS-CUSTOMER가
|
||||
독립적으로 도출하지 않는다(비채택, admission-rule 적용). 옵션 선택은 하지 않는다.
|
||||
decision-needed:
|
||||
needed: false
|
||||
approver: null
|
||||
confidence:
|
||||
value: Med
|
||||
derived-from: evidence
|
||||
risks:
|
||||
- >-
|
||||
모든 painful-job·학습효과 근거는 2차 자료(외부 실무문서·학계 연구)이며 hyeonworks 실사용자
|
||||
인터뷰·사용성 테스트는 0건이다 — 실측 전에는 어떤 옵션도 사용자 검증됐다고 볼 수 없다.
|
||||
- >-
|
||||
POE·productive-failure 근거의 원 도메인은 K-12/대학 정규 교육(교사 개입이 있는 교실)이며,
|
||||
자기주도·시간압박 상태의 성인 개발자 대상 무감독 온라인 학습으로의 전이는 검증되지 않았다.
|
||||
- >-
|
||||
v1 dissent("사용자 실측 전에는 두 카드가 실제 시작률을 높이는지 알 수 없다")는 이번 조사로도
|
||||
해소되지 않았다 — dual-entry의 UI 형태 자체를 지지·반증하는 근거가 여전히 없다.
|
||||
- >-
|
||||
OPT-C는 target-user painful job이 특정되기 전까지 LENS-CUSTOMER 관점에서 반증 불가능한
|
||||
옵션으로 남아, 다른 옵션과 동일 기준 비교가 어렵다.
|
||||
- >-
|
||||
OPT-B의 핵심 유입 동기로 식별한 "인터뷰 준비"는 ByteByteGo·Grokking·System Design Primer 등
|
||||
강한 기존 대체재가 있어, 진입 자체만으로는 사용자 관점에서 전환 이유가 서지 않는다(경쟁 전략
|
||||
판단은 다른 렌즈 소관, 여기서는 사용자 인지 리스크로만 기록).
|
||||
- >-
|
||||
"팀 온보딩" 학습 맥락은 이번 외부 조사에서 직접 근거를 찾지 못한 공백으로 남는다(PJ12).
|
||||
evidence:
|
||||
- source-uri: hyeonworks/design/hyeonworks-vnext-v2/ground-boundary.yaml
|
||||
grade: E3
|
||||
note: fixed-problem-space target-user 정의·mandated-option-set·evidence-protocol(E2 상한 지시)의 원문.
|
||||
- source-uri: hyeonworks/completion-records/hyeonworks-vnext-v1/EXEC-CEO-20260718T111108Z.report.yaml
|
||||
grade: E3
|
||||
note: >-
|
||||
v1 dissent 원문("사용자 실측 전에는 두 카드가 실제 시작률을 높이는지 알 수 없다" 등)과
|
||||
OPT-DUAL-PORTAL 선택 근거 — 이번 사이클의 반증 대상.
|
||||
- source-uri: hyeonworks/completion-records/hyeonworks-vnext-v2/EXEC-CEO-20260720T110525Z.report.yaml
|
||||
grade: E3
|
||||
note: v2 intake — v1 dissent를 이번 사이클의 반증 대상으로 명시 승계.
|
||||
- source-uri: hyeonworks/design/hyeonworks-vnext-v1/direction-input-brief.yaml
|
||||
grade: E3
|
||||
note: v1 core-users(primary/secondary) 정의 — 이번 조사의 대조 baseline.
|
||||
- source-uri: hyeonworks/app/README.md
|
||||
grade: E3
|
||||
note: v1 released 실물의 dual-entry + 5단계 루프 실제 구현 확인(status quo 비교 기준).
|
||||
- source-uri: https://www.abstractalgorithms.dev/lost-update-database-anomaly
|
||||
grade: E2
|
||||
note: "PJ3 — 에러 없이 성공 보고, 최종 상태에만 손상이 보이는 Lost Update의 실제 서술."
|
||||
- source-uri: https://www.rceenetworks.com/a-software-race-condition-is-hard-to-debug/
|
||||
grade: E2
|
||||
note: "PJ2 — 비결정적 타이밍 재현 불가가 정적 리딩/디버거의 한계로 이어진다는 근거."
|
||||
- source-uri: https://www.seangoedecke.com/debugging/
|
||||
grade: E2
|
||||
note: "PJ4 — 반증 가능한 가설 없이 코드를 만지지 말라(Predict 단계의 실무적 정당화)."
|
||||
- source-uri: https://onlinelibrary.wiley.com/doi/10.1111/cogs.12107
|
||||
grade: E2
|
||||
note: "Kapur productive failure — Transfer 단계의 유추적 근거(도메인 전이 미검증)."
|
||||
- source-uri: https://files.eric.ed.gov/fulltext/EJ1272872.pdf
|
||||
grade: E2
|
||||
note: "POE(Predict-Observe-Explain) 오개념 감소 보고 — Predict/Observe/Explain 구조의 유추적 근거."
|
||||
- source-uri: https://raft.github.io/
|
||||
grade: E2
|
||||
note: "PJ10 — 단일 복잡 프로토콜의 각본화된 인터랙티브 시각화 선례(depth-first 실행 가능성)."
|
||||
- source-uri: https://www.designgurus.io/answers/detail/top-concurrency-and-multithreading-for-system-design-interviews
|
||||
grade: E2
|
||||
note: "PJ7 — 인터뷰 준비 맥락에서 동시성/격리 주제가 이미 확립된 커리큘럼임을 보여줌."
|
||||
- source-uri: https://codecrafters.io/
|
||||
grade: E2
|
||||
note: "PJ8 — '직접 만들어보며 배운다' 숙련 심화 세그먼트의 존재."
|
||||
- source-uri: https://jvns.ca/
|
||||
grade: E2
|
||||
note: "PJ9 — 공식 문서 대비 친근한 압축 설명 수요의 존재(OPT-C 후보 방향 1)."
|
||||
- source-uri: https://mystery.knightlab.com/
|
||||
grade: E2
|
||||
note: "PJ11 — 내러티브/게임 포장은 대체로 기존 지식 보유자의 실기 연습용(OPT-C 후보 방향 2, 주의 신호)."
|
||||
Reference in New Issue
Block a user