์ฌ๋ณด์ธ์!
๋จผ์ ์ด ํจํค์ง๊ฐ ๊ณผ๊ฑฐ์ ๋ค๋ฅธ ํจํค์ง๋ณด๋ค ํจ์ฌ ์ฌ์ฉํ๊ธฐ ์ฌ์ ๋ค๋ ์ ์ ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ผ ์ด๋ ๊ฒ ์ฌ๋ ค์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค!
์ด์จ๋ ๋๋ ์ต๊ทผ์ ์ด๊ฒ์ ์ฌ์ ํ ์์ ํ๊ณ ์๋ ์ฌ์ดํธ์ ์ฌ๋ ธ๊ณ ๋ชจ๋ฐ์ผ์์ ๋ช ๊ฐ์ง ๋ถ์ผ์น๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋๋ก๋ ๋ชจ๋ ๊ฒ์ด ๋ก๋๋์ง๋ง ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ๋๋ฝ๋๊ฑฐ๋ ๋ถ์์ ํฉ๋๋ค. ์๋ ์คํฌ๋ฆฐ์ท.
๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์๊ฒ ๋๊ฒ ์ต๋๊น? ์๋๋ฉด ๋ด๊ฐ ๋ญ๊ฐ ์๋ชปํ๊ณ ์๋ค๋ฉด?
ํ
์คํธ๋ก "welcome"์ด ์๋ ํฐ ๊ธ๊ผด์ .otf ํ์ผ(restgold.otf)์
๋๋ค.
ํ
์คํธ๊ฐ .ttf ํ์ผ(Raleway-Medium.ttf)์ด๋ฏ๋ก "Hi my name is..."๊ฐ ์๋ ์์ ํ
์คํธ
ํฐํธ ํ์ผ์ด ํ์ํ์๋ฉด ๋ง์ํด์ฃผ์ธ์!
์ฅ์น: ์์ดํฐ7
IOS: 14.1
๋ธ๋ผ์ฐ์ : ์ฌํ๋ฆฌ
ํจํค์ง ์ธ๋ถ ์ ๋ณด:
"3": "^0.122.0",
"troika-three-text": "^0.35.0",
"troika-three-utils": "^0.35.0",
์ ๊ณ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! iOS Safari์์ ์ด์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ค๋ช ํ ๊ฒ์ ๋น์ ์ด ์ฒ์์ ์๋์ง๋ง ์ด์ ์๋ ์ฌํํ ์ ์์์ต๋๋ค. ๋๋ ๋น์ ์ ์ฌ์ดํธ๋ฅผ ์๋ํ๊ณ ๊ทธ๊ฒ์ ์ฌํํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฐ์ฐํ drei
๋ฅผ ํตํด ์ฌ์ฉํ๊ณ ์์ต๋๊น? ์๋๋ฉด ์ง์ ?
์๋ ํ์ธ์ @lojjic ์ด ํจํค์ง๋ฅผ three.js์ ํจ๊ป ์ง์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๊ฐ 3๊ฐ์ ์ ํธ๋ฆฌํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ด์ ๋ ์ด๋ค ๊ฒฝ์ฐ์๋ createDerivedMaterial ํจ์๋ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
ํ์ธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
iPhone 8์์ ์น์ฌ์ดํธ๋ฅผ ๋ก๋ํ๋ ๋ฌธ์ ๋ฅผ ์ฌํํ ์ ์์์ต๋๋ค. ์์ง ๋๋ฒ๊น ์ ์์ํ ์๊ฐ์ด ์์์ง๋ง ๋ฒ๊ทธ๋ฅผ ์ฌํํ ์ ์๋ค๋ ์ฌ์ค์ ์๊ณ ์ถ์์ต๋๋ค.
@atlmtw @lojjic ์ฌ๋ฌ ๊ธ๊ผด์ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์ ์ฌํ๋ฆฌ์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ด๊ฐ ์ฐพ์ ์ ์ผํ ์์ ์ฌํญ์ ์ด ๋ธ๋ผ์ฐ์ ์ ์ ์ฒด ์น ์ฌ์ดํธ์์ ๊ณ ์ ํ ๊ธ๊ผด์ ์ฌ์ฉํ๋ ๊ฒ์ด์์ต๋๋ค.
+1
์ฅ๋ฉด๋น ์ฌ๋ฌ ๊ธ๊ผด = ์ผ๋ถ ๊ธ๊ผด์ iphone X, iphone SE์ ํ์๋์ง ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๋ ค๊ณ ํ๋๋ฐ ์ง๊ธ ์ฌํํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด์ ๊ณผ ๋์ผํ iPhone 8์ ๋๋ค. ๋๋ ๋ ์ด์ designdalena.com์์ ๊ทธ๊ฒ์ ์ฌํํ ์ ์์ง๋ง, ์ฌ์ดํธ๊ฐ ๋ ์ด์ troika-three-text๋ฅผ ์ฌ์ฉํ์ง ์๋๋ก ๋ณ๊ฒฝ๋์๊ฑฐ๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํด๊ฒฐํ์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
๊ทธ๋์ ์ฌ๋ฌ ๊ธ๊ผด์ ์ฌ์ฉํ์ฌ ์ต์ํ์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋๋ฐ ์คํจํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋์ด ํ ์คํธ/๋๋ฒ๊ทธ์ ์ฌ์ฉํ ์ ์๋ ์ด๋๊ฐ์์ ์ด๊ฒ์ ์ฌํํ ์ ์์ต๋๊น?
์๋ ํ์ธ์ @lojjic
ํ์ธ์ ์ํด ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ณ๊ฒฝํ์ต๋๋ค. ๋๋ ํธ๋ก์ด์นด๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒฝํ์ ์ฆ๊ธด๋ค.
@atlmtw ํ์ธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋์๊ฒ ๋ณด๋ผ ์ ์๋ ์์ค ์ ์ด์ ์ฌ์ดํธ์ ์ด์ ๋ฒ์ ์ด ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๊น? ๋๋ ์ด๊ฒ์ ์ฌํํ๊ธฐ ์ํด ๊ณ ๊ตฐ๋ถํฌํ๊ณ ์์ผ๋ฉฐ ๋น์ ์ ๊ฒ์ ๋ฏฟ์๋งํ ์ฌํ์ฒ๋ผ ๋ณด์์ต๋๋ค.
์๋
ํ์ธ์ @lojjic
์ด๊ฒ์ ํ์ด์ด ์์ต๋๊น? iPhone(iPad ๋ฐ macOS์์ ์๋)์์ >1 ๊ธ๊ผด์ด ์ฌ์ฉ๋ ๋๋ ์ด๊ฒ์ ๋ณด์์ต๋๋ค. ์ด์ํ๊ฒ๋ ์ด๊ฒ์ ํญ์ ๋ณต์ ํ ์ ์์ผ๋ฉฐ 1-2/10๋ฒ๋ง ๋ฐ์ํ๋ฉฐ ์ฒซ ๋ฒ์งธ ๋ก๋์์๋ง ๋ฐ์ํฉ๋๋ค. ๊ธ๊ผด ํ์ผ ๋ค์ด๋ก๋์ ๊ด๋ จ์ด ์์ต๋๊น?
Btw, ์ผ์ ์ฌ๋ํ์ญ์์ค :100:
@amitrajput1992 ์๋์, ์ฌ์ ํ ์ฌํ ๊ฐ๋ฅํ ํ ์คํธ ์ผ์ด์ค๋ฅผ ๊ตฌ์ฑํ ์ ์์์ต๋๋ค. ๋ด๊ฐ ์ฌ์ฉํ ์์๋ ํ๋๊ฐ ์์ต๋๊น?
@lojjic
์ด๊ฒ์ ์๋?
๋ฐ์คํฌํ์์ ์ด๋ฉด ์๋ก ๋ค๋ฅธ ์์์ผ๋ก ์ธ์๋ 6๊ฐ์ ๋ค๋ฅธ ํ
์คํธ๊ฐ ํ์๋ฉ๋๋ค.
๋๋ ๋์ ํจ๊ป ๋ช ๋์ ์ฅ์น์์ ์ด ๋งํฌ๋ฅผ ํ
์คํธํ๊ณ BrowserStack์์ ๋ช ๋๋ ๋ชจ๋ ๋ ๋๋ง ๋ฌธ์ ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๋งํฌ๋ฅผ ๋ช ๋ฒ ์๋ก ๊ณ ์น๋ฉด ์๋ํ๋๋ฐ ๋งค์ฐ ์ด์ํฉ๋๋ค.
์ด๊ฒ์ด ๋ด๊ฐ BrowserStack์์ ๋ณธ ๊ฒ์
๋๋ค. ์ด๊ฒ์ ์์ดํฐ 8 + ์ฌํ๋ฆฌ v13์ ์์ต๋๋ค
์ด๊ฒ์ ๋ด iPhone 11 + Safari 14์์
์น ์์ ์์์ ๊ธ๊ผด ํ์ผ์ ๋ค์ด๋ก๋ํ๋ค๋ ์ฌ์ค๊ณผ ๊ด๋ จ์ด ์์ต๋๊น? ์ฐ๋ฆฌ๋ ์ฌํ๋ฆฌ๊ฐ ์น ์์ ์์๊ฒ ๊ณ ํต์ ์ค ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
@amitrajput1992 ๊ฐ์ฌํฉ๋๋ค. ์ค์ ๋ก ํด๋น ํ์ด์ง์์ ๋ฌธ์ ๋ฅผ ๋ณต์ ํ ์ ์์ต๋๋ค. ๊ฑฐ๊ธฐ์์ ๋๋ฒ๊ทธํ ์ ์๋์ง ๋ฐ/๋๋ ์ต์ํ๋ ๋ก์ปฌ ํ ์คํธ ์ผ์ด์ค์์ ๋ณต์ ํ ์ ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ฌํ๋ฆฌ๊ฐ ์น ์์ ์์๊ฒ ๊ณ ํต์ ์ค ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค๋ ๊ทธ๋ ๊ฒ ๋งํ๋ ๊ฒ์ ๋ค์๊ณ ์์ ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํ์คํ ๊ทธ๋ด๋ฏํ ๋ฒ์ธ์ด์ง๋ง Safari์์ ์์ ์์ ์๋ ค์ง ๋ฒ๊ทธ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์์์ต๋๋ค. ๊ณต์ ํ ์ ์๋ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ด ์์ต๋๊น?
@lojjic
๊ทธ ์ข์ ์๋ฆฌ. ์ด๋ค ์์ผ๋ก๋ ๋์์ด ๋๋ค๋ฉด ์๋ ค์ฃผ์ธ์. ํํธ, ๋๋ ๋๋ฒ๊น
์ ๊ณ์ํ๊ณ ๋ฌธ์ ์ ๋ฒ์๋ฅผ ์ขํ๋ ค๊ณ ๋
ธ๋ ฅํ ๊ฒ์
๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค๋ ๊ทธ๋ ๊ฒ ๋งํ๋ ๊ฒ์ ๋ค์๊ณ ์์ ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํ์คํ ๊ทธ๋ด๋ฏํ ๋ฒ์ธ์ด์ง๋ง Safari์์ ์์ ์์ ์๋ ค์ง ๋ฒ๊ทธ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์์์ต๋๋ค. ๊ณต์ ํ ์ ์๋ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ด ์์ต๋๊น?
์ฌ๊ธฐ์์ ์ ํํ ๋ฌธ์ ์ ๋ํด ์์ง ๋ชปํฉ๋๋ค. ๋ถ๋ถ์ ์ผ๋ก๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ด๋์์๋ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค(๋๋ ์ฌ๋๋ค์ด ๊ธฐ๋กํ์ง ์์). ํ์ง๋ง ์ด๊ฒ์ ์ ๊ฐ ๋ง์ง์๊ฑฐ๋ฆฌ๋ ๋์ ์์์ฐจ๋ฆฐ ๊ฒ์
๋๋ค. react360์ ์น ์์
์ ๋ด๋ถ์์ ์ ์ฒด ๋ฐ์ ์ฝ๋๋ฅผ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋์๋ ์ด์ react-vr(์ง๊ธ์ ํ๊ธฐ๋จ)์ด์๊ณ ๋ฉ์ธ ์ค๋ ๋์ ๋ํ ์
๋ฐ์ดํธ๊ฐ ๋๋ฌด ๋๋ ธ์ต๋๋ค. ์์
์ ์ค๋ ๋์์ ๋ด ํด๋ฆญ ์์ ๊ธฐ๋ก ์ ํํ๊ธฐ ์ํด ์ฝ 300ms์์ 500ms ์ฌ์ด์ ์ด๋ ๊ณณ์์๋ ํด๋ฆญ ์์
์ ์ฝ๊ฒ ์ํํ ์ ์์ผ๋ฉฐ ์ข
์ข
๋ช ๋ฒ์ ํด๋ฆญ๋ ๋์น ์ ์์ต๋๋ค.
๋๋ 3๊ฐ์ gif ๋ ๋๋ฌ์ธ repo๋ฅผ ์ ์ง ๊ด๋ฆฌํ๊ณ ์ฒ์์๋ ์คํ์คํฌ๋ฆฐ ์บ๋ฒ์ค๋ก ์๋ํ์ง๋ง ๊ฒฐ๊ณผ๋ ๋์ฐํ๊ณ ์ฐ์ ํ๋ ์์์ ํ
์ค์ฒ๊ฐ ํผํฉ๋์์ต๋๋ค. ์ ์ฒด๋ฅผ ๋ฉ์ธ ์ค๋ ๋๋ก ์ฎ๊ธฐ๋ฉด ํฌ๊ฒ ๊ฐ์ ๋์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์์ ์์์ ๋ฉ์ธ ์ค๋ ๋๋ก ์ ๋ณด๋ฅผ ์ ์กํ ๋ ์ฌ์ฉ๋๋ ๊ตฌ์กฐํ๋ ๋ณต์ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๊ด๋ จ์ด ์์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. iOS์์ ์ด ์ ํ ์ฌํญ์ ๋ํ ํ์คํ ์ฆ๊ฑฐ๋ฅผ ์ฐพ์ง ๋ชปํ์ง๋ง
ํญ์ ๋ํ๋์ง๋ ์์ง๋ง ๊ฐ๋ ๋ํ๋๋ ์ด๋ฌํ ์ํฐํฉํธ์ ๋จผ์ ์ง์คํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ฌํ ๊ฒฝ์ฐ ๋ ์ด์์ ๋ฐ SDF ์์ฑ์ด ๋ถ๋ช ํ ์๋ฃ๋๊ณ ๊ธฐ๋ณธ ์ค๋ ๋๋ก ๋์๊ฐ์ง๋ง ์ผ๋ถ SDF๋ ๋ด๋ถ/์ธ๋ถ ์ฑ์ฐ๊ธฐ๊ฐ ์ ์๋ฆฌ์์ ๋ฐ์ ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ๊ฒฝ๋ก ์ธ๊ทธ๋จผํธ๊ฐ ์ ๋ฐ๋ง ์๋ ๊ฒ์ฒ๋ผ ํด๋น ๋ฌธ์์ ๋ํ ๊ฒฝ๋ก ๋ฐ์ดํฐ๊ฐ ๋ถ์์ ํ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋ฐ์ํ ์ ์๋์ง ์ ์ ์์ต๋๋ค.
๊ธ๊ผด ๋ก๋ ์ค์ ๊ธ๊ผด์ ๋ฐฐ์ด ๋ฒํผ๊ฐ ์๋ฆฌ๊ฑฐ๋ ์์๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ด๋ฌํ ํ์์ด ๋ํ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ํน์ ์์น์์ ์๋ฆฌ๋ฉด ์์ ํ ๋น์ด ์๋ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์๋ ์์ต๋๋ค.
๊ฐ๋ฅ์ฑ์ผ๋ก ์กฐ์ฌํ๊ฒ ์ต๋๋ค(์ด์ฉ๋ฉด XHR์ด ๋ถ๋ถ์ ์ธ arraybuffer ์๋ต์ ์ ๊ณตํฉ๋๊น?). ๊ทธ๋ฌ๋ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ์ด๊ฒ์ ์์ ํ๊ณ ๋ก์ปฌ์์ ์คํํ ์ ์๋ ์ฌํ ๊ฐ๋ฅํ ํ ์คํธ ์ผ์ด์ค๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ด๋ ์ด ๋ฒํผ ์์์ด ์ฌ๊ธฐ์์ ๋ฒ์ธ์ผ ์ ์์ต๋๋ค.
์ด ์ ์ฒด ํ๋ก์ธ์ค๋ฅผ ๋ฉ์ธ ์ค๋ ๋์์ ์คํํ๋ ๊ฒ์ ๋ํ ๋ ๋ค๋ฅธ ํ ๋ก ์ ๋ณด์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ก๋๋งต์ ์์ต๋๊น?
๋ํ ๋์์ด๋๋ค๋ฉด ์๋ ๋ฒ์ ์์ drei๋ฅผ ์ฌ์ฉํ์ฌ troika๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
@react-3/์ฌ์ : 6.2.3
@react-three/drei: 6.0.1
ํธ๋ก์ด์นด: 0.42.0
3: 0.129.0
๋ฉ์ธ ์ค๋ ๋์์ ์คํํ๋ ๊ฒ์ ๊ฐ๋ฅํ์ง๋ง ์ ์ฌ์ ์ผ๋ก ๋ช ์ด ๋์ ๋ฉ์ธ ์ค๋ ๋๋ฅผ ์ฐจ๋จํ๋ ๊ฝค ํํธ์๋ ๊ฒฝํ์ ํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ์ตํ์ ์๋จ์ผ ๋ฟ์ ๋๋ค.
ํ ์คํธ ํ์ด์ง๊ฐ ๋ณ๊ฒฝ๋์์ต๋๊น? ์ ์ด๋ iOS์์๋ ์ด์ ๋ชจ๋ ๋ค๋ฅธ ํ ์คํธ ๊ฐ์ฒด์ ๋ํด ๋จ์ผ ๊ธ๊ผด๋ง ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์ต๋๋ค...? ๋๋ ์ฌ์ ํ ๊ฐ๋ ๊ทธ ๋จ์ผ ๊ธ๊ผด๋ก ์๊ณก๋ SDF๋ฅผ ๋ด ๋๋ค. ์ด๋ ์ด๊ฒ์ด ์ฌ๋ฌ ๊ธ๊ผด๋ก ์ธํด ์ ํ๋ ์ ์์ง๋ง ์ด์ ๊ตญํ๋์ง ์์์ ์๋ฏธํฉ๋๋ค.
์ ์ฒด ์ฑ์ ๋ํด ๋จ์ผ ๊ธ๊ผด๋ง ์ฌ์ฉํ๋๋ก iOS ๊ธฐ๊ธฐ์ ๋ํ ๋์ฒด๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ด๊ฒ์ ๋ด ์์ฐ ํ๊ฒฝ์ด๋ฏ๋ก ๊ฑฐ๊ธฐ์ ๋ฌธ์ ๊ฐ ์์ ์ ์์ต๋๋ค.
๋ด ์คํ
์ด์ง ํ๊ฒฝ์์ ๋ค๋ฅธ ์๋ฅผ ๋ง๋ค๊ณ ์ต๋ํ ๋นจ๋ฆฌ ์ฌ๊ธฐ์ ๋งํฌ๋ฅผ ๋ณด๋ด๊ฒ ์ต๋๋ค.
์ด๊ฒ์ด ์ฌ์ ํ ๋จ์ผ ๊ธ๊ผด์์๋ ๋ฐ์ํ๋ค๋ ๊ฒ์ ์์๋ด๋ ๊ฒ์ ๋ฒ๊ฑฐ๋กญ์ต๋๋ค.facepalm:
ํ ์ค์ ๋ก Safari devtools์ ์ฐ๊ฒฐ๋ ๋ ์ ๋จ์ผ ๊ธ๊ผด์์๋ง ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ผ๋ฉฐ ๊ฝค ์ผ๊ด๋๊ฒ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ์๊ฒ ์ด๋ค ๋จ์๋ฅผ ์ ๊ณตํ๋์ง ํ์คํ์ง ์์ต๋๋ค.
๊ธ์, ์กฐ๊ธ ๋ ์งํ... ๋๋ ๊ฐ๋ณ ๊ธ๋ฆฌํ์ ๋ํ ๊ฒฝ๋ก ๋ช ๋ น์ ์๋ผ๋ด์ด ์์์ ๋ณธ ๊ฒ๊ณผ ๋์ผํ ๋ถ๋ถ ๊ธ๋ฆฌํ ์ํฐํฉํธ๋ฅผ ๊ฐ์ ํ ์ ์์์ ํ์ธํ์ต๋๋ค. ์๋ ๊ธ๊ผด ๋ฐ์ดํฐ๊ฐ ๋ถ์์ ํ๊ธฐ ๋๋ฌธ์ธ์ง(๋ง์ ๋ถ๋ถ์ด ์๋ ํ๋์ ๋ถ๋ถ ๊ธ๋ฆฌํ๋ง ๋ฐ์์ํฌ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ ๊ทธ๋ด ๊ฐ๋ฅ์ฑ์ ๊ฑฐ์ ์์ต๋๋ค), ์๋๋ฉด ๋ฌด์์ธ๊ฐ for-loop๊ฐ ์ผ์ฐ ์ข ๋ฃํ์ญ์์ค(๋ถ๊ฐ๋ฅํด ๋ณด์ด์ง๋ง ์ด์ํ JIT ๋ฒ๊ทธ๊ฐ ์์ ์ ์์).
์ด๋ ์ชฝ์ด๋ , Safari์ USB ์ฐ๊ฒฐ devtools๊ฐ ๊ด๋ จ ์ฝ๋์์ ์ค๋จ์ ์ ์ค์ ํ ์ ์๋ค๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. @amitrajput1992 ํ ์คํธ ์ฑ์ ๋ก์ปฌ์์ ๋น๋/์คํํ ์ ์๋ ์์ค ํ์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น? ๊ทธ๋์ ๋๋ฒ๊ทธํ ํธ๋ก์ด์นด ์ฝ๋๋ฅผ ๊ต์ฒดํด ๋ณผ ์ ์์ต๋๊น?
@lojjic ์๋ ์ฑ ์ฝ๋๋ฅผ ๊ณต์ ํ ์๋ ์์ง๋ง ํ๋ก๋์ ์ฑ์์ ์ฌ์ฉํ๋ ์ ์ฌํ ๊ตฌ์กฐ๋ก ์คํ ๋ฆฌ๋ถ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ค์ ํ๊ณ ์ด์ ๋ํ ํ ์คํธ ๋ ๋๋ฅผ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. ๊ณง ๋งํฌ๋ฅผ ํตํด ๋ณด๋ด๋๋ฆฝ๋๋ค.
@lojjic
๋ด ํ๋ก๋์
์ฑ๊ณผ ์ ์ฌํ ๊ตฌ์กฐ๋ก ๊ธฐ๋ณธ ์ฌํ์ ์ค์ ํ์ต๋๋ค. https://github.com/amitrajput1992/r3f-experiments
๋ด iPhone 11 ๋ฐ BrowserStack์์ ์ด์ ๋์ผํ ๋ฌธ์ ๋ฅผ ๋ณต์ ํ ์ ์์ต๋๋ค.
๋ํ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์๋๋ก ์ฌ๊ธฐ์ ์คํ ๋ฆฌ๋ถ์ ๊ฒ์ํ์ต๋๋ค. https://amitrajput1992.github.io/r3f-experiments
@amitrajput1992 ํ ์คํธ ์ผ์ด์ค ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์คํ ๋ฆฌ๋ถ์์ ๊ธ๊ผด์ ์ ๊ณตํ์ฌ gmetri ์ฌ์ดํธ์์ ๊ธ๊ผด์ ๋ก๋ํ๋ CORS ์ค๋ฅ๋ฅผ ์์ ํ ํ ๋ณต์ฌํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ... ๊ทธ๋ฌ๋ฉด ๋ด Safari devtools๋ ์ฐ๊ฒฐ์ ์๋ํ๋ _crashes_ ์ ์ฒด๋ฅผ ์คํํฉ๋๋ค! ๐คฆ๐คฆ๐คฆ๐คฆ๐คฆ๐คฆ ๊ทธ๋์ ๋๋ console.log ๋ฌธ์ ์ถ๊ฐํ๊ณ ๋ณผ ์์กฐ์ฐจ ์์ต๋๋ค. ์ด ๋ฒ๊ทธ๋ ์ ๋ง๋ก ์์ ๋๊ธฐ๋ฅผ ์ํ์ง ์์ต๋๋ค. ์?
์ข์ ๊ฐ; ๋ด์ผ์ ์ข ๋ ์์พํ ๋ง์์ผ๋ก ๋์์ค๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค. ์์ด๋์ด๊ฐ ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์.
@lojjic๋ , ์ง๊ธ์ mac ์์คํ
์ด ์์ง๋ง ๋ก์ปฌ ํฌ์๋ฉ์ ์ฌ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ์คํ์์ ํ
์คํธํ์ต๋๋ค. ์น ์์
์์ ๋ฉ์ธ ์ค๋ ๋ ๋ด๋ถ์ ๊ธฐ๋ก๋ sdf ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅธ ๊ฒ ๊ฐ์ต๋๋ค. ์ค๋ ๋ ํต์ ๊ฐ์ ์ง๋ ฌํ-์ญ์ง๋ ฌํ ํ๋ก์ธ์ค ๋๋ฌธ์ผ ์ ์์ง๋ง ์์ ํ ํ์คํ์ง๋ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ ๊ณ์ํด์ ๋๋ฒ๊น
ํ ๊ฒ์ด๋ค.
safari dev-tools๊ฐ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํ
์คํธ๋ฅผ ์๋ํด ๋ณผ ์ ์์ต๋๋ค. 100๋ถ ํ๊ฐํ์ ์ ๊ณตํ์ฌ ๋์์ด ๋ ์ ์์ต๋๋ค.
๊ด๋ จ ์ฝ๋์์ ์ค๋จ์ ์ ์ค์ ํ ์ ์์
๋ฒ๊ทธ๋ฅผ ์ฌํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ๊ฐ ์ค๊ณผ console.log ํ์ ์น ์์ ์๋ก๋ถํฐ ๋ฉ์์ง๋ฅผ ๋์ง๋ผ๋ ๋ฉ์ฒญํ ์ ์.
๋ด iPhone 6/11์ ์ฌ์ง:
์ฝ๋์ ๊ฐ ์ค๊ณผ console.log ํ์ ์น ์์ ์๋ก๋ถํฐ ๋ฉ์์ง๋ฅผ ๋์ง๋ผ๋ ๋ฉ์ฒญํ ์ ์
์ ํ ๋ฉ์ฒญํ ์ ์์ด ์๋๋๋ค! ๊ทธ๊ฒ์ด ๋ด๊ฐ ํ๋ ค๊ณ ํ๋ ๊ฒ๊ณผ ์ ํํ ์ผ์นํ์ง๋ง Safari์ devtools๋ ํธ์ง ๊ฐ๋ฅํ ๋ก์ปฌ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํฌ ๋ ์ฆ์ ์ถฉ๋ํ๋ฏ๋ก console.log ์ถ๋ ฅ๋ ๋ณผ ์ ์์ต๋๋ค. :(
์ฐ๊ฒฐ๋ iPhone์์ ๋ก์ปฌ ํธ์คํธ URL์ ์ด๋ ค๊ณ ํฉ๋๊น? ์ด ๊ฒฝ์ฐ ํฌํธ ํฌ์๋ฉ์ ์ด๋ป๊ฒ ์๋ํฉ๋๊น?
์ฐ๊ฒฐ๋ iPhone์์ ๋ก์ปฌ ํธ์คํธ URL์ ์ด๋ ค๊ณ ํฉ๋๊น? ์ด ๊ฒฝ์ฐ ํฌํธ ํฌ์๋ฉ์ ์ด๋ป๊ฒ ์๋ํฉ๋๊น?
๋ก์ปฌ ๋คํธ์ํฌ IP ์ฃผ์๋ฅผ ํตํด iPhone์์ ๊ฐ๋ฐ ์๋ฒ์ ์ก์ธ์คํ๊ณ ์์ต๋๋ค. ๋ํ https://localhost.run์ ํตํด ํ์ดํ์ ์๋ํ์ต๋๋ค. ๋ ๊ฒฝ์ฐ ๋ชจ๋ Safari devtools๋ฅผ ์ด์ ๋ง์ ์ถฉ๋ํฉ๋๋ค. ํ์ด์ง ์์ฒด๋ ์ ๋ ๋๋ง๋ฉ๋๋ค(๋๋ก๋ ๋ฒ๊ทธ๊ฐ ์์ง๋ง).
๋ช ๊ฐ์ง ๋ธ๋ก๊ทธ์์ ์ด๊ฒ์ด 2๊ฐ์ง ์๋๋ฆฌ์ค์์ ๋ฐ์ํ ์ ์๋ค๋ ๊ฒ์ ์ฝ์์ต๋๋ค.
์ด๊ฒ์ ์ ์ฌํ ๋ผ์ธ์์ ์ค๋ ์คํ๋๋ ์ค๋ ๋์ด์ง๋ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. https://developer.apple.com/forums/thread/92290
๊ทธ๋ฌ๋ Safari์ devtools๋ ํธ์ง ๊ฐ๋ฅํ ๋ก์ปฌ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํฌ ๋ ์ฆ์ ์ถฉ๋ํ๋ฏ๋ก console.log ์ถ๋ ฅ๋ ๋ณผ ์ ์์ต๋๋ค. :(
๊ธฐ๋ณธ console.log ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ด ๋์ฒดํ ์ ์์ต๋๋ค.
console.log = (msg) => document.getElementById("my_ios_console").innerHTML += msg;
ํ์ง๋ง html ํ์ด์ง ๋๋ JS ์คํฌ๋ฆฝํธ์์ ํด๋น div๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
<div id="my_ios_console" style="position: absolute; top:0; left: 0; background: white"></div>
์ด๊ฒ์ ๋ฉ์ธ ์ค๋ ๋์ ๋ชจ๋ ์ฝ์ ๋ฉ์์ง๋ฅผ ํ์ํด์ผ ํฉ๋๋ค.
@munrocket ๊ฐ์ฌํฉ๋๋ค. ์๋ํ ์ ์์ต๋๋ค. ์๋ํด ๋ณด๊ฒ ์ต๋๋ค.
๋ชจ๋ ์๋ ,
์ด ์ค๋ ๋์์ ๋๋ฌด ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์ฃ์กํฉ๋๋ค. ์ด๊ฒ์ด ๋๋ฒ๊น ์ ๋์์ด ๋๋์ง ์ ์ ์์ง๋ง ์ต๊ทผ Xcode 13 ๋ฒ์ (๋ฒ ํ) ์๋ฎฌ๋ ์ดํฐ๋ ๋ด 3D ๋ก์ปฌ ํธ์คํธ๋ฅผ ์ ์คํํ ์ ์์์ต๋๋ค! ์ด์ ๋ฒ์ ๊ณผ ๊ณ์ ์ถฉ๋ํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
@lojjic ์ด๊ฒ์ ํ์ด์ด ์์ต๋๊น?
์ด๊ฒ์ ํ์ด์ด ์์ต๋๊น?
์๋์, ๋ถํํ๋ ์ต๊ทผ์ ์ด์ ๋ง์ ์๊ฐ์ ํ ์ ํ ์ ์์์ต๋๋ค.
์น ์์ ์๋ฅผ ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น? ํ์ธ์ ์ํด
์ฌ๋ฌ๋ถ, ์๋ ํ์ธ์,
๋๋ ํ๋ก์ ํธ(๋ถํํ๋ ์ฝ๋๋ฅผ ๊ณต์ ํ ์ ์์)์์ ์ด์ ๋์ผํ ๋ฌธ์ ๋ฅผ ์ฐ์ฐํ ๋ฐ๊ฒฌํ๊ณ ๊ฒฐ๊ตญ ๋ฐ๋ก ์ฌ๊ธฐ์์ ์ด ๋ฌธ์ ํฐ์ผ์ผ๋ก ๊ฐ๋ ๊ธธ์ ์ฐพ์์ต๋๋ค. ์ด๊ฒ์ ๋ํ ๋ง์ง๋ง ์ ๋ฐ์ดํธ๊ฐ ํ ๋ฌ์ด ๋์์ผ๋ฏ๋ก ์ค๋ ์ ํํ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๊ณ ์ด๋ค ์ฝ๋ ๋ผ์ธ์ด ์ด UX ์ฌ์์ ๊ธฐ์ฌํ๊ณ ์๋์ง ์ ํํ ์ง์ ํ๊ธฐ ์ํด ์ค๋ ๋ด ํ๋ก์ ํธ์ ์ข ์์ฑ ์ฝ๋๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๋ ์งํํ๊ธฐ ์ ์ ์๋ ์ ๋ณด์ ์กฐ์ ์ ์ด๋ค ์์ผ๋ก๋ ๊ถ์ฅ๋์ง ์์ผ๋ฉฐ ์ค์ ์๋ฃจ์ ์ ์ฐพ๋ ๋ฐ ๋์์ ์ฃผ๊ธฐ ์ํด ์ฌ๊ธฐ์ ๊ณต์ ๋๋ค๋ ์ ์ ๊ฐ์กฐํ๊ณ ์ถ์ต๋๋ค. ์๋ ์ ๋ณด๋ ํด๊ฒฐ์ฑ ์ด ์๋๋๋ค. ๊ฒฝ๊ณ ํ์ จ์ต๋๋ค.
์ฒซ ๋ฒ์งธ. ์, ํ ๋ก ์ ์๋ถ๋ถ์์ ์ธ๊ธํ๋ฏ์ด ์ด๊ฒ์ ์ค์ ๋ก iOS Safari์ WebWorker์ ํน์ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. Firefox(win10), Chrome(win10), Opera(win10), Safari(macOS big sur) ๋ฑ์์๋ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉฐ ๊ธ๊ผด์ด 100% ์ ๋๋ก ๋ก๋๋ฉ๋๋ค. ๊ทธ๋ฌ๋ Safari(iOS)๋ ์ฌ๋ฌ WebWorker ๊ฐ์ ์ผ์ข ์ ๊ฒฝ์ ์กฐ๊ฑด์ ์คํํฉ๋๋ค(์ด๊ฒ์ด ์์ ํ ์ฌ์ค์ธ์ง ๋๋ ์ด๋ค ๋น๋๊ธฐ ํธ์ถ์ด ์๋ก ๊ฐ์ญํ๋์ง ํ์ธํ์ง ๋ชปํ์ต๋๋ค).
์ด. ์ด ์ฃผ์ฅ๋ ๊ฒฝ์ ์กฐ๊ฑด(๋๋ ๊ทธ๊ฒ์ด ๋ฌด์์ด๋ ๊ฐ์)์ ๋ก๋๋๋ ๊ธ๊ผด ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ๋ฒํผ๊ฐ Troika์ Typr ์ข ์์ฑ์์ readShort ๊ธฐ๋ฅ์ ํตํด ์ก์ธ์คํ ๋ ๋ช ๊ฐ์ NaN ๊ฐ์ ์์ฑํ๋๋ก ํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฌธ์ ๊ฐ ์ค์ ๋ก Typr์ ์์ต๋๊น? ์๋ง๋. ํ์คํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์์์ NaN ๊ฐ์ ํธ์ถ ์คํ์ ๊ณ๋จ์์ผ๋ก ์์ ๋ฌธ์ ๊ทธ๋๋ก ๋ชจ๋ ๊ฒ์ ๋ง์น๊ณ ๋ง์นจ๋ด ๋ฌธ์ ๋ชจ์์ด ์์ ํ ์๋ชป ํ์๋๋๋ก ํฉ๋๋ค.
์ ์ผ. ํ์ํ ์ ํํ ์์น( Typr/bin.s ์ readShort ๊ธฐ๋ฅ)๋ฅผ ์ ํํ ์ฐพ์๋ธ ํ, ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์์ ํ์ต๋๋ค.
readShort : function(buff, p)
{
//if(p>=buff.length) throw "error";
var a = Typr._bin.t.uint8;
a[1] = buff[p]; a[0] = buff[p+1];
return Typr._bin.t.int16[0];
},
๋ด๊ฐ ๋จ์ํ console.log(Typr._bin.t.int16[0])๋ฅผ ์ฌ์ฉํ์ ๋, ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ๋ ์์ด์๋ ์ ๋๋ ๋ช ๊ฐ์ NaN์ ์ธ์ํ ๊ฒ์ ๋๋ค(์ ์ฒด ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ธ์ ์์ ์ ์ค๋จํ ์ ์์ผ๋ฏ๋ก ์ฃผ์ํด์ ์๋ํ์ญ์์ค. ์ด ํจ์๊ฐ ํธ์ถ๋ฉ๋๋ค. ์ฌ์ฉ ์ฌ๋ก์ ๋ฐ๋ผ ์์ฒ ๋ฒ). ๊ทธ๋ฌ๋ ์์๋๋ก ์ด ํจ์ ๋ด์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ์ ์ค์งํ๋ฉด(๋๋ฒ๊ฑฐ ํค์๋ ๋๋ ์ค๋จ์ ์ ์ฌ์ฉํ๊ฑฐ๋ ์ฝ์์ ์ก์ธ์คํ ์๋ ์์) ๊ฐ์ด ์์ฒด์ ์ผ๋ก ์์ ๋๊ณ NaN์ด ์์ฑ๋์ง ์์ต๋๋ค(๊ฒฝํฉ ์กฐ๊ฑด์ ๋ฏฟ๊ฒ ๋จ). ์ฆ, ๊ธฐ์กด ๋ฐฉ์์ผ๋ก ๋๋ฒ๊ฑฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ๊ฒ์ฌํ ์ ์์ต๋๋ค.
๋ค ๋ฒ์งธ์ด์ ๋ง์ง๋ง์ผ๋ก. ์ด๊ฒ์ ์ด ๋ฌธ์ ์ ๋ํ ์ค์ ์๋ฃจ์ ์ ์ฐพ๊ธฐ ์ํ ๋ชฉ์ ์ด ์๋๋ผ๋ฉด ๋ฐ๋ํ๋ ๋ถ๋ถ์ ๋๋ค. readShort ํจ์ ๋ด์์ ์ฝ์์ ์ฌ์ฉํ๋๋ผ๋ NaN์ด ์ฌ๋ผ์ง๋ค๊ณ ์์์ ์ผ์ต๋๋ค. ๊ทธ๋์ ๋์ ๋ ์ฐฝ์ ์ธ ํด์ปค ์ฌ๊ณ ๋ฐฉ์์ readShort์ return ๋ฌธ ์์ ์ด ์ค๋ํซ์ ํฌํจํ๋ ๊ธฐ๋ฐํ ์์ด๋์ด๋ฅผ ์๊ฐํ์ต๋๋ค.
if (Number.isNaN(Typr._bin.t.int16[0])) {
console.log()
}
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ํจ๊ณผ๊ฐ ์์๋ค! ๋ชจ๋ ํ ์คํธ๋ ์ด์ iOS Safari์ ์ด์ ์ ํ ์คํธํ ๋ค๋ฅธ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ ํ์๋ฉ๋๋ค. ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค ~ ... ์ต์ ์ ๋ฐฉ๋ฒ์ผ๋ก. ์ฝ์์ ์ก์ธ์คํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ฑํ๋ ๊ฐ๋ตํ ์ฐฝ์ด ์ฃผ์ฅ๋ ๊ฒฝ์ ์กฐ๊ฑด์ ํด๊ฒฐํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ์์ ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ์๋ง ๊ทธ๋ ๊ฒ ํ๋ค๋ ์ ์ ์ ์ํ์ญ์์ค.
๊ฒฐ๋ก ์ ์ผ๋ก. ์ฌ๊ธฐ๊ฐ ๋ด๊ฐ ์๋ ๊ณณ์ด๋ค. ๋์ฐํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ํจ๊ณผ๊ฐ ์์ง๋ง ์ฌ๊ธฐ ์๋ ๋ชจ๋ ์ฌ๋๋ค์ด ํด์ผ ํ๋ ๊ฒ์ฒ๋ผ ์ฌ์ ํ ์ด์ ๋ํ ์ค์ ์๋ฃจ์ ์ ์ฐพ๊ณ ์์ต๋๋ค. ๋ฌธ์ ๋ Troika์ ์์ ์๋ ์๊ณ ์๋ ์๋ ์์ต๋๋ค. ์๋ํ๋ฉด ์ด ๋ฌธ์ ๋ ํญ์ Typr์ ์์๊ฑฐ๋ iOS์ WebWorker ๊ตฌํ์ ์์๊ธฐ ๋๋ฌธ์ ๋๋ค(์๊ณ ์๋ ์ฌ๋). ์ด์จ๋ ์ด ๋ชจ๋ ์ ๋ณด๊ฐ ์กฐ์ฌ์ ๋์์ด ๋๊ธธ ๋ฐ๋ผ๋ฉฐ ์ฐ๋ฆฌ ๋ชจ๋ ์ด ์ ๋ณด๋ฅผ ๋๊น์ง ๋ณด๊ฒ ์ต๋๋ค.
์ฐธ์กฐ ํธ์ถ ์คํ:
Typr/bin.js - readShort
Typr/glyf.js - _parseGlyf
Typr/Typr.U.js - _drawGlyf
Typr/Typr.U.js - glyphToPath
Troika/FontParser_Typr.js - (์ต๋ช
) forEachGlyph
Troika/FontParser_Typr.js - wrapFontObj
Troika/FontParser_Typr.js - ๊ตฌ๋ฌธ ๋ถ์
...๊ทผ๋ก์ ๋ฌผ๊ฑด
๊ทธ๋ฆฌ๊ณ @lojjic , MacOS Safari๋ฅผ ์ฌ์ฉํ์ฌ USB๋ฅผ ํตํ iOS Safari ๋๋ฒ๊น
๋ฌธ์ ํด๊ฒฐ:
MacOS Safari DevTools๊ฐ ๋ฌดํ ๋ก๋๋ฅผ ์ฃผ์ฅํ๊ฑฐ๋ ํ์ด์ง๊ฐ ์ถฉ๋ํ๊ฑฐ๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ์ง ์๋ ๋ฑ์ ๋ฉ์์ง๊ฐ ํ์๋๋ ๊ฒฝ์ฐ ๋ก์ปฌ ๋คํธ์ํฌ๋ ํด๋์ ํ์ ์ฐ๊ฒฐ์ ๋์๋ค๊ฐ ๋ค์ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋๋ DevTools๋ฅผ ๋ช ๋ฒ ๋ซ์๋ค๊ฐ ๋ค์ ์ด์ด๋ณด์ญ์์ค. ๊ทธ๋ฆฌ๊ณ ๋ถ๋ช
ํ ์ ํ์์ ์น ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์นฉ๋๋ค. ์ค๋ ์ด๋ฐ ์ผ์ด ๋ช ๋ฒ(๊ณ ํต) ๋๊ณ ๊ทธ๋ ๊ฒ(MacOS Big Sur์ iOS 15.0.1 ์ฐ๊ฒฐ) ํด๊ฒฐํ๊ธฐ ๋๋ฌธ์ ์ด ๋ง์ ํ๋ ๊ฒ์
๋๋ค.
OMG @malulleybovo ํด๊ฐ์์ ๋์์์ ๋น์ ์ ๋ฐ๊ฒฌ์ ๋ณด์๊ณ ์์ฐ ์ ๋ง ๋๋ผ์ด ์ผ์ด์์ต๋๋ค! ๐ ์ด๋ ๊ฒ ์ฐพ์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
readShort๊ฐ NaN์ ์์ฑํ๋ค๋ ์ฌ์ค์ ์๋ ๊ฒ์ ์๋ง๋ ๋ง์นจ๋ด ์ด ๋ฌธ์ ๋ฅผ ์ดํดํ๋ _๊ฑฐ๋ํ_ ๋จ๊ณ์ ๋๋ค. ์์๋ค์ํผ ์ ๋ ๊ฝค ์ค๋ ์๊ฐ ๋์ ์์ ํ ๊ฐํ ์์์ต๋๋ค. ์์ ์ ๋ณ๊ฒฝํ๊ณ ์ฌ์ฉํ๋ iOS ๊ธฐ๊ธฐ์ ๋ํ ์ก์ธ์ค ๊ถํ์ ์์ ๊ฒ์ ๋์์ด ๋์ง ์์์ต๋๋ค.
๋ค์ ์ง๋ฌธ์ Typr._bin.t.int16[0] ์ฝ๊ธฐ๊ฐ NaN์ ์์ฑํ๋ _์_ ๊ฒฐ์ ํ ์ ์์ต๋๊น? ๋ฒํผ ์ค ํ๋(๊ธ๊ผด์ buff
๋๋ ์ ํธ๋ฆฌํฐ Typr._bin.t.buff
)์์ ์๋ชป๋ ๊ฐ์ ์ป๋ ๊ฒ ๊ฐ์ง๋ง, buff/uint8/int16 ๊ฐ์ด ์ ํํ ๋ฌด์์ธ์ง ์๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๊ทธ ์์ ์ ์์ด์ผ ํ๋ ๊ฒ๊ณผ ๋์กฐ๋ฉ๋๋ค.
๋ฒ๊ทธ๋ฅผ ํผํ๊ธฐ ์ํด ๊ฑฐ๊ธฐ์ console.log()๋ฅผ ์ฝ์ ํ ์ ์๋ค๋ ์ฌ์ค์ด ํฅ๋ฏธ๋กญ์ต๋๋ค. ๊ทธ๊ฒ์ด ๊ฒฝ์ ์กฐ๊ฑด์ ๋ํ๋ด๋์ง ๋๋ ์ฝ์์ ์ก์ธ์คํ๋ฉด JIT ๋ชจ๋์์ ๋น ์ ธ ๋์ฌ์ง ํ์คํ์ง ์์ต๋๋ค. ์ ์๊ฐ ๋ ์ฝ๊ฒ ๊ฐ์ง๋๊ณ ํด๊ฒฐ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@lojjic ์ด์ง ์ ์ถํํฉ๋๋ค!
๋๋ ์ง๊ธ ์ด ๋ฌธ์ ์ ๋ํด ์ข ๋ ํ๊ณ ๋ค์๊ณ ์ด๊ฒ์ ๋ํด ๋ ํฅ๋ฏธ๋กญ๊ณ ์ด์ํ ์์์ ๋ฐ์์ต๋๋ค. ์ด์ ์ ๊ณต์ ํ readShort ์ฝ๋ ์กฐ๊ฐ์ผ๋ก ๋์๊ฐ์ ๋ฐฐ์ด ๊ฐ(๊ณต์ ๋ฐฐ์ด ๋ฒํผ ์ฌ์ฉ)์ ์ฟ๋ณด๊ณ ์ง๊ธ๊น์ง ์ํํธ์จ์ด ์์ง๋์ด๋ง ๊ฒฝ๋ ฅ์์ ๋ณธ ๊ฒ ์ค ๊ฐ์ฅ ๊ธฐ์ดํ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
readShort : function(buff, p)
{
//if(p>=buff.length) throw "error";
var a = Typr._bin.t.uint8;
a[1] = buff[p]; a[0] = buff[p+1];
/***** Right here, I peeked at Typr._bin.t.int16, Typr._bin.t.int8, and Typr._bin.t.uint8 ******/
return Typr._bin.t.int16[0];
},
๋ด ์ ํ๋ฆฌ์ผ์ด์ ๋ด์ readShort์์ NaN์ด ์ฒ์ ๋ํ๋๋ ๊ฒ์ ์ฟ๋ณด๋ ๋์, buff[p]=255 ๋ฐ buff[p+1]=6(๋ ๋ค ์ ํจํ uint8 ๊ฐ)์ด๋ผ๋ ๊ฒ์ ์์์ต๋๋ค. ์ด๋ฅผ ์ผ๋์ ๋๊ณ ๋๋ Typr._bin.t.uint8์ ๊ฐ์ ์ฟ๋ณด์๊ณ ์์ํ ๋๋ก [6, 255, 0, ...]๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ Typr._bin.t.int16์ ์ดํด๋ณด๊ณ [-250, 0, ...] ๋์ ์๋ชป๋ [NaN, 0, ...]์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก Typr._bin.t.int8์ ๋ดค๋๋ฐ... ์ญ์ ํ๋ ธ์ต๋๋ค... [6, -1, 0, ...]์ด ์๋๋ผ [6, NaN, 0, ...]์ด์์ต๋๋ค. .
Typr glyf ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค๋ฅธ ์ ํ(Uint8Array, Int8Array, Int16Array ๋ฑ)์ ์ฌ๋ฌ ๋ฐฐ์ด์์ ํ๋์ ๊ณต์ ArrayBuffer๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ฐ์์ iOS Safari(๋ง ํด๋น)์์ ์ด๋ฌํ ๋ฐฐ์ด ์ค ํ๋๋ฅผ ๋ณ๊ฒฝํ ํ ๋ค๋ฅธ ๋ฐฐ์ด์ ๊ฐ์ด ์ฆ์ ์ ๋ฐ์ดํธ๋์ง ์์ ์ ์์์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ์ด์ ๋ ์ ์ ์์ง๋ง ์ต๊ทผ ๊ธฐ๋ก์์ iOS Safari์ ArrayBuffer์ ๊ด๋ จ๋ ํด๊ฒฐ๋ ๋ฒ๊ทธ ๋ณด๊ณ ์๋ฅผ ์ฐพ์์ต๋๋ค. ์ด ๋ณด๊ณ ์๋ ์ด๊ฒ์ ๋ ๋ฏฟ์ ์ ์๊ฒ ๋ง๋ญ๋๋ค... ํ ๋ฒ ๊ฒฐํจ์ด ์๋ ๊ฒ์ผ๋ก ์ ์ฆ๋์์ผ๋ฉฐ ๋ ๋ฒ ๊ฒฐํจ์ด ์๋ ๊ฒ์ผ๋ก ์ ์ฆ๋ ์ ์์ต๋๋ค(์ฐธ์กฐ: (https://bugs.webkit ์ฐธ์กฐ). .org/show_bug.cgi?id=194268)[https://bugs.webkit.org/show_bug.cgi?id=194268]).
์ด ์ฌ์ค์ ์๊ฒ ๋ ์ ๋ (uint8,uint8) to int16
๋ณํ์ ๋์ฒด ๊ตฌํ์ ์๋ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ฒ์๋ ๋นํธ ์ฐ์ฐ์ ์ฌ์ฉํฉ๋๋ค. ๋ด๊ฐ ์ฌ์ฉํ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
readShort : function(buff, p)
{
var a = buff[p + 1] + (buff[p] << 8);
if (a > 0b0111111111111111) {
a = (~a) + 1;
}
a = (a < 0 ? -1 : 1) * (a & 0b1111111111111111);
return a;
},
๊ทธ๋ฆฌ๊ณ ๋น์ ์ ๊ทธ๊ฒ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ธ๊ผด์ด ์๋ ๋ชจ๋ ํ ์คํธ๋ ์ด์ ํญ์ ์ฌ๋ฐ๋ฅด๊ฒ ํ์๋ฉ๋๋ค(devtools์ ์ฐ๊ฒฐํ์ง ์์๋ - ์ด ๋ฉด์ฑ ์กฐํญ์ ์ดํดํ๋ ค๋ฉด console.log์ ๋ํ ์ด์ ์ค๋ช ์ฐธ์กฐ). ์ด ๋์ฒด ์๋ฃจ์ ์ iOS Safari์ ๋ฌธ์ ๋ฅผ ์์ ํ์ต๋๋ค(iOS 15.0.2์์ ํ ์คํธ๋จ) , Chrome v95.0.4638.54(win10), Firefox v93.0(win10), Opera v80.0.4170.63(win10)๊ณผ ๊ฐ์ด ์ด์ ์ ํ ์คํธํ๋ ์ด์ ๋ธ๋ผ์ฐ์ ์์ ๊ณ์ ์๋ํฉ๋๋ค. MacOS ์ฌํ๋ฆฌ(MacOS Big Sur v11.3.1).
*๋๊ตฐ๊ฐ ์์ ๋ด ์ฝ๋ ์ค๋ํซ์ ์ต์ ํํ ์ ์๋ค๋ฉด ์์ ๋กญ๊ฒ ํด์ฃผ์ธ์~
๊ฒฐ๊ตญ ์ด ๋ฌธ์ ๋ ํธ๋ก์ด์นด ๋ก ์ธํ ๊ฒ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํธ๋ก์ด์นด๋ ์ฌ์ค ๋ ๊น์ ๋ฌธ์ ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒช๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋์ ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ Typr๋ก ์ฎ๊ธฐ๊ฒ ์ต๋๋ค. ํ์ง๋ง ๋ด๊ฐ ์๋ ๊ฒ์... ์ง์ ํ ์คํธํ๊ณ ์ด๊ฒ์ด ๋ฌธ์ ์ ๊ทผ๋ณธ ์์ธ์ธ์ง ๋ ผ์ํด ๋ด ์๋ค. ;)
@malulleybovo ๋ ์์ ๋ฐ์ ์๊ฒฉ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค! ๐ฅณ
๋ฒ์๋ฅผ ์ขํ๊ณ ๋ฌธ์ ๋ฅผ ํผํ๋ ๋์ฒด ๊ตฌํ์ ์๊ฐํด ๋ด๋ ๊ฒ์ ๋๋ผ์ด ์ผ์ ๋๋ค! ์ ๋ง ๊ฐ์ฌํฉ๋๋ค!
๊ทํ์ readShort
์๋ฃจ์
์ troika์ ๋ก์ปฌ ์ฌ์ ์ ๋ฐ/๋๋ Typr์ ์
์คํธ๋ฆผ์ผ๋ก ํตํฉํ๊ฒ ๋ ๊ฒ์ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค. ๋ค๋ฅธ readFoo ๋ฉ์๋์ ๋ํ ๋์ฒด ๊ตฌํ๋ ์ํ ์ ์์ต๋๊น?
์ผ๋ฐ์ ์ผ๋ก typed-arrays-sharing-a-buffer ํจํด์ ๋ฌธ์ ๊ฐ ์๊ฑฐ๋ ์ํํ ๊ฒ ๊ฐ์ต๋๋ค. ์ง๊ธ ์๊ฐํ๋ฉด ์ฐธ ์ ๊ธฐํ ํจํด์ด๋ค. DataView
๋ ๋จ์์ JS ์ซ์ ๋๋ ์๋์ ๋ถ์ผ์น ์ฌ์ด์ ์ด์ํ ๊ฐ ๋ณํ ์์ด ๋ฐ์ด๋๋ฆฌ์์ ๋ค์ํ ์ซ์ ํ์์ ์ฝ๋ ๋ชฉ์ ์ผ๋ก ์ ํํ ์๋๋ ๊ฒ ๊ฐ์ต๋๋ค... ๊ทธ๊ฒ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ง ๊ถ๊ธํฉ๋๋ค. ์๋ง๋ ์ด๋ฐ ๊ฒ? https://gist.github.com/lojjic/94d7b5f5f374598fe0e9761be45ebb2b
@lojjic ์นญ์ฐฌ ๊ฐ์ฌํฉ๋๋ค~ ๋์์ด ๋์๋ค๋ ๋คํ์ ๋๋ค.
๋น์ ์ด ์ ์ํ ์๋ฃจ์
์ด ์ ๋งํด ๋ณด์๊ธฐ ๋๋ฌธ์ ๋ฐฉ๊ธ ํ
์คํธํด ๋ณด๊ณ ์ถ์ธกํ์ต๋๋ค. ๋ํ ์๋ํฉ๋๋ค(์ด์ ์ ๋์ดํ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์)!
DataView๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์๊ฒ ๋ฌป๋๋ค๋ฉด JS์์ ์ด๊ฒ์ ๊ตฌํํ๋ ๊ฐ๊ฒฐํ๊ณ ์ ์ ํ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ข์๋ฐ.
๋ด ์์ฉ ํ๋ก๊ทธ๋จ์ Typr์ readInt8, readShort, readUshort ๋ฐ readBytes๋ฅผ ์ฌ์ฉํ๋ Typr์ glyf ์คํฌ๋ฆฝํธ์ ์์กดํฉ๋๋ค. ํ ์คํธ ๋ชฉ์ ์ผ๋ก ์ ์ฒด ์๋ฃจ์ ์ ํฌํจํ์ง๋ง ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋ํด์๋ง ํ ์คํธํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฒ์ ๊ทธ๊ฒ์ ์ธ๋ชจ์ ๋ฐ๋ผ ์๋ํฉ๋๋ค.
์ด ์๋ฃจ์ ์ ํจ๊ณผ์ ๋ํด ๋ ์์ธํ ์์๋ณด๋ ค๋ฉด ๋ค๋ฅธ ์๋๋ฆฌ์ค๋ฅผ ํ ์คํธํด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ด๊ฒ๋ค์ ํ ์คํธํ ๊ตฌ์ฒด์ ์ธ ์๊ฐ ๋ถ์กฑํฉ๋๋ค(๋จ์ํ ๋จ์ ํ ์คํธ ์ธ์).
Typr์ readFixed, readF2dot14, readUshorts, readUint64, readASCII, readUnicode, readUTF8, readBytes ๋ฐ bin.js์ readASCIIArray๋ ํ์ํ๋ ๋ฐฐ์ด์ ์ง์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฐ๋ผ์ ์์ ์ ๊ธฐ๋ฅ๋ง Typr ๋ด์์ ๋ณ๊ฒฝํ๋ฉด ๋ฉ๋๋ค. ๋ํ ์ด๋ฌํ ๋ณ๊ฒฝ๊ณผ ํจ๊ป Typr์ ๊ณต์ ArrayBuffer ๋ฐ ํ์ํ๋ ๋ฐฐ์ด์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
๋ ๋ง์ ๊ฐ๋ฐ์๊ฐ ์ด๋ฅผ ํ ์คํธํ๊ณ ์น์ธํ ์ ์๋ค๋ฉด ์๋ฃจ์ ์ ๋ํด ๋์ฑ ํ์ ์ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ์ฌ์ฉํ ์ ์๋ ํ ์คํธ ์ผ์ด์ค์ ํ ์คํธ ์ฅ์น์ ์๊ฐ ์ ํ๋์ด ์๊ณ ํ ์คํธ ๊ฒฐ๊ณผ๊ฐ ํธํฅ๋ ๊ฐ๋ฅ์ฑ์ด ์ ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋น์ ์ด ์ ์ํ ์๋ฃจ์ ์ด ์ ๋งํด ๋ณด์๊ธฐ ๋๋ฌธ์ ๋ฐฉ๊ธ ํ ์คํธํด ๋ณด๊ณ ์ถ์ธกํ์ต๋๋ค. ๋ํ ์๋ํฉ๋๋ค(์ด์ ์ ๋์ดํ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์)!
DataView๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์๊ฒ ๋ฌป๋๋ค๋ฉด JS์์ ์ด๊ฒ์ ๊ตฌํํ๋ ๊ฐ๊ฒฐํ๊ณ ์ ์ ํ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ข์๋ฐ.
๋๋ผ์ด!!! ๋๋ ๊ทธ๊ฒ์ ๊ฑฐ์ ๋ฏฟ์ ์ ์๋ค. ๐ ๐ฅณ
๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๊ณ ๊ธฐ๋ณธ ์ฑ๋ฅ ๋น๊ต๋ฅผ ์ํํ ์ ์๋์ง ํ์ธํ๊ธฐ ์ํด ๋ ๋ง์ ํ ์คํธ๋ฅผ ์ํํ๊ฒ ์ต๋๋ค. ๋ถ์พํ ์ผ์ด ๋ฐ์ํ์ง ์๋ ํ ์ต๋ํ ๋นจ๋ฆฌ ํตํฉํ๊ฒ ์ต๋๋ค. ๋๋ ์ด๊ฒ์ troika-three-text ๋ฆด๋ฆฌ์ค์ ํฌํจํ์ฌ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ์๋ํ ์ ์๋๋ก ๋งค์ฐ ์์ ํฉ๋๋ค. ์ปค๋ฎค๋ํฐ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๋ ค์ค ๊ฒ์ ๋๋ค. ์ผ๋จ ์ผ์์์ ์กฐ๊ธ ๋์ค๋ฉด Typr์ ์ ์คํธ๋ฆผ์ผ๋ก ์ ์ถํ ๊ฒ์ ๋๋ค.
์ฑ๋ฅ์ ๋น์ทํ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์กฐ๊ธ ๋ ๋น ๋ฆ ๋๋ค. ์ถ๊ฐ ์น๋ฆฌ! ๐
๋ค๋ฅธ ๊ธฐ๋ฅ๋ ์๋ํ๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. Typr์ด Uint8Array๊ฐ ์๋ ์ผ๋ฐ JS ๋ฐฐ์ด๋ก buff
๋ฅผ ์ ๋ฌํ๋ CFF ๊ธ๊ผด์ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด _view
๋์ฐ๋ฏธ๋ฅผ ์ฝ๊ฐ ์์ ํด์ผ ํ์ต๋๋ค.
DataView ์์ ์ฌํญ์ด ํฌํจ๋ troika-three-test ๋ฒ์ 0.43.1-alpha.0
์ ๊ฒ์ํ์ต๋๋ค(ํ์ฌ Typr ๊ด๋ จ ์ปค๋ฐ ์ ๊ฐ์ธ ํฌํฌ ์ฌ์ฉ)
(@amitrajput1992? @strangerintheq? @atlmtw?) ๋ฅ๋ ฅ์ด ์๋ ์ฌ๋์ด๋ผ๋ฉด ์ด ๋ฒ์ ์ผ๋ก ํ ์คํธํ์ฌ ํน์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋์ง ํ์ธํด ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๋๋ Browserstack์ ์ฌ์ฉํ๊ฑฐ๋ ๋น๋ฆด iPhone์ ์ฐพ์ ๋์ผํ ์์ ์ ์๋ํ ๊ฒ์ ๋๋ค. ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
@lojjic ์ด ๋ฌธ์ ์ ๋ํ ์์ ์ฌํญ์ด ์๋ค๋ ์์์ ๋ฃ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ๋นจ๋ฆฌ ํ ์คํธํด๋ณด๊ณ ๋ค์ ์ฐ๋ฝ๋๋ฆฌ๊ฒ ์ต๋๋ค.
@amitrajput1992 ์๋ ํ์ธ์, ์์ง ์ํ๋ฅผ ํ ์คํธํ ๊ธฐํ๊ฐ ์์๋์? ๋๋ ์ด๊ฒ์ ๋ฆด๋ฆฌ์คํ๊ณ ์ถ๊ฐ ๊ฒ์ฆ์ ์ํฉ๋๋ค. :)
@lojjic ์๋ ํ์ธ์, ๋ฐฉ๊ธ ์ด๊ฒ์ ํ ์คํธํ ์๊ฐ์ด ์๊ฒผ์ต๋๋ค. ์ด์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค!!
์ฌ๊ธฐ์์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ์ญ์์ค: https://amitrajput1992.github.io/r3f-experiments/?path=/story/testers --text-tester
์ด ๋ถ์พํ ๋ฒ๊ทธ๋ฅผ ์์ ํ 0.44.0
๋ฒ์ ์ ์ถ์ํ์ต๋๋ค. ๋๋์ด ํด๊ฒฐ๋์ด์ ๋๋ฌด ๊ธฐ์ฉ๋๋ค! ๋์์ ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํนํ @malulleybovo ๊ฐ ์ ๊ฐ ํ ์ ์๋ ๋ถ๋ถ์ ๊น์ด ํ๊ณ ๋ค์ด ๊ทผ๋ณธ ์์ธ์ ์ฐพ์์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ ๋ง ๊ฐ์ฌํฉ๋๋ค! ๐ฅณ