ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toFrontend
์๋ฌธ ์ฝ๊ธฐ
State Machine ๊ธฐ๋ฐ UI์ ๋ฐ์ดํฐ ๊ทธ๋ฃนํ๋ก ๊ตฌํํ ์ ์ง๊ตฌ์ Scale-out 3D ๋งต ์ค๊ณ
๐ Plantera โ Plant Trees on a Living Earth
AI ์์ฝ
Context
์ ์ธ๊ณ ์ขํ ๊ธฐ๋ฐ์ ๋๊ท๋ชจ ๋ง์ปค ๋ ๋๋ง ์ ๋ฐ์ํ๋ ์ฑ๋ฅ ์ ํ์ ๋ณต์กํ UI ์ํ ๊ด๋ฆฌ ํด๊ฒฐ ํ์. ํนํ ์์ฒ ๊ฐ์ ๊ฐ๋ณ 3D ๋ชจ๋ธ ๋ ๋๋ง์ผ๋ก ์ธํ GPU ๋ถํ ๋ฐ ๋ ๋๋ง ๋ณ๋ชฉ ํ์ ํด๊ฒฐ์ด ํต์ฌ ๊ณผ์ .
Technical Solution
- ๊ฐ๋ณ ์๋ฌผ ๋ชจ๋ธ ๋์ Plant type grouping ๊ธฐ๋ฒ์ ์ ์ฉํ ๋ ๋๋ง ๋ถํ ๊ฐ์ ๋ฐ GPU ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ
- ๋๋์ ๋ฐ์ดํฐ์ ์ฒ๋ฆฌ๋ฅผ ์ํ Lazy rendering ๋ก์ง ๋์ ์ผ๋ก ์ด๊ธฐ ๋ก๋ฉ ์๋ ๊ฐ์ ๋ฐ ํ๋ ์ ๋๋ ๋ฐฉ์ง
- ํ์ฅ ๊ฐ๋ฅํ UI ๊ตฌ์กฐ ํ๋ณด๋ฅผ ์ํด State machine architecture ๊ธฐ๋ฐ์ ๋ชจ๋ฌ ์์คํ ์ค๊ณ
- Supabase Storage ๋ฐ Row Level Security(RLS)๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ๋ณด์ ๊ณ์ธต ๋ฐ ํ์ฅ ๊ฐ๋ฅํ ์คํ ๋ฆฌ์ง ๊ตฌ์กฐ ๊ตฌ์ถ
- TypeScript ์ธํฐํ์ด์ค ์ต์ ํ๋ฅผ ํตํ ์๋น์ค ๋ ์ด์ด์ ํ์ ์์ ์ฑ ๋ฐ ์ฝ๋ ์ ์ง๋ณด์์ฑ ๊ฐํ
์ค์ฒ ํฌ์ธํธ
- ๋๊ท๋ชจ ๋ง์ปค ๋ ๋๋ง ์ ๊ฐ๋ณ ๊ฐ์ฒด ์์ฑ ๋์ ์ ์ฌ ์์ฑ ๊ธฐ๋ฐ์ Grouping ๋ ๋๋ง ๊ฒํ - ๋ณต์กํ UI ์ ํ ๋ก์ง ์ค๊ณ ์ ์กฐ๊ฑด๋ฌธ ๊ธฐ๋ฐ ์ ์ด๋ณด๋ค State Machine ๋์ ์ ํตํ ์ํ ์ ์ด ๋ช ํํ - 3D ๋งต ์๋น์ค ๊ตฌ์ถ ์ ๋ฐ์ดํฐ ๊ท๋ชจ์ ๋ฐ๋ฅธ Lazy loading ๋ฐ ๋ ๋๋ง ์ต์ ํ ์ ๋ต ์๋ฆฝ