Tetrapod.js
Tetrapod.js ๋ ๋ณํ๋ ๋น์์ด ๋จ์ด ํํ๋ค์ ํ์ ํ๊ณ ํ์งํ๊ธฐ ์ํด ๊ฐ๋ฐ ๋๊ณ ์๋ ๋ชจ๋ํ ํ๋ก๊ทธ๋จ์ ๋๋ค. ํ๊ตญ์ด์์ ์กด์ฌํ๋ ๋น์์ด ๋จ์ด๋ค์ ์ฐ์ ์ ์ผ๋ก ํ์ง ๋์์ผ๋ก ์ ํ์ฌ ๊ฐ๋ฐ๋๊ณ ์์ผ๋ฉฐ, ํฅํ ๋ชจ๋ ์ธ์ด์์ ๋ณํ๋ ๋น์์ด ํํ์ ํ์งํ๋๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
ํ์ฌ ์ด๊ธฐ ๊ฐ๋ฐ ์งํ ์ค์ ์๋ ํ๋ก์ ํธ์ ๋๋ค.
ํ๋ก์ ํธ ๋ชฉํ
๋์ฒด๋ก ๋ถ์๊ธฐ๊ฐ ์ข์ง ์์ผ๋ฉด, ์ธ์ด ๋ํ ๊ทธ๋ ๊ฒ ๋๋ค. (When the general atmosphere is bad, language must suffer)
์ธํฐ๋ท ์์์ ๋ค์๊ฐ ๋ชจ์ฌ์ ๋ํ ์ค ๋ถ์๊ธฐ๊ฐ ๋๋น ์ง๊ฑฐ๋ ์ฌํ ๋ด ๋ถ์๊ธฐ๊ฐ ๋์๊ฒ ๋๋ฉด, ์ด์๋ฐ๋ผ ์ฌ๋๋ค์ด ์ฌ์ฉํ๋ ์ธ์ด ๋ํ ๊ณผ๊ฒฉํ๊ฒ ๋๊ฑฐ๋ ๋น์์ด๋ ์ ์ํ ๋จ์ด๋ฅผ ์์ด ์ฌ์ฉํ๋ ์ฌ๋๋ค์ด ๋ฑ์ฅํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ์ํฉ์ ๊ทผ๋ณธ์ ์์ธ์ ์ฌํ์ ๋ฌธ์ ์ผ ์๋, ๊ฐ์ธ์ ๋ฌธ์ ์ผ ์๋ ์์ต๋๋ค. ์ด๋ฌํ ํํ์ ๋น์ฌ์์ ๊ฐ์ ์ ๋ด๊ณ ์์ผ๋ฉฐ ์ด๋ฅผ ๋ณธ ์ฌ๋๋ค ๋ํ ๊ฐ์ ์ด ์ํ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊น๋๋ค.
์๊ฐ์ด ์ธ์ด๋ฅผ ์ค์ผ์ํจ๋ค๋ฉด, ์ธ์ด ์ญ์ ์๊ฐ์ ์ค์ผ์ํฌ ์ ์๋ค. (If thought corrupts language, language can also corrupt thought.)
์ธ์ด๋ ๊ฐ์ ์ ์ค์ ์ ์๋ ๋งค๊ฐ์ฒด๋ก์จ, ์ด๋ ํ ์ธ์ด์ ํํ์ ๋ณด๊ณ ๊ธฐ๋ถ์ด ๋์๊ฒ ๋ง๋๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ, ์ด๋ ํ ๊ฐ์ ์ ์ ๋ฌํ๊ธฐ ์ํ ๋ชฉ์ ๋ง์ ์ํด์ ์ฌํ์ ์ผ๋ก ๊ฐ์ธ ๋๋ ์ง๋จ์ ์ํด์ ๋ชจ๋๊ฐ ์ฌ์ฉํ๋ ์ธ์ด๊ฐ ๋ณํ๋ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ฒ ์ธ์ด์ ๋ด๊ธฐ๋ ๊ฐ์ ์๋ ์ฑ์ ์ธ ๊ฐ์ ์ด ๋ด๊ธธ ์๋, ํญ๋ ฅ์ ์ธ ๊ฐ์ ์ด ๋ด๊ธธ ์๋ ์์ผ๋ฉฐ ๊ทธ ์ ํ์ ๋งค์ฐ ๋ค์ํฉ๋๋ค.
ํ๊ตญ์ด๋ ์์๊ณผ ๋ชจ์์ ๋ชจ์์ ์ธ ์ ์๋ ๋ชจ์์ฐ๊ธฐ๊ฐ ๊ฐ๋ฅํ ์ ์์ ๊ธฐ์กด ๋ค๋ฅธ ์ธ์ด๊ถ๊ณผ๋ ๋ค๋ฅด๊ฒ ์ด๋ ํ ๋จ์ด๊ฐ ๋ณํ๋์ด ์๊ธธ ์ ์๋ ํ์๋จ์ด๊ฐ ์๊ธฐ๊ธฐ ๋งค์ฐ ์ฌ์ฐ๋ฉฐ ๋ณํ๋ ๋จ์ด๋ฅผ ๊ธฐ๊ณ์ ์ผ๋ก ํ์งํ๊ธฐ ๋งค์ฐ ์ด๋ ค์ด ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
์์ ์ด ์ฐ๋ ์ธ์ด๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ํ๋ค๋ฉด, ๊ฐ์ฅ ์ด๋ฆฌ์์ ํต์ค๋ก๋ถํฐ ์์ ๋ก์์ง ์ ์๋ค. ๋ถํ์ํ ๊ด์ฉ์ด๋ฅผ ์ธ ์ ์์ผ๋ฉฐ, ์ด๋ฆฌ์์ ํํ์ ์ฐ๋ฉด ๊ทธ ์ด๋ฆฌ์์์ด ์ค์ค๋ก์๊ฒ๋ ๋ถ๋ช ํ ๋๋ฌ๋ ๋ณด์ด๊ฒ ๋๋ค. (If you simplify your English, you are freed from the worst follies of orthodoxy. You cannot speak any of the necessary dialects, and when you make a stupid remark its stupidity will be obvious, even to yourself.)
์ด ํ๋ก์ ํธ์ ๋ชฉํ๋ ์ธํฐ๋ท ์์์ ๋ฒ๋ํ๋ ๋น์์ด๊ฐ ๋ฌด๋ถ๋ณํ๊ฒ ํผ์ง๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์๋ ์ด๋ ํ ๋ฐฉํ์ ์ ๊ฐ์ ๋ชจ๋์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋๋ค. ๋ง์ ๊ณณ์์ ์ฌ์ฉ๋๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ํ๊ธฐ์ ์ด ํ๋ก์ ํธ ๊ตฌ์ฑ์ Copyleft ๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ ๋ฌด์์ ๊ฐ๋ฆฌ์ง ์๊ณ ๋ฌด๋ฃ๋ก ์์ ๋ก์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ฒ๋ ๋ฐฐํฌ๋๋ ๊ฒ์ ๋ชฉ์ ์ผ๋ก ํฉ๋๋ค.
๋ผ์ด์ผ์ค
MIT Licensed
๊ธฐ์กด ๋น์์ด ํ์ง ์ฒด๊ณ์ ํ๊ณ
๊ธฐ์กด์ ํํฐ๋ง์ ๋ฌธ์ฅ ๋จ์๋ก ๋น์์ด ๋ฌธ์๊ฐ ๋ฌธ์์ด ์์ ์กด์ฌํ๋์ง ๋ง์ ํ์ธํฉ๋๋ค. ๊ฐ๋ น ๋ฐ๋ณด
๋ผ๋ ๋น์์ด๋ฅผ ์ฐจ๋จํ๋ ค ํ ๋ ์ด์ฉ์๊ฐ ์๋
๋ฐ๋ณด์ผ
๋ผ๋ ๋ฉ์ธ์ง๋ฅผ ์
๋ ฅํ๋ค๋ฉด, ๋ฐ๋ณด
๋ผ๋ ๋ฌธ์ฅ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ์ ๊ฐ์ด, ๋ณํ๋์ง ์์ ์์ค์ด ์กด์ฌํ๋ ๋ฉ์์ง์ ํํด์๋ง ํ์ง๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ ์๋์ ๊ฐ์ ๋ณํ์ ๋ํด์๋ ๋์ฒํ์ง ๋ชปํฉ๋๋ค.
- ๋ฌธ์ ์ฌ์ด์ฌ์ด์ ๋ถ๊ท์นํ ๊ธ์๋ฅผ ์์์ ๋
์๋ ๋ฐ111๋ณด์ผ
,์๋ ๋ฐ์์์๋ณด์ผ
- ๋ฐ์ ์ ๋๋ ๋ชจ์ ์ ์ ์ฌํ ํํ์ผ๋ก ๋์ฒดํ ๊ฒฝ์ฐ
์๋ ๋น ์๋ฝ์ค์ผ!
,์๋ ba๋ณด์ผ!
- ํ๊ธ ๋ฐ์นจ ๋ฑ ํน์ํ ์กฐํฉ์ ์ด์ฉํด ๋ณํํ ๋น์์ด์ ๊ฒฝ์ฐ
๊ฐ์พํช๋๋ถ
- ๋ฌธ์๋ฅผ ์ผ๋ถ ๋ค์ง์ด์ ํํํ๊ฒฝ์ฐ
์ ๋ฐ ์ข ์ ๋ฅ์ณ!
=>์ ๋ฐ ์ข ์ ์ณ๋ฅ!
๋ํ ๋น์์ด๋ฅผ ์ผ๋ถ ํฌํจํ๊ณ ์์ง๋ง ์ ์์ ์ผ๋ก ์ฐ์ผ ์ ์๋ ๋จ์ด๋ค์ด ์กด์ฌํ์ฌ ์ผ๋ถ ํํ์ ์คํ์งํ ํ๋ฅ ์ ๋์ด๊ธฐ๋ ํฉ๋๋ค.
- ํ์ ๋ฐ์์ ๋์ผํ ๋จ์ด์ด๋ ๋ป์ด ๋ค๋ฅธ ํํ์ด ์ผ๋ถ ๋ํด์ ธ ์๋ ๊ฒฝ์ฐ
๊ทธ ์ฌ๊ฑด์ ์๋ฐ์ ์ A์จ์๋ค.
Tetrapod.js ์ ์ด๋ฌํ ๋น์์ด ํ์ง ์๊ณ ๋ฆฌ์ฆ์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ์ํด์, ์ ์๋จ์ด๋ฅผ ๋จผ์ ์ฐพ์์ ํ์ง ๋ฒ์์์ ๋ฐฐ์ ํ๋ค์, ๋น์์ด ๋จ์ด๋ฅผ ํ ๊ธ์ ์ฉ ์กด์ฌ์ฌ๋ถ๋ฅผ ํ์
ํฉ๋๋ค. ๋ํ ํ๊ตญ์ด ์์ค์ ์์งํ๊ณ ํด๋น ์์ค์ ๋ณํ์ ํ์ ์์ด
, ์์
, ์ด์
3๋จ๊ณ์ ๊ฑธ์ณ์ ๊ฐ๋ฅํ ๋ชจ๋ ๋ณํ๊ฐ๋ฅํ ํํ๋ฅผ ํ์
ํฉ๋๋ค.
ํ๋ก์ ํธ ์ ํ์ง ์๊ณ ๋ฆฌ์ฆ ๊ตฌ์ฑ
Tetrapod.js ์์ ์ฌ์ฉํ๋ ๋น์์ด ํ์ง ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ์๋จ์ด ๋ชฉ๋ก ๊ตฌ์ฑ
์๋ฐ์
๊ณผ ๊ฐ์ ๋จ์ด์ ์คํ์ง๋ฅผ ๋ง๊ธฐ ์ํด์ ์ฌ์ ์ ๋ฌธ์์ด์์ ์ฐพ์์ ๋น์์ด ํ์ง์ ํ์ง๋์์์ ์ ์ธ์ํฌ ์ฉ๋์ ์ ์๋จ์ด ๋ชฉ๋ก์ ๊ตฌ์ฑํฉ๋๋ค.
๋น์์ด๋จ์ด ๋ชฉ๋ก ๊ตฌ์ฑ
- ์ฌ๋ฌ ๋น์์ด ๋จ์ด์ ๋ณํ์ ๋ชจ๋ ํ์
ํ๊ธฐ ์ํด์,
์์ด
,์์
,์ด์
3๋จ๊ณ์ ๊ฑธ์ณ์ ๊ฐ ๊ธ์ ์์๋ค์ ๋ณํ์ ๋ชจ๋ ํ์ ํ์ฌ์ ๋น์์ด ๋จ์ด ๋ชฉ๋ก์ ๊ตฌ์ฑํฉ๋๋ค. ํด๋น ๋ด์ฉ์ ํ๋จ์ Bias ๊ตฌ์ฑ๋ ์์ ์์ธํ ์ค๋ช ํฉ๋๋ค.
ํ๋ก์ ํธ ์ ํ์ง ์๊ณ ๋ฆฌ์ฆ ๊ตฌ์ฑ
Tetrapod.js ์์ ์ฌ์ฉํ๋ ๋น์์ด ํ์ง ์๊ณ ๋ฆฌ์ฆ์ ์งํ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ์ ๋จ์ด ํ์ ํ ๋ฐฐ์
- ๋ฉ์์ง์์ ์ ์๋จ์ด๋ฅผ ์ฐพ์์ ํด๋น ๋ฌธ์์ด์ ์์ ์์น์ ๋๋๋ ์์น๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ํด๋น ๋ฌธ์์ด ๋ฒ์๋ ์ดํ ์๊ณ ๋ฆฌ์ฆ ํ์ง์ ๋ฒ์์์ ๋ฐฐ์ ๋ฉ๋๋ค.
๋ฉ์์ง์ 15์๋จ์ ๋ถ๋ฆฌ
- ๋ชจ๋ ๋ฌธ์์ด์ 15์ ๋จ์์ ์ฒญํฌ ๋ฉ์์ง ๋ก ๋ถ๋ฆฌ๋ฉ๋๋ค.
ํ ๊ธ์์ฉ ๋น์์ด ๋จ์ด ํ์
- ๊ฐ์ถ๊ณ ์๋ ๋ชจ๋ ๋น์์ด ๋ฌธ์๋ฅผ ๊ธ์๋จ์๋ก ๋ชจ๋ ๋ถ๋ฆฌํฉ๋๋ค. ๊ทธ ํ ์ฒญํฌ ๋ฉ์์ง์ ํด๋น ๋น์์ด ๋ฌธ์์ ๊ธ์๊ฐ ์กด์ฌํ๋์ง, ๋ช๋ฒ์งธ ์์น์ ์กด์ฌํ๋์ง๋ฅผ ํ์ ํฉ๋๋ค.
- ๋ง์ฝ ๋ฌธ์๋ค์ด ๋ชจ๋ ์กด์ฌํ ๊ฒฝ์ฐ ํด๋น ๋ฌธ์๋ค์ ์์น๋ฅผ ํด๋น ๋น์์ด ๋จ์ด์ ๊ธ์์์๋๋ก ์ ๋ ฌํฉ๋๋ค. ์ด๋ ๋ง์ฝ ์์๊ฐ ์ผ๊ด๋์ง ์๋ค๋ฉด ๊ธ์๊ฐ ์์ฌ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
- ๋ง์ฝ ๊ธ์๊ฐ ์์ฌ์๋ ๊ฒฝ์ฐ ๋น์์ด ๋จ์ด์ ์ฌ์ด์ ์์ฑ๋ ํ๊ธ ๋ฌธ์๊ฐ ์กด์ฌํ๋์ง๋ฅผ ํ์ธํ๊ณ ์กด์ฌํ๋ค๋ฉด ์ด๋ฅผ ๋น์์ด ๋ชฉ๋ก์์ ์ ์ธํฉ๋๋ค. (
ใฑ
,ใ
๋ ์์ฑ๋ ํ๊ธ์ด ์๋๋ฉฐ ์์ฑ๋ ํ๊ธ์ ์ ๋์ฝ๋๋ก๊ฐ
(0xAC00) ~ํฃ
(0xD7A3) ์ฌ์ด์ ๊ธ์๋ฅผ ๋ปํฉ๋๋ค.) ๋ํ ์์ฑํ ๊ธ์์ด๋๋ผ๋ ์์์ดใ
์ธ๊ฒฝ์ฐ์๋ ๋น์์ด ์์ธ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์ต๋๋ค.์: ๋ฐ์์๋ณด์ค ์ ๊ฐ์ด ์ด์ด์ฃผ๋ ์์ ๊ฒฝ์ฐ ๋น์์ด ์ฒ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
Bias ๋ฐ์ดํฐ ํฌ๋ฉง
- ๋น์์ด ๋จ์ด๋ ์์ด๋ง๋ค ๋ฐ์์ด ์ฝ๊ฐ์ฉ ๋ฌ๋ผ์ง๊ฑฐ๋ ๋ชจ์์ด ์ฝ๊ฐ์ฉ ๋ฌ๋ผ์ง๋ ๋ณํ ๋จ์ด๊ฐ ํ์๋ ์ ์์ผ๋ฏ๋ก, ๊ฐ ์์ด๋ณ๋ก ๋ชจ๋ ๋ณํ ๊ฐ๋ฅํ ์กฐํฉ์ ์์๋ด์ผํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ๋ช ํํ๊ฒ ํ์ ํ๊ธฐ ์ํด์ ๋ชจ๋ ์์ด๊ณผ ์์ , ์ด์ ์ ์ฐ์ผ ์ ์๋ ๊ตฌ์กฐ๋ฅผ 1์ฐจ์ ๋ฐฐ์ด ๋๋ 2์ฐจ์ ๋ฐฐ์ด๋ก ํํํ์ฌ์ ๋ณํ๊ตฌ์กฐ๋ฅผ ์ด์ ๋จ๊ณ์์ ํ์ ํ ์ ์๋ ์ด๋ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ํ์ํฉ๋๋ค. ์ด๋ฅผ ์ํด์ ๊ฐ๋ฐ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ Bias ๋ฐ์ดํฐ ํฌ๋ฉง์ ๋๋ค.
RecursiveList
- Bias ๋ฐ์ดํฐ ํฌ๋ฉง์ ํํฐ์ ์ฌ์ฉ๋ ๋น์์ด๋ฅผ 2์ฐจ์ ๋ฐฐ์ด์ ์ค์ฒฉํด๋๊ฐ๋ฉด์ ์กฐํฉ๋ ๋จ์ด์ ๋ชฉ๋ก์ ๊ตฌ์ฑํ ์ ์๊ฒ ๋์ต๋๋ค. 2์ฐจ์ ๋ฐฐ์ด์ before+after ๊ตฌ์กฐ๋ก, ๊ฐ ์ฐจ์ ๋ฐ์ดํฐ๊ฐ ํฉ์ณ์ ธ์ ๋จ์ด๋ฅผ ๊ตฌ์ฑํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฅผ RecursiveList ๋ผ๊ณ ํ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ์์ํํ๋ก ๊ตฌ์ฑ๋ ์ ์์ต๋๋ค.
2์ฐจ์ ๋ฐฐ์ด ์์
letย dataย =ย ย ย ย ย "๋ฐ"ย ย ย ย "ba"ย ย ย ย "๋ณด"ย ย ย ย "bo"letย resultย =ย Biasletย resultCheckย =ย ย ย ย ย "๋ฐ๋ณด"ย ย ย ย "๋ฐbo"ย ย ย ย "ba๋ณด"ย ย ย ย "babo"console//ย true
์ค์ฒฉ๋ 2์ฐจ์ ๋ฐฐ์ด ์์
RecursiveList ๋ก๋ ์์๊ณผ ๋ชจ์์ ๋ณํ๊ณผ์ ์ ์ธ๋ถํํด์ ๋ช ์ํ๋๋ฐ ์ ํฉํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถ๊ณ ์์ต๋๋ค. ํ์ง๋ง ์์ ๋ชจ์์ ํฉ์ฑํด์ ์์ฑ๋ ํ๊ธ๋ฌธ์๋ก ํฉ์น๋ค๋์ง, ์์๊ณผ ๋ชจ์์ ์ฌํ์ฉํ ์ ์๋ ์ด๋ ํ ๊ตฌ์กฐ๋ RecursiveComponent ์์ ๋ค๋ฃน๋๋ค.
letย dataย =ย ย ย ย ย ย ย ย ย ย ย ย ย 'ใ
'ย ย ย ย ย ย ย ย 'ใ
'ย ย ย ย ย ย ย ย ย ย ย ย 'ใ
'ย ย ย ย ย ย ย ย 'ใ
'ย ย ย ย ย ย ย ย "ba"ย ย ย ย "๋ณด"ย ย ย ย "bo"letย resultย =ย Biasletย resultCheckย =ย ย ย ย ย "ใ
ใ
๋ณด"ย ย ย ย "ใ
ใ
๋ณด"ย ย ย ย "ใ
ใ
๋ณด"ย ย ย ย "ใ
ใ
๋ณด"ย ย ย ย "ใ
ใ
bo"ย ย ย ย "ใ
ใ
bo"ย ย ย ย "ใ
ใ
bo"ย ย ย ย "ใ
ใ
bo"ย ย ย ย "ba๋ณด"ย ย ย ย "babo"console//ย true
RecursiveComponent
RecursiveComponent ๋ RecursiveList ์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ ๋ฐฐ์ด ์์์ ์ฌ์ฉ๊ฐ๋ฅํ ๋ถ๊ฐ์ ์ธ ํจ์๊ฐ๋ ์ ์ ๊ณตํฉ๋๋ค.
๋ณ์ ๋ฐ ์ฝ๋ ๋ถ๋ฆฌ
RecursiveComponent ๋ ๋ณ์
์ ์ฝ๋
๊ฐ ์กด์ฌํ๋ฉฐ, ์์๊ณผ ๋ชจ์ ๊ฐ์ด ํ๊ธ๋ฌธ์์ ์ต์ ๋จ์์ธ ์์ด
์ RecursiveList ๋ก ํํํ ๋ ์ฌํ์ฉ์ฑ์ ๋์ด๊ธฐ ์ํด์ ๋ณ์
๋ฅผ ์ฌ์ฉํ๋ฉฐ, ํด๋น ์์ด
๋ค๋ก ์ด๋ ํ ์ต์ข
์ ์ธ ์์
์ ๊ตฌ์ฑํ ๋ ์ฝ๋
๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
์์ ๋ก์ด JSON ํ์ผ๊ตฌ์ฑ
RecursiveComponent ๋ฅผ ๊ตฌ์ฑํ ๋ ํ๊ตญ์ด์ ๊ฒฝ์ฐ ์์ด
, ์์
, ์ด์
์ ํํ๋ก ๊ตฌ์ฑ๋ ์ ์์ง๋ง, ํฅํ ๊ฐ๋ฐ ๊ณผ์ ์์ ์๋ก์ด๊ตฌ์กฐ๊ฐ ํ์ํ๊ฑฐ๋, ์ฐจํ ๋ค๋ฅธ ์ธ์ด์ ํ์ฅํํ๋ก ๋ค๋ฅธ ๊ตฌ์กฐ๋ฅผ ์ทจํด์ผํ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ์, ๋ณด๋ค ์ ์ฐํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํด์ผํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ์ํด์ JSON ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ํํํ ์ ์๊ฒ ํ์ฉํ๊ณ ์์ผ๋ฉฐ, JSON ๋ฐ์ดํฐ๋ ํด๋น ์์คํด๋ ์์๋ง ์๋ค๋ฉด ๋ด๋ถ์ ์ผ๋ง๋ ์ค์ฒฉ๋ ํด๋์๋์ JSONํ์ผ์ด ์กด์ฌํ๋, ์ด๋ค ์ด๋ฆ์ผ๋ก ํด๋๊ฐ ์กด์ฌํ๋, ์ด๋ค ์ด๋ฆ์ผ๋ก JSON ํ์ผ์ด ์กด์ฌํ๋ ์ด๋ฅผ ๋ชจ๋ ์์งํด์ ๊ตฌ์ฑํ ์ ์๊ฒ๋ RecursiveComponent ๋ฅผ ๊ตฌ์ฑํ์๊ณ , ์ด๋ฅผ ํตํด์ ์์ ๋กญ๊ฒ ๋ฐ์ดํฐ ๋ช
์นญ ๋ถ์ฌ๋ฅผ ํ๊ณ ์์ ๋ก์ด ๋ฐ์ดํฐ ์นดํ
๊ณ ๋ฆฌ ๋ถ์ฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
JSON๋ด์์์ ๋ณ์ ๊ตฌ์ฑ ์
JSON ์์ ๊ฐ์ฒด๋ฅผ ํ๋ ์์ฑํ ๊ทธ ์์ var
๋ผ๋ ์ด๋ฆ์ ๊ฐ์ฒด๋ฅผ ํ๋ ๋ด์ผ๋ฉด, ๊ทธ var
๊ฐ์ฒด ์์ ๋ณ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ํ๊ตญ์ด ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ์ ์ด๋ฅผ ํตํด์ ์์ด
๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ๋ฉฐ, ์ด ๊ณผ์ ์์ ํ ์์ด
์ ๋ฐ์๋ณํ
๊ณผ ๋ชจ์๋ณํ
๋ฐ์ดํฐ๋ฅผ RecursiveComponent ๋ก ๋ชจ๋ ๊ตฌ์ฑํฉ๋๋ค. ์ด๋ ๊ฒ ๊ตฌ์ฑ๋ ใ
์ ์์ด ๋ฐ์ดํฐํ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
JSON๋ด์์ ๋ณ์ ๊ฐ ์ฐธ์กฐ
JSON ํํ๋ก Bias ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ ๋ ๋ณ์๋ฅผ ๊ตฌ์ฑํ ์ ์๋๋ฐ, ์ด ๋ณ์ ๋ด์์ ๋ค๋ฅธ ๋ณ์๋ฅผ ์จ์ผํ๋ ์ํฉ์ด ์๊ธธ ์ ์์ต๋๋ค. ํ๊ตญ์ด๋ ์ฃผ๋ก ์์
๋ฐ์ดํฐ ๊ตฌ์ฑ์ ์์ด
๋ณ์๋ฅผ ๋ถ๋ฌ์์ผํจ๊ณผ ๋์์ ์์ ๋ ๋ณ์์ฌ์ผํ๋ ์ํฉ์ด ๋ฐ์ํ๋๋ฐ, ์ด๋ฐ ์ํฉ์ ์ํด์ ๋ณ์๊ฐ ๋ณ์๋ฅผ ์ฐธ์กฐํ ์ ์๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๋ณ์๋ RecursiveList ๋ฅผ ์ฌ์ฉํ ๋ ์์ ์์ *
๋ฅผ ๋ถ์ฌ์ ์ฌ์ฉํ๋ฉด ํด๋น ์์น์ ๋ณ์ ๋ฐ์ดํฐ๊ฐ ์ฐธ์กฐ๋ฉ๋๋ค. ์์
๋ฐ์ดํฐ ๊ตฌ์ฑ ์
๋ณ์๊ฐ ์ฐธ์กฐ ๋ฐ ํจ์ ์ฌ์ฉ ์์
ํด๋น ๋น์์ด ํ์ง ์ฒด๊ณ์ ํ๊ณ
ํด๋น ํ๋ก์ ํธ๋ ๋ฌธ๋งฅ์ ์ดํดํ๊ณ ๋ฌธ๋งฅ์์์ ์ด๋ ํ ๋จ์ด๊ฐ ๋ถ์ ์ ํ ์๋๋ก ์ฌ์ฉ๋์๋์ง, ํํ์๋
๋ฅผ ํ๋จํ์ง๋ ๋ชปํฉ๋๋ค.
- ๋จ์ด์ ๋์์ด์์ด๋ก ํํ ์ ๊ตฌ๋ณ์ ์ด ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ
2016๋ ๋ณ์ ๋ (ไธ็ณๅนด)์๋ ์ด๋ฌํ ์ผ์ด ์์์ต๋๋ค.
- ์ ์๋จ์ด๋ฅผ ์๋๊ฐ ๋ถ์ํ๊ฒ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
๋๋ ์ด๋จธ๋๊ฐ ์๊ตฌ๋
- ๋น์์ด๋ก ์คํด๊ฐ๋ฅํ ์ ์๋จ์ด๋ฅผ ์๋๊ฐ ๋ถ์ํ๊ฒ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
๋๊ฐ ์๋ฐ์ ์ด์ผ ์ด ์๋ฐ์ ์!
๊ฐ๋ฐ ๋ชฉํ
- ๊ตญ๋ฆฝ๊ตญ์ด์์์์ ํ๊ตญ์ด ์ ์ ๋จ์ด ๋ชฉ๋ก ํ๋ณด
- ์ธํฐ๋ท ์์์ ์ฐ์ด๋ ๋น์์ด ๋ฐ์ดํฐ 1์ฐจ ์์ง
- ๋ฌธ์์ด ์์์ ์ ์๋จ์ด๋ฅผ ์ฐพ์์ ๋ชจ๋ ์ ์๋จ์ด ์์น๋ฅผ ํ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ
- ๊ธ์๋จ์ ๋น์์ด ๋จ์ด ํ์ง ์๊ณ ๋ฆฌ์ฆ
- ๋ค์งํ๊ฑฐ๋ ๋ค์์ธ ๋น์์ด ๋จ์ด ํํ์ ๊ฒฝ์ฐ ์ฌ๋์ด ์ธ์ง ๊ฐ๋ฅํ ์์ค๋ง์ ๋น์์ด๋ก ์ ์ ํด์ ์ฐจ๋จํ๋ ์๊ณ ๋ฆฌ์ฆ ์ถ๊ฐ
- ๋น์์ด๋จ์ด ๋ง์ ์ญ์ ํ๊ฑฐ๋ ํน์ ํน์๋ฌธ์๋ก ๋์นํ๋ ํํ ์ ์ ํจ์
- ๋น์์ด ๋จ์ด์ ๋ณํ ์๋ฅผ
์์ด
,์์
,์ด์
3๋จ๊ณ๋ก ๋๋์ด์ ์ ๋ฆฌํด๋๊ฐ ์ ์๋ ๋ถํ ๋ JSON ๊ธฐ๋ฐ ํ์ผ ๋ฐ์ดํฐ ๋ณํฉ ์ฒด๊ณ - ๋ฐฐ์ดํํ๋ก ๋จ์ด๋ฅผ ์ /ํ ๊ฐ์ผ๋ก ๋๋ ์ ๊ตฌ์ฑํ ์ ์๋ Bias ๋ฐ์ดํฐ ํฌ๋ฉง (์: ๋ฐ๋ฅผ
ใ /ใ
๋ก ๋๋์ด์ ํํํ ์ ์๊ฒ ํ๋ ์ฒด๊ณ๋ฅผ ๋ปํฉ๋๋ค.) - n์ฐจ์ ํํ๋ก ์ค์ฒฉ์ํฌ ์ ์๋ Bias ๋ฐ์ดํฐ ํฌ๋ฉง ๊ตฌ์ฑ (
๋ฐ/๋ณด
๋ผ๋ ๋จ์ด์ ๋ณํ ์๋ฅผ ๋ชจ๋ ๊ตฌํ ๋, ๋ณ๋๋ก ์กด์ฌํ๋ใ /ใ
์ใ /ใ
๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐ์์ผ์ ๊ตฌ์ฑ์ํฌ ์ ์๋ ์ฒด๊ณ๋ฅผ ๋ปํฉ๋๋ค.) - n์ฐจ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํ ์ ์๋ Bias ๋ฐ์ดํฐ ํฌ๋ฉง
- Bias ๋ฐ์ดํฐ ํฌ๋ฉง์์์ ์์ ๋ณ์
- Bias ๋ฐ์ดํฐ ํฌ๋ฉง์์์ ์์ฉ ํจ์
- Bias ๋ฐ์ดํฐ ํฌ๋ฉง์์์ ์๋ชจํฉ์ฑ ํจ์
- Bias ๋ฐ์ดํฐ ํฌ๋ฉง์์์ ๊ฒฐ๊ณผ๋ฐฐ์ ํจ์
- Bias ๋ฐ์ดํฐ ํฌ๋ฉง์์ ํ ์คํธ ์ค ์ค๋ณต์์ ๋ ๋จ์ด ํ์ง ๋ฐ ์ญ์ ํํฐ
- 1์ฐจ ์์ง๋ ๋น์์ด ๋ฐ์ดํฐ์ Bias ์ฌํด์
- LZString ์ ํตํ Bias ๋ฐ์ดํฐ์ minify ํ ๋ฐ ์์ถ ์ถ์ถ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋ก๋ ์ฒด๊ณ
- ์ ์ฒด ๋น์์ด ๋จ์ด ๋ชฉ๋ก์ ์ฌ์ ์ ์ ์ฅํ๋ ํํ๊ฐ ์๋, ๋น์์ด ๋จ์ด ํ์ง๊ฐ ๋ฐ์ํ ๋ ํด๋น ๋จ์ด ๋ชฉ๋ก์ ์ค์๊ฐ์ผ๋ก ๊ตฌ์ฑํ์ฌ์ ์ฐ๋ค๊ฐ, ์ด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ LRU ์บ์ฑ ํด๋๊ณ ์์ผ๋ก ์ ์ฒด ๋ฐ์ดํฐ ์ฉ๋์ ์ค์ด๋ ๋์ ์ธ Bias ๋ฐ์ดํฐ ํด์ ์ฒด๊ณ
- ์ฒญํฌ ๋ฉ์์ง์ 15์->30์ ํ๋ ๋ฐ, ์ฒญํฌ ๋ฉ์์ง๊ฐ ์ฐ์๋ ๊ฒฝ์ฐ, ์ค๊ฐ์ 15์๋ผ๋ฆฌ ์ด์ด์ ์๋ก์ด ์ฒญํฌ๋ฉ์์ง๋ฅผ ์์๋ก ๋ง๋ค์ด์ ๊ฒ์ฌ๋ฅผ ๋๋ฆฌ๋ ๋ณด์์ฒด๊ณ (์ฒญํฌ ๋ฉ์์ง ์ฌ์ด์ ๊ฑธ๋ ค์ ํํฐ๋ง ๋์ง ์๋ ์์ธ ์ํฉ ํด๊ฒฐ)
- ์ฒญํฌ ๋ฉ์์ง์์ ๋น์์ด ๋จ์ด์ ๊ธ์๊ฐ ๋ฉ์์ง ์์ ์๋์ง ํ์ธํ ๋ ์ค์ฒฉ์ ์ผ๋ก ์กด์ฌํ๋ ๊ธ์๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ, ์ด๋ฅผ ๋ชจ๋ ์์งํ ํ ๋ชจ๋ ๊ฒฝ์ฐ์๋ฅผ ๋ค ๊ณ์ฐํด์ ๋น์์ด ๊ฒ์ฐํ๋ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
- ๊ฒ์์์ง ๊ธฐ๋ฐ ์น ํฌ๋กค๋ง์ ํตํ ๋น์์ด ํ์ง์๋ ๋ฐ ๋ณํ๋จ์ด ์์ง์๋
- ํ ์คํธ ํ์ด์ง ๋ฐ ํ ์คํธ ์๋ฒ ๊ตฌ์ฑ
- gpu.js ์์ด๋ ๊ธฐ๋ฐ์ GPU ๋ณ๋ ฌ ์ฐ์ฐ ๊ฐ์ํ ๊ตฌํ (๋ชจ๋ ์ฒญํฌ๋ฉ์์ง๋ฅผ ์ซ์ ๋ฐฐ์ดํ ํ ํ ์ฝ์ด๋จ์ ์ด๋ฅผ ๊ณต์ ๋ ๋ฉ๋ชจ๋ฆฌ ํํ๋ก ์ ๋ฌํ๊ณ , ์ซ์ ๋ฐฐ์ดํ ๋ ๋น์์ด ๋ฌธ์๋ค์ ์ฝ์ด์๊ฒ ์ ๋ฌํ๋ฉด ์ด๋ฅผ ๋ชจ๋ ์ฝ์ด ํ๋ํ๋๊ฐ ๊ฐ๊ฐ์ ์ซ์๋ฐฐ์ด ์ผ์น ์ ๋ฌด๋ฅผ ํ์ ํ๋ ๊ตฌ์กฐ)