designpaca/research/three/05-sources.md
Yun Chan 8808c672dc designpaca 초기 구현 — 스킬 · 설치 CLI · 배포 파이프라인
웹 디자인 파이프라인 스킬과 이를 5개 에이전트에 설치하는 CLI 를 담은 모노레포.

스킬 (packages/skill)
- SKILL.md 261줄 + 참조 문서 16개 3,349줄. progressive disclosure 로
  본문은 절차와 인덱스만, 지식은 references/ 로 분리
- 0~6단계 파이프라인. 규모에 따라 전체·연장·국소 세 경로로 분기
- 하드 게이트 12개는 grep·카운트로 검증 가능한 것만. 취향 판단은 제외
- 미학 프리셋 5종, AI 슬롭 지문 목록, 한글 조판 규칙,
  SVG 필터·three.js·인터랙티브 모션·HTML-in-Canvas 실전 지침

설치 CLI (packages/cli, packages/core)
- npx designpaca 온보딩 TUI. Claude Code · Codex · Cursor · Windsurf · AGENTS.md
- 매니페스트에 설치 시점 해시를 기록해 사용자가 고친 파일은 update 가 건너뛴다
- 타깃별로 본문의 references/ 경로를 실제 설치 위치로 재작성
- AGENTS.md 는 항상 로드되므로 본문 대신 303자 포인터만 주입
- Windsurf 는 12,000자 상한 초과 시 설치를 차단

배포 (build/ci, .forgejo/workflows)
- 태그 v* → 검사·테스트·빌드 → npmjs 배포 + Forgejo 레지스트리 미러
  → draft 릴리스 → Cloudflare Pages. 재실행 멱등

근거 (research/)
- 약 250개 웹 소스 조사 결과와 도그푸딩 검증 2건. 스킬의 모든 수치는 여기서 나온다

테스트 22개 통과 (core 16 · cli 6)
2026-08-20 10:48:00 +09:00

