์ด์ ๊ฒ์๊ธ์์ 3D ๊ณต๊ฐ์ธ Scene์ ๋ง๋ค์๋ค. ์ด์ ํด๋น ๊ณต๊ฐ์ ๋ฐ์ค๋ฅผ ์์ฑํด๋ณด์. ์ฐ์ 3D ๊ฐ์ฒด์ ๊ตฌ์ฑ์ ์์๋ณด์.3D ๊ฐ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฃจ์ด์ ธ์๋ค. ์ดํ, 3D ๊ฐ์ฒด๋ฅผ ๋ชจ๋ธ๋ก ํํํ๊ฒ ๋ค. ๐ Modelโ ๐ฆ MeshMesh๋, ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด์ ์ฌ๋ฌ ํด๋ฆฌ๊ณค(๋ค๊ฐํ)์ ์งํฉ์ ์ด๋ฃจ๊ณ ์๋ค.์ ๋ค์ด ๋ฌด์ํ ๋ชจ์ฌ ์ ์ด ๋๊ณ , ๊ทธ ์ ์ด ๋ชจ์ฌ ํด๋ฆฌ๊ณค์ ์ด๋ฃจ๊ณ , ํด๋น ํด๋ฆฌ๊ณค๋ค์ด ๋ชจ์ฌ Mesh๋ผ๋ ๊ฐ์ฒด๋ฅผ ์ด๋ฃฌ๋ค. โ ๐ Geometry๊ณต๊ฐ์ ์์ฑ๊ณผ ๊ด๋ จํ ์ํ ๊ฐ๋ค์ด๋ค. โ ๐ Materialํด๋น ๋ฌผ์ง์ ์ด๋ฃจ๋ ์ฌ๋ฃ๋ฅผ ๋ํ๋ธ๋ค. ์ด ์ธ ๊ฐ์ง๊ฐ ์์ผ๋ฉด ๋ชจ๋ธ์ ํํํ ์ ์๋ค. ๊ทธ๋ผ ์ด์ ๋ชจ๋ธ์ ๋ง๋ค์ด๋ณด์. ๐ฆ Box๋ฐ์ค๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์ํด ๐ BoxLoader.tsx๋ฅผ ์์ฑํด์ฃผ์๋ค. ๋๋..
์์ฑ์๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์จ์์ ํ์
์คํฌ๋ฆฝํธ์ ๋ํด ๋ฏธ์ํ์ฌ ํ์
์คํฌ๋ฆฝํธ์ ๋ฏธํกํ ๋ถ๋ถ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๐ fiber / drei๋ฆฌ์กํธ์์ three.js๋ฅผ ์ข ๋ ํธํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์
๋๋ค. ์์ฑ์๋ ์ด ๋๊ฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์๊ธ์ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค. ๐ https://docs.pmnd.rs/react-three-fiber/getting-started/introduction React Three Fiber DocumentationReact-three-fiber is a React renderer for three.jsdocs.pmnd.rs https://github.com/pmndrs/drei GitHub - pmndrs/drei: ๐ฅ useful helpers for reac..
์ฐธ๊ณ ์ฌ์ดํธโ seongminn๋์ ๋ฒจ๋ก๊ทธ ํ์ฌ ์์ฑ์๋ ๊ทธ๋ํฝ ๊ธฐ๋ฐ์ ์๋ฃจ์
ํ์ฌ์ ์ฌ์ง์ค์
๋๋ค.threejs์ ๋ํด ๊ณต๋ถ์ค์ด๋ผ ์๋ฒฝํ ๋ด์ฉ์ ์๋๊ฒ ๋ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ผ๋, ์๋ชป๋ ๋ด์ฉ์ด ๊ธฐ์ฌ๋์ด ์์ ๊ฒฝ์ฐ ๋ฐ๋ํ ํผ๋๋ฐฑ ์ฃผ์๋ฉด ๊ฒธํํ ๋ฐ์๋ค์ด๊ณ ์์ ํ๊ฒ ์ต๋๋ค. ๐ฆ three.jsthree.js๋, ์นํ์ด์ง์ 3D ๊ฐ์ฒด๋ฅผ ์ฝ๊ฒ ๋ ๋๋ง ํ ์ ์๋๋ก ๋์์ฃผ๋ 3D ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.WebGL ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ ๋๋ง๊ณผ ์นด๋ฉ๋ผ, ์กฐ๋ช
๋ฑ์ 3D ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค. https://threejs.org/ Three.js โ JavaScript 3D Library threejs.org ๐๏ธ WebGL์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ OpenGL์ ํ๋ฌ๊ทธ์ธ ๋์ ์์ด ๊ณต์์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋..
์ฐธ๊ณ ์ฌ์ดํธ โข ๋ฆฌ์กํธ ๊ณต์ ๋ฌธ์ - Custom Hook โ๏ธ Custom Hook ์์ ๊ฒ์๊ธ์์ ๋ค์ํ Hook์ ์ฌ์ฉํด์๋ค. React์๋ useState, useContext, useEffect์ ๊ฐ์ ์ฌ๋ฌ ๋ด์ฅ Hook์ด ํจ๊ป ์ ๊ณต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋, ์ฌ์ฉ์๊ฐ ์จ๋ผ์ธ ์ํ์ธ์ง ์ถ์ ํ๊ฑฐ๋ ์ฑํ
๋ฐฉ์ ์ฐ๊ฒฐํ๋ ๋ฑ ์ข ๋ ๊ตฌ์ฒด์ ์ธ ๋ชฉ์ ์ ์ํด Hook์ด ์์์ผ๋ฉด ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. React์์ ์ด๋ฌํ Hook์ ๋ชจ๋ ์ง์ํ ์ ์๋ค. ๊ทธ๋์ ์ดํ๋ฆฌ์ผ์ด์
์๊ตฌ์ฌํญ์ ๋ง๊ฒ ์ง์ ์์ ๋ง์ Hook์ ๋ง๋ค ์ ์๋ค. ๐ง ์ ์ฌ์ฉํ ๊น? ์ฌ์ฌ์ฉ์ฑ์ด ๋์ ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๋ค. ๋ด์ฅ Hook์ ์ฌ์ฉํ ์ ์๋ค. ๋
๋ฆฝ์ ์ผ๋ก ๋์ํ๋ค. ๐ก ๊ตฌ์ฑ์์ ๊ฐ ๋
ผ๋ฆฌ ๊ณต์ ๋คํธ์ํฌ์ ํฌ๊ฒ ์์กดํ๋ ์ฑ์ด ์๋ค๊ณ ์์ํด๋ณด์. ..
์ฐธ๊ณ ์ฌ์ดํธ โข ๋ฆฌ์กํธ ๊ณต์ ๋ฌธ์ - useContext ๐ useContext useContext๋ ์ปดํฌ๋ํธ์ Context๋ฅผ ์ฝ๊ณ ๊ตฌ๋
ํ๊ฒ ํด์ฃผ๋ ๋ฆฌ์กํธ Hook์ด๋ค. ๋ฆฌ์กํธ์์ ๋ฐ์ดํฐ๊ฐ์ ํ์ ์ปดํฌ๋ํธ๋ก ์ ๋ฌํ๊ธฐ ์ํด ์ปดํฌ๋ํธ ํธ์ถ ์, ๋ฐ์ดํฐ prop์ ๋ด๊ณ , ํด๋น props๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ค. useContext๋ ํด๋น ๊ณผ์ ์ ์๊ด์์ด useContext๋ก ๊ฐ์ผ ์ปดํฌ๋ํธ๋ค์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ ์ ์๋๋ก ๋์์ค๋ค. ๋น์ทํ ๊ธฐ๋ฅ์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก๋ recoil์ด ์๋ค. ๐ฆ Parameter useContext ์ปจํ
์คํธ๋ฅผ ์ฝ๊ณ ๊ตฌ๋
ํ๋ ค๋ฉด ์ปดํฌ๋ํธ ์ต์์์์ ํธ์ถํด์ผํ๋ค. const value = useContext(SomeContext); โข SomeContext: ํด๋น ์ปจํ
์คํธ๋ cr..
์ฐธ๊ณ ์ฌ์ดํธ โข ๋ฆฌ์กํธ ๊ณต์ ๋ฌธ์ - useCallback โข ๋ณ์ฝ๋ฉ๋์ youtube - useCallback ๊ฐ์ ๐ชฃ useCallback useCallback์ ์ฌ๋ ๋๋ง ์ฌ์ด์ ํจ์ ์ ์๋ฅผ ์บ์ํ ์ ์๋ React Hook์ด๋ค. ๐ข ์ฐธ์กฐ useCallback ์ฌ๋ ๋๋ง ์ฌ์ด์ ํจ์ ์ ์๋ฅผ ์บ์ํ๋ ค๋ฉด ๊ตฌ์ฑ ์์์ ์ต์์ ์์ค์์ ํธ์ถํ๋ฉด ๋๋ค. const cachedFn = useCallback(fn, [dependencies]); ๐ฆ Parameters โข fn: ์บ์ํ๋ ค๋ ํจ์์ด๋ค. ๋ชจ๋ ์ธ์๋ฅผ ์ทจํ๊ณ ๋ชจ๋ ๊ฐ์ ๋ฐํํ ์ ์๋ค. React๋ ์ด๊ธฐ ๋ ๋๋ง ์ค์ ํจ์๋ฅผ ๋ค์ ๋ฐํํ๋ค(ํธ์ถX). ๋ค์ ๋ ๋๋ง์์ dependencies๊ฐ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ ๋์ผํ ๊ธฐ๋ฅ์ ๋ค์ ์ ๊ณตํ๋ฉฐ, ๊ทธ๋ ์ง ์๋ค๋ฉด ..
์ฐธ๊ณ ์ฌ์ดํธ โข ๋ฆฌ์กํธ ๊ณต์ ๋ฌธ์ - useMemo ๐ useMemo useMemo๋ ์ฌ๋ ๋๋ง ๊ฐ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ *์บ์(Cache)ํ ์ ์๋ React Hook์ด๋ค. ๋น์ฉ์ด ๋ง์ด ๋๋ ์ฌ๊ณ์ฐ์ ๊ฑด๋๋ฐ๊ธฐ ์ํ์ฌ ์ฌ์ฉํ๋ค. *์บ์(Cache): ์ปดํจํฐ ๊ณผํ์์ ๋ฐ์ดํฐ๋ ๊ฐ์ ๋ฏธ๋ฆฌ ๋ณต์ฌํด ๋๋ ์์ ์ฅ์๋ก ๋ฐ์ดํฐ ์ ๊ทผํ๋ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๊ฑฐ๋ ๋ค์ ๊ณ์ฐํ๋ ์๊ฐ์ ์ ์ฝํ๊ณ ์ถ์ ๊ฒฝ์ฐ์ ์ฌ์ฉ ์ถ์ฒ: Wikipedia ๋ฐํ๊ฐ์ ์บ์ฑํ๋ ๊ฒ์ ๋ฉ๋ชจ์ด์ ์ด์
(memoization)์ด๋ผ๊ณ ๋ ํ๋ฉฐ, ์ด๊ฒ์ด ์ด Hook์ด ๋ถ๋ฆฌ๋ ์ด์ ์ด๋ค. ๐ข ์ฐธ์กฐ useMemo ์ฌ๋ ๋๋ง ๊ฐ์ ๊ณ์ฐ์ ์บ์ํ๋ ค๋ฉด ๊ตฌ์ฑ ์์์ ์ต์์ ์์ค์์ ํธ์ถํ๋ค. const cachedValue = useMemo(calculateValue, [depende..
์ฐธ๊ณ ์ฌ์ดํธ โข React ๊ณต์ ๋ฌธ์ - useRef ๐ชฃ useRef ๋ ๋๋ง์ด ํ์ํ์ง ์์ ๊ฐ์ ์ฐธ์กฐํ ์ ์๋ React Hook์ด๋ค. useRef๋ .current ํ๋กํผํฐ๋ก ์ ๋ฌ๋ ์ธ์(initialValue)๋ก ์ด๊ธฐํ๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ref ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. ๋ฐํ๋ ๊ฐ์ฒด๋ ์ปดํฌ๋ํธ์ ์ ์์ ์ฃผ๊ธฐ๋ฅผ ํตํด ์ ์ง๋๋ค. ๐ฆ Parameter โข initialValue: ์ด๊ธฐ์ ์ ์ฅ๋๋ ๊ฐ์ ๋ฃ์ผ๋ฉฐ, ๋ชจ๋ ์ ํ์ ๊ฐ์ด(lite, DOM...)์ด ๋ ์ ์๋ค. ์ด ์ธ์๋ ์ด๊ธฐ ๋ ๋๋ง ํ์ ๋ฌด์๋๋ค. ๐ Return useRef๋ ๋จ์ผ ์์ฑ์ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. {current: value} โข current: initialValue๊ฐ์ด ๋ค์ด๊ฐ ์์ผ๋ฉฐ null์ ์ฌ์ฉํด๋ ๋๋ค. ํฅํ ๋ค๋ฅธ ๊ฒ์ผ๋ก ์ค์ ํ ์ ..
'Library' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก (2 Page)
๋จ์ถํค
๋ด ๋ธ๋ก๊ทธ
๋ด ๋ธ๋ก๊ทธ - ๊ด๋ฆฌ์ ํ ์ ํ |
Q
Q
|
์ ๊ธ ์ฐ๊ธฐ |
W
W
|
๋ธ๋ก๊ทธ ๊ฒ์๊ธ
๊ธ ์์ (๊ถํ ์๋ ๊ฒฝ์ฐ) |
E
E
|
๋๊ธ ์์ญ์ผ๋ก ์ด๋ |
C
C
|
๋ชจ๋ ์์ญ
์ด ํ์ด์ง์ URL ๋ณต์ฌ |
S
S
|
๋งจ ์๋ก ์ด๋ |
T
T
|
ํฐ์คํ ๋ฆฌ ํ ์ด๋ |
H
H
|
๋จ์ถํค ์๋ด |
Shift + /
โง + /
|
* ๋จ์ถํค๋ ํ๊ธ/์๋ฌธ ๋์๋ฌธ์๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ฉฐ, ํฐ์คํ ๋ฆฌ ๊ธฐ๋ณธ ๋๋ฉ์ธ์์๋ง ๋์ํฉ๋๋ค.