- use-after-destroy 검증 안전망: rbvm 영역/quad-debug 스코프 밖으로 최종 기각, Ref 사용 관례(useRef급 스코프) 명문화 - :With 동적 의존성: State immutable 가정과 모순되어 의도적 비지원 확정 - Operator 콤비네이터 카탈로그: 서브 에이전트 외부 리서치로 포함 범위/ 네임스페이스 이름 근거 보강(Clamp/Min/Max 추가 후보, 비트/비교/Sub/Div 드랍 후보, Debounce/Throttle 별도 질문으로 분리) - State 용어 정리 최종 확정(현재 이름 유지), Pipe 기각 근거·Compute vs Computed 네이밍 근거 문서화, :With와 Tag/Modifier clone 체이닝 혼동 방지 경고 추가 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VVG74qV2nQVykhvMRQW2UC
3.2 KiB
2026-08-12 스물한 번째 세션 — 네이밍 정리 후속: Pipe 기각 근거, Compute vs Computed, :With/Tag·Modifier clone 대조 명문화
배경: State 이름 확정(스무 번째 세션) 이후 사용자가 두 가지를 더
검토·기록 요청.
:With가 Tag/Modifier의 clone 체이닝과 혼동될 여지 (직전 턴)
사용자가 :With의 clone 여부를 스스로 점검("cloned로 안 보이긴 하는데")
하며 문서화만 좀 더 신경 쓰면 좋겠다고 언급. bind-system-plan.md의
":With도 새 State 노드" 절 자체는 이미 clone이 아님을 확정해뒀지만,
Tag(:Added/:Removed)·Modifier(:Apply)가 겉보기엔 같은 :
체이닝 문법을 쓰면서 실제로는 clone-then-return이라는 대조가 문서에
명시적으로 없었던 갭 — 헷갈리기 쉬운 지점이라 판단해 같은 절에 "⚠️ 문서
읽을 때 혼동 주의" 문단으로 대조 추가(clone 계열=Tag/Modifier, 새-노드
계열=State의 With/Compute).
Pipe — State 대안으로 검토했으나 기각(사용자가 기각 근거 제시)
- "캐시한다"는 State의 실제 동작이 파이프라는 비유와 안 맞음 — 파이프는 통과시키는 채널 이미지라 값을 들고/캐시한다는 감각이 잘 안 붙음.
- 파이프는 흐름/연결의 이미지라, State가 실제로는 각각 주소를 가진 독립된 그래프 노드 단위라는 사실과 안 맞음 — "노드"로 보기 애매해짐.
Compute vs Computed — 사용자 직감, Claude 동의 + 근거 보강
사용자 직감: quad의 다른 것들(Tag/Modifier)은 immutable하고 non-lazy해서
호출 즉시 확정되는데, :Compute가 만드는 노드는 fn을 등록해둘 뿐 실제
계산(compute)은 나중에 일어나는 것 같다 — 그러니 진짜 "compute'd"(완료된
상태)가 아닌 것 같다는 느낌.
Claude 검토 — 동의, 근거를 한 겹 더 정확하게 다듬음: Vue computed()/
Svelte $derived도 실제로는 lazy이고 그 이름을 그대로 쓰는 게 각자
생태계에서 문제없음 — 그러니 "-ed는 항상 eager를 뜻한다"는 보편 법칙은
아님. 하지만 quad 자기 코퍼스 안에서는 다름: Tag.Added/Removed,
Modifier.Overridden이 이미 "-ed 어미 = clone 후 즉시 확정된 값"이라는
관례를 선점해뒀음(tag-plan.md, "Add/Remove로 쓰면 뮤테이션 API처럼
보이기 때문"). 그 관례가 이미 있는 상태에서 lazy한 State 노드에 같은
어미(Computed)를 재사용하면 quad 자신의 기존 신호와 충돌해 "이미 계산
끝난 값"으로 오해하기 쉬움 — 다른 생태계와의 비교가 아니라 quad 내부
일관성 문제. 그래서 Compute(동사 원형, "계산을 등록/설정"이라는 뜻)가
Computed보다 정확.
반영
base/bind-system-plan.md: ":With도 새 State 노드" 절에 clone 대조 경고 문단 추가. "여러 Store 값을 묶어 파생값 만들기" 절에 "네이밍 —Compute가-ed가 아닌 이유" 소절 신설..claude/question.md:State해소 항목에Pipe기각 근거 +ComputevsComputed근거를 추가해 보강.