- 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
49 lines
3.2 KiB
Markdown
49 lines
3.2 KiB
Markdown
# 2026-08-12 열여덟 번째 세션 — `framework-comparison-findings.md` 남은 두 항목 "고칠 필요 없음"으로 최종 판단
|
|
|
|
**배경**: `question.md` 낮은 우선순위 목록에 남아있던
|
|
`framework-comparison-findings.md`의 "고칠 만한 것" 2번 절 두 항목
|
|
(use-after-destroy 검증 안전망 부재, `:With`의 정적 의존성/동적 With
|
|
미지원)이 여전히 "사용자 판단 전" 상태였음. 사용자가 이번 세션에서 둘 다
|
|
명확한 근거를 들어 "고칠 필요 없음, 의도된 설계"로 확정.
|
|
|
|
## use-after-destroy 검증 안전망
|
|
|
|
사용자 논지: quad는 `bindLifetime`으로 대부분의 연산을 GC-native하게
|
|
지원하도록 이미 설계돼 있고, 말단 leaf에 직접 연결하지 않는 이상 Instance를
|
|
직접 관리하는 건 quad가 처리하는 영역이 아님. 만일을 위한 부작용 정리
|
|
수단으로 `Effect`도 이미 제공됨. Destroy 시 정리해야 할 게 있다면, 그
|
|
부작용을 만들어낸 코드가 처리할 책임을 짐(Ref의 "Destroy 무관" 철학과
|
|
동일선상). 만약 quad가 이 영역에서 에러를 내주는 방향으로 간다면, 그건
|
|
언제나 명시적 `Destroy()` 호출을 강제하게 되어버려 "가볍게 GC가 알아서
|
|
치울 때 같이 처리되도록 놔두고 네이티브가 처리 성능을 올려주는" 아키텍처
|
|
전체와 모순됨. 완전한 UB 영역으로 두는 게 정확한 아키텍처 — quad가 할 수
|
|
있는 유일한 대응은 유저가 그런 행동을 안 하도록 문서화로 돕는 것뿐.
|
|
|
|
## `:With`의 동적 의존성(동적 With 미지원)
|
|
|
|
사용자 논지: 동적 의존성을 지원한다는 것 자체가 "State는 immutable하다"는
|
|
현재 가정을 깨뜨림 — 의존성 목록이 바뀔 수 있다면 그 변경이 후행하는 다른
|
|
노드들 전체에 영향을 미치는 걸 허용해야 하는데, 이건 quad가 계속 원치
|
|
않아온 것. 애초에 동적 의존성이라는 것 자체가 사용 사례가 사실상 없음 —
|
|
React를 봐도 `useMemo(fn, [...])`의 deps 리스트를 동적으로 조립하는 경우는
|
|
거의 없고(그러면 그 훅이 거의 항상 실행돼버려 메모이제이션 의미가 없어짐),
|
|
보통 정적으로 나열함. 억지로 끼워넣는 건 무리 — 의도적 비지원 요소로 확정.
|
|
(State 이외의 다른 방법으로 유사한 걸 지원할 수 있는지 리서치는 나중에
|
|
해볼 수 있으나, 이미 결론에 다다른 현재 State 설계에 손을 대는 방향은
|
|
아님.)
|
|
|
|
## 반영
|
|
|
|
- `research/framework-comparison-findings.md`: 2번 절(고칠 만한 것)에서
|
|
두 항목 제거, 3번 절(못 고치는 것 — 의도된 트레이드오프)로 근거와 함께
|
|
이전. "다음 단계" 절도 "해소됨"으로 갱신 — 이 문서는 더 이상 사용자
|
|
판단 대기 항목이 없음.
|
|
- `.claude/question.md`: 낮은 우선순위 목록의 해당 항목을 `[해소됨]`으로
|
|
표시.
|
|
|
|
## 부수 확인 (문서 반영 불필요, 현황 재확인만)
|
|
|
|
사용자가 같은 메시지에서 `quad-v1-compat`/`quad-debug`는 여전히
|
|
`quad-base`/`quad-roblox` 완성 전에 착수 가능해 보이지 않는다고 재확인 —
|
|
기존 `CLAUDE.md`/`question.md`가 이미 못박아둔 우선순위와 정확히 일치,
|
|
변경 없음.
|