research: 스크롤 최적화(quad-roblox-fastscroll)/스프링(quad-spring) 아이디어 메모 추가

서명을 위해 재커밋

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
qwreey-agent-selene 2026-08-18 10:06:21 +09:00
parent 40a5daf694
commit 0942c1ca2c
No known key found for this signature in database
4 changed files with 95 additions and 0 deletions

View file

@ -92,6 +92,8 @@
| `quad-recursive-acronym.md` | **[2026-08-14 신설]** GNU/WINE류로 `Quad`를 재귀 약어화하는 카피 브레인스토밍 — 설계 결정도 착수 게이팅도 아니고 나중에 README.md 헤딩 등에 쓸 캐치프레이즈 후보 모음. 자학 개그 방향(기각)과 지연평가/재귀·커링/펑터/클로저를 자랑하는 방향(채택 후보, 미확정) 정리 | 하 — 카피 소재, 설계 상의 필요 없음. 사용자가 최종 문구 고르면 반영 | | `quad-recursive-acronym.md` | **[2026-08-14 신설]** GNU/WINE류로 `Quad`를 재귀 약어화하는 카피 브레인스토밍 — 설계 결정도 착수 게이팅도 아니고 나중에 README.md 헤딩 등에 쓸 캐치프레이즈 후보 모음. 자학 개그 방향(기각)과 지연평가/재귀·커링/펑터/클로저를 자랑하는 방향(채택 후보, 미확정) 정리 | 하 — 카피 소재, 설계 상의 필요 없음. 사용자가 최종 문구 고르면 반영 |
| `v1-compat-plan.md` | v1 하위호환(compat) 레이어 — `quad-roblox-v1-compat` 패키지, v2→v1 단방향 브리지(`state:Observer()`+v1 프로퍼티 재대입), v2-in-v1/v1-in-v2 두 임베딩 방향의 기술 규칙까지 확정. quad2-try의 `quad-compat`은 빈 폴더로 실제 시도된 적 없었음을 확인 | 하 — Slot이 foreign Instance를 어떻게 다루는지만 Slot 코어 구현 시점까지 미결 | | `v1-compat-plan.md` | v1 하위호환(compat) 레이어 — `quad-roblox-v1-compat` 패키지, v2→v1 단방향 브리지(`state:Observer()`+v1 프로퍼티 재대입), v2-in-v1/v1-in-v2 두 임베딩 방향의 기술 규칙까지 확정. quad2-try의 `quad-compat`은 빈 폴더로 실제 시도된 적 없었음을 확인 | 하 — Slot이 foreign Instance를 어떻게 다루는지만 Slot 코어 구현 시점까지 미결 |
| `doc-include-plan.md` | **[2026-08-14 신설]** 문서 stale 감소용 include 도구 `doc-include.py`(가칭) — 원본 파일에 `<!--#summary-->` 류 마커로 요약 구간을 표시해두면 인용하는 문서가 그 구간을 기계적으로 추출해 붙여넣게 하는 도구. `doc-check.py`(사후 탐지)와 짝을 이루는 사전 차단 장치. AsciiDoc tagged include/markdown-magic이 선례, build vs buy 검토 후 Python 표준 라이브러리로 직접 제작(~100줄) 채택. 파일럿은 `.claude/session-summary.md``.claude/session/*.md` 요약 마커부터(CLAUDE.md 분할로 목적지가 "통째로 생성되는 파일"이 돼 단방향 생성으로 단순화됨) | 하 — M0/설계 게이트와 무관한 메타 도구. **[2026-08-16 기준]** 플랜 초안 단계, 열린 질문 미해소(소스: 이 문서의 "열린 질문" 절) | | `doc-include-plan.md` | **[2026-08-14 신설]** 문서 stale 감소용 include 도구 `doc-include.py`(가칭) — 원본 파일에 `<!--#summary-->` 류 마커로 요약 구간을 표시해두면 인용하는 문서가 그 구간을 기계적으로 추출해 붙여넣게 하는 도구. `doc-check.py`(사후 탐지)와 짝을 이루는 사전 차단 장치. AsciiDoc tagged include/markdown-magic이 선례, build vs buy 검토 후 Python 표준 라이브러리로 직접 제작(~100줄) 채택. 파일럿은 `.claude/session-summary.md``.claude/session/*.md` 요약 마커부터(CLAUDE.md 분할로 목적지가 "통째로 생성되는 파일"이 돼 단방향 생성으로 단순화됨) | 하 — M0/설계 게이트와 무관한 메타 도구. **[2026-08-16 기준]** 플랜 초안 단계, 열린 질문 미해소(소스: 이 문서의 "열린 질문" 절) |
| `fastscroll-plan.md` | **[2026-08-18 신설]** 사용자 아이디어 메모 — 완전 외부 패키지 `quad-roblox-fastscroll`(리스트/그리드 내 상대 위치 계산으로 움직일 요소만 갱신, 배경의 빈 공간만 스크롤). 가상 레이아웃 유틸이 선행 요구사항으로 보임. 설계 논의 전, 아직 아이디어 단계 | 최하 — 사용자가 "quad가 잘 작동하게 될 때" 직접 검토하겠다고 후순위 지정. 선행 확인 필요 사항(`Visible=false`일 때 `AbsoluteSize`/`AbsolutePosition` 갱신 여부)은 Roblox Studio 실측 필요 |
| `spring-plan.md` | **[2026-08-18 신설]** 사용자 아이디어 메모 — 스프링 물리 기반 지속 업데이트 프리미티브(`quad-spring`), 이전 상태와 비교해 스프링 연산을 수행하는 중간 핸들러. 참고 구현 [qwreey/spring.lua](https://github.com/qwreey/spring.lua) 사용 가능 여부 확인 필요. 확정 `Tween<T>` 모델과는 별개 트랙 — `quad-base``onStep`류 후킹 인터페이스로 얹을지, 엔진별 `quad-roblox-spring`으로 각자 구현할지, `Source<number>` 확장 primitive로 둘지 미정 | 최하 — "모든게 완성된 후, 별도 모듈로 분화"라고 사용자가 직접 명시 |
## `archive/` — 완료됐거나 완전히 뒤집힌 것, 능동 참고 불필요 ## `archive/` — 완료됐거나 완전히 뒤집힌 것, 능동 참고 불필요

View file

@ -0,0 +1,37 @@
# `quad-roblox-fastscroll` — 스크롤 최적화 유틸 (아이디어 메모)
**상태**: research 착수 전 — 사용자 노트를 그대로 옮겨 적은 **아이디어
메모**. 설계 논의는 아직 없었고, 사용자가 "quad가 잘 작동하게 될 때"
직접 검토하겠다고 못박은 **아주 나중** 항목. 지금은 잊지 않게 적어두는
것 자체가 목적.
## 아이디어
리스트/그리드 컨테이너 안에서 각 항목의 상대 위치를 구해, **실제로
움직여야 하는 것만** 같이 움직이게 하는 유틸. 스크롤 자체는 배경 위의
**빈 공간만** 스크롤시키고, 그 결과 absolute position이 필요한 요소만
갱신되게 한다 — 이 방향이 성립하려면 항목들의 원래 레이아웃을 계산해줄
**가상 레이아웃(virtual layout) 유틸**이 선행 요구사항으로 보인다(원문:
"이걸 위하여 가상 레이아웃 유틸이 필요하긴 함").
## 패키지 경계
**완전 외부 요소**로 `quad-roblox-fastscroll`(quad 코어/quad-roblox 코어와
분리된 별도 패키지) — 원문 그대로. quad 코어 설계에 영향을 주는 항목이
아니라, quad 위에 얹는 최적화 유틸리티로 스코프됨.
## 선행 확인 필요 — 실측 전제
사용자가 명시적으로 지목한 첫 확인 사항: **`Visible = false`일 때
`AbsoluteSize`/`AbsolutePosition`이 계속 업데이트되는지 여부**부터
확인해야 한다. 이 최적화 전략 전체가 "안 보이는 요소는 레이아웃 계산에서
빼도 좌표가 정확한가"에 의존하므로, Roblox UI 레이아웃 엔진이
`Visible = false`인 인스턴스도 계속 계산하는지 아니면 멈추는지가 접근
방식을 가른다. 이건 `.claude/luau-test/`류 추론이 아니라 **Roblox Studio
실측**이 필요한 항목 — quad-doc-auditor/luau-test 스파이크로 대신할 수
없고, MCP 연결 이후 사용자가 직접(또는 요청 시) 확인해야 함.
## 우선순위
최하 — 사용자가 "아주 나중에 quad가 잘 작동하게 될 때 내가 검토해볼
예정"으로 직접 후순위 지정. 지금 단계에서 추가 설계 논의 불필요.

View file

@ -0,0 +1,48 @@
# `quad-spring` — 스프링 물리 기반 지속 업데이트 프리미티브 (아이디어 메모)
**상태**: research 착수 전 — 사용자 노트를 그대로 옮겨 적은 **아이디어
메모**. 설계 논의는 아직 없었고, 사용자가 "모든게 완성된 후, 별도
모듈로 분화"라고 직접 못박은 **아주 나중** 항목.
## 아이디어
특정 Spring 설정을 받아 이전 상태와 비교해 스프링 물리 연산을 수행해주는
**중간 핸들러**(intermediate handler). StoreBind와 비슷한 구조로 별도
핸들러 하나를 만들 수 있을 것으로 보인다는 원문 메모(원문: "스토어바인드도
비슷하게 핸들러 하나 생성 가능할 수 있음").
기각된 직접 `Tween` 접근(과거 특수 bind key 모델, `archive/tween-special-bind-key-reversed.md`)과는
성격이 다르다 — 이건 `Tween`만으로 간결히 해결되지 않는 **인터랙티브
디자인** 상황(사용자 입력에 실시간으로 반응하는 감쇠/타겟 추적)을 위한
**지속 업데이트되는** primitive를 염두에 둔 것. 확정된 `Tween<T>` 모델
(`base/tween-plan.md`)과는 별도 트랙으로 취급.
## 참고 구현
[qwreey/spring.lua](https://github.com/qwreey/spring.lua/blob/master/main.lua) —
사용자 본인의 기존 구현. 사용 가능 여부(라이선스/의존성/quad 아키텍처와의
정합성) 확인이 필요하다고 원문에 명시.
## 구현 방향 후보 (미정)
두 갈래가 거론됐고 아직 어느 쪽도 확정되지 않았다:
1. **엔진 중립 후킹**: `quad-base``onStep`류 프레임 단위 처리 후킹
인터페이스를 제공하고, 그 위에 스프링 primitive를 얹는 방식. 원문에서
사용자가 "기본 생각으론 후킹이 맞다 보긴 하는데"로 약하게 기운
방향이지만 확정은 아님.
2. **엔진별 개별 구현**: `quad-roblox-spring`처럼 엔진마다 각자 맞게
개발하는 방식.
또는 별도 방향으로 — `Source<number>`를 확장해 damping/target 등 스프링
파라미터를 가진, **자기 자신에 계속 emit하는** 프리미티브를 primitive
레벨에 두는 안도 언급됨. 이 형태면 다른 `:Compute` 체인과 자연스럽게
엮일 수 있다는 게 사용자 관찰.
**결정 시점**: quad 코어가 충분히 개발되어 이런 pluggable 요소가 더
필요해지는 시점에 판단 — 지금은 방향을 좁히지 않고 후보만 기록.
## 우선순위
최하 — "모든게 완성된 후, 별도 모듈로 분화"라고 사용자가 직접 명시. M0
설계 게이트와 무관.

View file

@ -113,6 +113,14 @@
백엔드 팩토리 표면에 추가될 예정이라는 것도 M1 설계 시 인지. 설계는 백엔드 팩토리 표면에 추가될 예정이라는 것도 M1 설계 시 인지. 설계는
네 라운드로 대부분 확정됐고 남은 열린 질문은 `question.md` 3번(개수는 네 라운드로 대부분 확정됐고 남은 열린 질문은 `question.md` 3번(개수는
거기도 반복 안 함 — 소스는 `research/debounce-throttle-plan.md` 12절). 거기도 반복 안 함 — 소스는 `research/debounce-throttle-plan.md` 12절).
**[2026-08-18 추가]** 사용자 아이디어 메모 두 건도 같은 성격의 백로그로
신설 — 스크롤 최적화 외부 유틸 `quad-roblox-fastscroll`
(`research/fastscroll-plan.md`, 선행으로 `Visible=false`일 때
`AbsoluteSize`/`AbsolutePosition` 갱신 여부 실측 필요)과 스프링 물리
기반 지속 업데이트 프리미티브 `quad-spring`(`research/spring-plan.md`,
참고 구현 `qwreey/spring.lua` 사용 가능성 확인 필요) — 둘 다 설계 논의
전 아이디어 단계이고 사용자가 직접 "아주 나중"으로 후순위 지정, M0/설계
게이트와 무관.
5. 자율 작업 루프/스케줄 설정 여부는 사용자 결정 대기 중 5. 자율 작업 루프/스케줄 설정 여부는 사용자 결정 대기 중
(`HUMAN_TODO.md` 2번 항목). (`HUMAN_TODO.md` 2번 항목).
6. **[신규 백로그, 2026-08-14 열네 번째 세션]** 문서 stale 감소용 include 6. **[신규 백로그, 2026-08-14 열네 번째 세션]** 문서 stale 감소용 include