221 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 05 — 출처 목록
> 조사 시점: **2026-08-20**. 각 항목은 이 리서치에서 실제로 참조한 근거다.
> ✅ = 본문 코드/수치의 직접 근거, 📖 = 개념·기법 참고, 🔧 = 도구/패키지
---
## A. three.js 공식 (117)
| # | URL | 설명 |
|---|---|---|
| 1 | https://threejs.org/ | ✅ three.js 공식 홈. 현재 릴리스 번호 확인용 |
| 2 | https://threejs.org/docs/ | ✅ API 레퍼런스 전체 |
| 3 | https://threejs.org/manual/ | 📖 공식 매뉴얼(구 Fundamentals). 개념 설명이 문서보다 낫다 |
| 4 | https://github.com/mrdoob/three.js/wiki/Migration-Guide | ✅ **r150→r185 브레이킹 체인지 전체.** 01-stack §6의 근거 |
| 5 | https://github.com/mrdoob/three.js/releases | ✅ 릴리스 노트. r180/r184/r185 확인 |
| 6 | https://threejs.org/manual/en/how-to-dispose-of-objects.html | ✅ dispose 규칙. geometry/material/texture/renderTarget별 해제, `renderer.info` 활용 |
| 7 | https://threejs.org/manual/en/webgl-compatibility-check.html | ✅ `three/addons/capabilities/WebGL.js`로 지원 여부 검사 |
| 8 | https://threejs.org/docs/pages/ShaderMaterial.html | ✅ ShaderMaterial uniform/defines/RawShaderMaterial 차이 |
| 9 | https://threejs.org/docs/pages/InstancedMesh.html | ✅ `setMatrixAt` / `instanceMatrix.needsUpdate` / 머티리얼 공유 금지 |
| 10 | https://threejs.org/docs/pages/GLTFLoader.html | ✅ DRACO/KTX2/meshopt 로더 연결 방법 |
| 11 | https://threejs.org/docs/pages/DRACOLoader.html | ✅ 디코더 경로, `preload()`, 인스턴스 재사용 권고 |
| 12 | https://threejs.org/docs/pages/WebGL.html | ✅ `isWebGL2Available()` 및 프로브 컨텍스트 해제 이슈 |
| 13 | https://threejs.org/docs/pages/TSL.html | 📖 TSL(Three Shading Language) 명세 |
| 14 | https://github.com/mrdoob/three.js/wiki/Three.js-Shading-Language | 📖 TSL 위키. 노드 목록과 사용법 |
| 15 | https://threejs.org/examples/ | 📖 공식 예제 400+. GPGPU/포스트프로세싱 구현의 1차 참조 |
| 16 | https://github.com/mrdoob/three.js/blob/dev/examples/jsm/misc/GPUComputationRenderer.js | 📖 three 내장 GPGPU 헬퍼. P4의 자체 구현 대안 |
| 17 | https://github.com/mrdoob/three.js/releases/tag/r165 | ✅ `useLegacyLights` 완전 제거 시점 확인 |
## B. three.js 포럼 · 마이그레이션 논의 (1822)
| # | URL | 설명 |
|---|---|---|
| 18 | https://discourse.threejs.org/ | 📖 공식 포럼. 실무 이슈의 최종 색처 |
| 19 | https://discourse.threejs.org/t/updates-to-color-management-in-three-js-r152/50791 | ✅ r152 색공간 전환의 공식 설명 스레드. `colorSpace` 지정 규칙 |
| 20 | https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733 | ✅ r155 물리 기반 조명 전환. intensity 재조정 필요성 |
| 21 | https://discourse.threejs.org/t/compression-draco-ktx2-example/31382 | ✅ DRACO + KTX2 동시 적용 실제 코드 |
| 22 | https://discourse.threejs.org/t/threejs-landing-page-photoreal-3d-with-100-lighthouse-score/46814 | 📖 Lighthouse 100점 랜딩페이지 사례. 로딩 전략 참고 |
## C. React Three Fiber 생태계 (2337)
| # | URL | 설명 |
|---|---|---|
| 23 | https://r3f.docs.pmnd.rs/getting-started/introduction | ✅ R3F 개요 및 설치 |
| 24 | https://r3f.docs.pmnd.rs/api/canvas | ✅ **Canvas 전체 prop과 기본값.** `dpr [1,2]`, `frameloop always`, `flat/linear/legacy` |
| 25 | https://r3f.docs.pmnd.rs/advanced/scaling-performance | ✅ `frameloop="demand"`, `invalidate()`, `PerformanceMonitor`, `AdaptiveDpr`, `<Detailed>` |
| 26 | https://r3f.docs.pmnd.rs/advanced/pitfalls | ✅ setState in loop 금지, 객체 재생성 금지, 머티리얼 공유 등 7가지 함정 |
| 27 | https://r3f.docs.pmnd.rs/tutorials/v9-migration-guide | ✅ **v9 마이그레이션.** React 19 요구, `ThreeElements` 인터페이스, sRGB 자동 지정 제거, async `gl` 콜백 |
| 28 | https://github.com/pmndrs/react-three-fiber/releases | ✅ 릴리스 노트. React 19.2 reconciler 이슈 |
| 29 | https://github.com/pmndrs/react-three-fiber/discussions/3665 | 📖 v10.0.0-alpha 진행 상황 |
| 30 | https://drei.docs.pmnd.rs/getting-started/introduction | ✅ drei 컴포넌트 카테고리 전체 목록 |
| 31 | https://drei.docs.pmnd.rs/shaders/shader-material | ✅ `shaderMaterial()` 헬퍼. uniform→prop 자동 매핑, `key` 핫리로드 |
| 32 | https://drei.docs.pmnd.rs/shaders/mesh-transmission-material | ✅ **MeshTransmissionMaterial 전체 prop과 기본값.** P10의 근거 |
| 33 | https://drei.docs.pmnd.rs/shaders/mesh-refraction-material | 📖 보석/다이아 굴절 전용 머티리얼 |
| 34 | https://drei.docs.pmnd.rs/controls/scroll-controls | ✅ `ScrollControls` prop, `useScroll()``offset/delta/range/curve/visible` |
| 35 | https://drei.docs.pmnd.rs/portals/view | ✅ `<View>` — 단일 컨텍스트로 여러 씬을 DOM에 배치 |
| 36 | https://github.com/pmndrs/drei | 🔧 drei 소스. 컴포넌트 실제 구현 확인용 |
| 37 | https://github.com/pmndrs/maath | 🔧 R3F용 수학 유틸(damp, easing, random). 프레임레이트 독립 보간 |
## D. 포스트프로세싱 (3843)
| # | URL | 설명 |
|---|---|---|
| 38 | https://react-postprocessing.docs.pmnd.rs/introduction | ✅ `EffectComposer` 기본 사용법. EffectPass 자동 병합 |
| 39 | https://react-postprocessing.docs.pmnd.rs/effects/chromatic-aberration | ✅ ChromaticAberration prop |
| 40 | https://react-postprocessing.docs.pmnd.rs/effects/lensflare | 📖 렌즈 플레어. transmission 재질 감지 방식 |
| 41 | https://github.com/pmndrs/postprocessing | ✅ vanilla 라이브러리 본체. peer `three >=0.168 <0.186` 확인 |
| 42 | https://github.com/pmndrs/postprocessing/wiki/Custom-Effects | ✅ **커스텀 Effect 작성법.** `mainImage`/`mainUv` 시그니처, 사용 가능 uniform, `EffectAttribute` |
| 43 | https://pmndrs.github.io/postprocessing/public/docs/ | 📖 API 문서 전체 |
## E. 스크롤 · 애니메이션 (4451)
| # | URL | 설명 |
|---|---|---|
| 44 | https://gsap.com/docs/v3/Plugins/ScrollTrigger/ | ✅ ScrollTrigger 전체 API. `scrub`, `pin`, `invalidateOnRefresh` |
| 45 | https://gsap.com/blog/3-13/ | ✅ 3.13 릴리스 — 전 플러그인 무료화, SplitText 재작성 |
| 46 | https://webflow.com/blog/gsap-becomes-free | ✅ Webflow의 GSAP 무료화 공지(2025-04) |
| 47 | https://css-tricks.com/gsap-is-now-completely-free-even-for-commercial-use/ | 📖 라이선스 해설 — 무료지만 오픈소스는 아님 |
| 48 | https://github.com/darkroomengineering/lenis | ✅ **Lenis 전체 옵션·메서드·이벤트 + GSAP ScrollTrigger 통합 스니펫.** P6의 근거 |
| 49 | https://lenis.dev/ | 🔧 Lenis 공식 사이트 |
| 50 | https://github.com/14islands/r3f-scroll-rig | 📖 DOM↔WebGL 스크롤 동기화 라이브러리. P8의 대안 |
| 51 | https://tympanus.net/codrops/2026/05/28/the-never-ending-story-building-a-seamless-infinite-scroll-experience-with-gsap-lenis/ | 📖 GSAP+Lenis 무한 스크롤 구현 |
## F. Codrops 튜토리얼 (5271)
| # | URL | 설명 |
|---|---|---|
| 52 | https://tympanus.net/codrops/2024/10/31/how-to-code-a-subtle-shader-background-effect-with-react-three-fiber/ | ✅ **P2의 원형.** SDF 도트 그리드 + 트레일 텍스처 + three 셰이더 청크 활용 |
| 53 | https://tympanus.net/codrops/2019/10/21/how-to-create-motion-hover-effects-with-image-distortions-using-three-js/ | ✅ **P8의 원형.** DOM↔플레인 동기화, `deformationCurve`, RGB shift, 마우스 속도 |
| 54 | https://tympanus.net/codrops/2020/04/14/interactive-webgl-hover-effects/ | 📖 hover 디스플레이스먼트/리퀴드 왜곡 모음 |
| 55 | https://tympanus.net/codrops/2022/09/26/how-to-recreate-stripes-lava-lamp-gradient-with-three-js/ | ✅ **P1의 원형.** Stripe 그라디언트 정점 변위 기법 |
| 56 | https://tympanus.net/codrops/2024/08/27/grid-displacement-texture-with-rgb-shift-using-three-js-gpgpu-and-shaders/ | 📖 GPGPU 그리드 디스플레이스먼트 + RGB shift |
| 57 | https://tympanus.net/codrops/2019/01/17/interactive-particles-with-three-js/ | ✅ P3의 근거. 오프스크린 텍스처로 파티클 상호작용 |
| 58 | https://tympanus.net/codrops/2023/12/13/creating-an-interactive-mouse-effect-with-instancing-in-three-js/ | ✅ P5의 근거. InstancedMesh 그리드 마우스 인터랙션 |
| 59 | https://tympanus.net/codrops/2025/06/09/how-to-create-interactive-droplet-like-metaballs-with-three-js-and-glsl/ | 📖 SDF smooth-min 메타볼 |
| 60 | https://tympanus.net/codrops/2025/03/24/animating-letters-with-shaders-interactive-text-effect-with-three-js-glsl/ | ✅ P11의 근거. 텍스트 디스플레이스먼트 |
| 61 | https://tympanus.net/codrops/2020/06/02/kinetic-typography-with-three-js/ | 📖 키네틱 타이포그래피 |
| 62 | https://tympanus.net/codrops/2022/11/08/3d-typing-effects-with-three-js/ | 📖 3D 타이핑 효과 |
| 63 | https://tympanus.net/codrops/2025/03/13/warping-3d-text-inside-a-glass-torus/ | ✅ P10의 근거. 유리 토러스 안에서 왜곡되는 텍스트 |
| 64 | https://tympanus.net/codrops/2023/10/10/progressively-enhanced-webgl-lens-refraction/ | ✅ 점진적 향상 원칙 + 렌즈 굴절. 04 §6의 사상적 근거 |
| 65 | https://tympanus.net/codrops/2024/02/07/on-scroll-revealing-webgl-image-explorations/ | 📖 스크롤 리빌 이미지. P8 리빌 마스크의 참고 |
| 66 | https://tympanus.net/codrops/2025/11/26/creating-wavy-infinite-carousels-in-react-three-fiber-with-glsl-shaders/ | 📖 R3F 무한 캐러셀 |
| 67 | https://tympanus.net/codrops/2026/02/17/reactive-depth-building-a-scroll-driven-3d-image-tube-with-react-three-fiber/ | 📖 스크롤 구동 3D 이미지 튜브 + DOM 오버레이 동기화 |
| 68 | https://tympanus.net/codrops/2026/07/09/building-an-interactive-wave-propagation-cube-grid-with-three-js/ | 📖 파동 전파 큐브 그리드. P5의 최신 변형 |
| 69 | https://tympanus.net/codrops/2025/07/22/interactive-text-destruction-with-three-js-webgpu-and-tsl/ | 📖 WebGPU+TSL 텍스트 파괴 |
| 70 | https://tympanus.net/codrops/2026/01/28/webgpu-gommage-effect-dissolving-msdf-text-into-dust-and-petals-with-three-js-tsl/ | 📖 MSDF 텍스트 디졸브 + MRT 선택적 블룸. P15의 고급 사례 |
| 71 | https://tympanus.net/codrops/tag/three-js/ | 📖 Codrops three.js 태그 전체 아카이브 |
## G. Maxime Heckel 블로그 (7277)
| # | URL | 설명 |
|---|---|---|
| 72 | https://blog.maximeheckel.com/posts/the-study-of-shaders-with-react-three-fiber/ | ✅ **셰이더 입문의 최고 자료.** uniform/varying, 8개 인터랙티브 씬 |
| 73 | https://blog.maximeheckel.com/posts/the-magical-world-of-particles-with-react-three-fiber-and-shaders/ | ✅ P3/P4의 근거. attribute, BufferGeometry, FBO 파티클 |
| 74 | https://blog.maximeheckel.com/posts/refraction-dispersion-and-other-shader-light-effects/ | ✅ P10 vanilla 굴절 셰이더의 근거. 채널별 IOR 분산 |
| 75 | https://blog.maximeheckel.com/posts/the-art-of-dithering-and-retro-shading-web/ | ✅ 03 §5.5 디더링의 근거. Bayer 매트릭스 |
| 76 | https://blog.maximeheckel.com/posts/post-processing-as-a-creative-medium/ | 📖 포스트프로세싱을 표현 수단으로 쓰는 법 |
| 77 | https://blog.maximeheckel.com/posts/field-guide-to-tsl-and-webgpu/ | ✅ 01 §8의 근거. TSL/WGSL 실전 가이드 |
## H. 강의 · 크리에이터 (7885)
| # | URL | 설명 |
|---|---|---|
| 78 | https://threejs-journey.com/ | 📖 Bruno Simon의 표준 three.js 코스. 70+ 레슨 |
| 79 | https://threejs-journey.com/lessons/gpgpu-flow-field-particles-shaders | ✅ P4의 근거. GPGPU 플로우필드 파티클 레슨 |
| 80 | https://threejs-journey.com/lessons/raycaster-and-mouse-events | ✅ P14의 근거. 레이캐스터/마우스 이벤트 |
| 81 | https://www.youtube.com/@akella_ | 📖 Yuri Artiukh(Akella). 셰이더 라이브코딩. 이미지 왜곡/GPGPU |
| 82 | https://threejs-workshops.com/ | 📖 Akella의 유료 워크숍(셰이더/GPGPU/수학) |
| 83 | https://tympanus.net/codrops/author/akella/ | 📖 Akella의 Codrops 기고 모음 |
| 84 | https://bobbyroe.com/ | 📖 Robot Bobby. 짧은 실습 중심 three.js 튜토리얼 |
| 85 | https://robotbobby.thinkific.com/ | 📖 Robot Bobby 코스(5~15분 단위 레슨) |
## I. 셰이더 학습 · 라이브러리 (8695)
| # | URL | 설명 |
|---|---|---|
| 86 | https://thebookofshaders.com/ | ✅ GLSL 프래그먼트 셰이더 입문의 정본. 03의 기초 개념 근거 |
| 87 | https://www.shadertoy.com/ | 📖 셰이더 커뮤니티. 기법 탐색과 레퍼런스 |
| 88 | https://github.com/patriciogonzalezvivo/lygia | ✅ **LYGIA 셰이더 라이브러리.** `#include` 기반, GLSL/WGSL 다중 언어. 03 §7 |
| 89 | https://lygia.xyz/ | 🔧 LYGIA 함수 브라우저 + 런타임 `resolve.js` |
| 90 | https://github.com/stegu/webgl-noise | ✅ simplex/perlin 노이즈 GLSL 원본(유지보수 포크). MIT |
| 91 | https://github.com/ashima/webgl-noise/blob/master/src/noise3D.glsl | ✅ **03 §5.2 `snoise(vec3)` 전체 코드의 출처.** 원본 파일 |
| 92 | https://iquilezles.org/articles/palettes/ | ✅ 03 §5.5 코사인 팔레트 공식의 출처 |
| 93 | https://iquilezles.org/articles/distfunctions2d/ | ✅ 03 §5.6 2D SDF 함수 모음의 출처 |
| 94 | https://iquilezles.org/articles/smin/ | ✅ `opSmoothUnion` (smooth minimum) 유도 |
| 95 | https://github.com/juniorxsound/Particle-Curl-Noise | 📖 curl noise FBO 파티클 참조 구현 |
## J. 도구 · 최적화 (96107)
| # | URL | 설명 |
|---|---|---|
| 96 | https://gltf-transform.dev/ | ✅ **glTF 최적화 CLI/SDK.** draco/meshopt/ktx2/resize/simplify. P13의 근거 |
| 97 | https://github.com/protectwise/troika/tree/main/packages/troika-three-text | ✅ P11의 근거. SDF 텍스트, Web Worker 폰트 파싱 |
| 98 | https://protectwise.github.io/troika/troika-three-text/ | ✅ troika-three-text API 문서. `sync()`, `sdfGlyphSize`, `preloadFont` |
| 99 | https://www.npmjs.com/package/troika-three-text | 🔧 버전/peer 확인 (0.52.5, `three >=0.125`) |
| 100 | https://github.com/UstymUkhman/vite-plugin-glsl | ✅ 01 §3의 근거. `#include` 인라인, three 내장 청크 자동 스킵 |
| 101 | https://github.com/pmndrs/detect-gpu | ✅ 04 §5의 근거. GPU 벤치마크 tier 0~3 판정 |
| 102 | https://github.com/gkjohnson/three-mesh-bvh | 🔧 대량 오브젝트 레이캐스팅 가속(BVH). P14 참고 |
| 103 | https://github.com/pmndrs/gltfjsx | 🔧 GLTF → R3F 컴포넌트 자동 변환 CLI |
| 104 | https://github.com/pmndrs/react-three-a11y | 🔧 R3F 접근성 헬퍼(포커스/aria) |
| 105 | https://evilmartians.com/chronicles/faster-webgl-three-js-3d-graphics-with-offscreencanvas-and-web-workers | ✅ 04 §9의 근거. OffscreenCanvas + Worker three 이전 |
| 106 | https://web.dev/articles/offscreen-canvas | ✅ OffscreenCanvas 공식 가이드 |
| 107 | https://threejsresources.com/ | 📖 three.js 도구/학습자원 디렉터리 |
## K. 성능 · 접근성 · 표준 (108116)
| # | URL | 설명 |
|---|---|---|
| 108 | https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion | ✅ 04 §7.1의 근거. MDN 명세 |
| 109 | https://www.w3.org/WAI/WCAG22/Techniques/css/C39 | ✅ WCAG 2.2 기법 C39 — reduced-motion으로 모션 억제 |
| 110 | https://css-tricks.com/reduced-motion-picture-technique-take-two/ | ✅ `<picture>` + `prefers-reduced-motion`으로 정적 대체 제공 |
| 111 | https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_lose_context/loseContext | ✅ 04 §6.3의 근거. 컨텍스트 강제 해제/복구 |
| 112 | https://web.dev/articles/vitals | ✅ Core Web Vitals 기준(LCP 2.5s / INP 200ms / CLS 0.1) |
| 113 | https://caniuse.com/webgl2 | ✅ WebGL2 지원 현황 (r163+ 필수 요구사항) |
| 114 | https://caniuse.com/webgpu | ✅ WebGPU 지원 현황. 01 §8 판단 근거 |
| 115 | https://www.utsubo.com/blog/threejs-best-practices-100-tips | ✅ **04 §1 예산 수치의 주요 근거.** 드로우콜 100, varying 3개, 라이트 3개, 그림자맵 크기, 4K 텍스처 64MB 등 |
| 116 | https://www.utsubo.com/blog/threejs-2026-what-changed | ✅ 01 §8의 근거. r170~r184 변화, WebGPU 프로덕션 레디 시점 |
## L. 사례 분석 · 레퍼런스 (117125)
| # | URL | 설명 |
|---|---|---|
| 117 | https://www.awwwards.com/websites/three-js/ | 📖 Awwwards three.js 수상작 컬렉션 |
| 118 | https://www.utsubo.com/blog/best-threejs-websites-2026 | 📖 2026년 three.js 사이트 8선 + 기법 분해 |
| 119 | https://www.utsubo.com/blog/webgl-three-js-site-seo-rankable-guide | ✅ 04 §2.4의 근거. WebGL 사이트 SEO — DOM 먼저, 캔버스는 레이어 |
| 120 | https://www.utsubo.com/blog/webgpu-threejs-migration-guide | 📖 WebGPU 마이그레이션 체크리스트 |
| 121 | https://www.hontran.dev/blog/webgl-website-examples | 📖 수상작 WebGL 사이트의 코드 관점 분해 |
| 122 | https://metabole.studio/en/blog/immersive-website-examples | 📖 몰입형 웹사이트 사례 큐레이션 |
| 123 | https://madebybeings.com/blog/interactive-liquid-gradient-background-with-three-js-a-step-by-step-tutorial | 📖 유동 그라디언트 배경 단계별 튜토리얼(그레인/컬러스킴 포함) |
| 124 | https://blog.olivierlarose.com/tutorials/3d-glass-effect | 📖 R3F 유리 효과 튜토리얼 |
| 125 | https://barradeau.com/blog/?p=621 | 📖 nicoptere의 FBO 파티클 원조 글. P4의 이론적 출발점 |
## M. 기타 학습 (126130)
| # | URL | 설명 |
|---|---|---|
| 126 | https://sbcode.net/threejs/ | 📖 SBCODE three.js 튜토리얼. 라이트/그림자/로더 개별 항목 |
| 127 | https://sbcode.net/threejs/webgpu-renderer/ | 📖 WebGPURenderer + TSL 실습 |
| 128 | https://wawasensei.dev/courses/react-three-fiber | 📖 R3F 코스. `<View>`, 포트폴리오 패턴 |
| 129 | https://www.npmjs.com/package/vite-plugin-glsl | 🔧 버전/옵션 확인 |
| 130 | https://github.com/pmndrs/react-three-fiber/blob/master/packages/fiber/CHANGELOG.md | ✅ R3F 상세 변경 이력. React 버전 호환 범위 추적 |
---
## 버전 검증에 사용한 npm 레지스트리 엔드포인트
이 리서치의 "버전 스냅샷"(01 §0)은 아래를 **직접 조회**해 확인했다(2026-08-20).
| 패키지 | 엔드포인트 | 확인된 값 |
|---|---|---|
| three | https://registry.npmjs.org/three/latest | `0.185.1` |
| @react-three/fiber | https://registry.npmjs.org/@react-three/fiber/latest | `9.7.0`, peer `react >=19 <19.3`, `three >=0.156` |
| @react-three/drei | https://registry.npmjs.org/@react-three/drei/latest | `10.7.8`, peer `react ^19`, `three >=0.159`, `fiber ^9` |
| @react-three/postprocessing | https://registry.npmjs.org/@react-three/postprocessing/latest | `3.0.5`, peer `three >=0.182`, `postprocessing ^6.36`, `fiber >=9.7` |
| postprocessing | https://registry.npmjs.org/postprocessing/latest | `6.39.4`, peer `three >=0.168.0 <0.186.0` |
| gsap | https://registry.npmjs.org/gsap/latest | `3.15.0` |
| lenis | https://registry.npmjs.org/lenis/latest | `1.3.26` |
| troika-three-text | https://registry.npmjs.org/troika-three-text/latest | `0.52.5`, peer `three >=0.125.0` |
> 이 문서를 재사용할 때는 위 엔드포인트를 다시 조회해 버전을 갱신하라.
> 특히 **`postprocessing`의 three 상한(`< 0.186.0`)**은 three 업그레이드를 막는 실질적 제약이므로 매번 확인해야 한다.