[Javascript] - Map of JavaScript
JS์์์ Map์ ํค์ ๋ฐฐ์ด๊ณผ ๊ฐ์ ๋ฐฐ์ด ์ด ๋๊ฐ์ ๋ฐฐ์ด์ ์กด์ฌํ๋ค.
๊ฐ์ ์ฐพ์๋๋ ํค์ ๋ฐฐ์ด๊ณผ ๊ฐ์ ๋ฐฐ์ด์ ์ํํ์ฌ ์๋ก ์ธ๋ฑ์ค๊ฐ ์ผ์นํ ๋ ๊ฐ์ ํ์ํ๋ค. ๋ฐ๋ผ์ O(n) ์ด๋ค.
๋ฌธ์
- ์์ ์ค์ ๊ณผ ํ์์ด O(n) ์ด๋ค
- ๋ ์์ ๋ชจ๋ ํค ๋ฐฐ์ด์ ์ํํด์ ๋ง๋ ํค๋ฅผ ์ฐพ์์ผํ๊ธฐ ๋๋ฌธ์
- ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์ํ ์ ์๋ค.
- ๋ ๋ฐฐ์ด๋ก ์ธํด ๊ฐ๊ฐ์ ํค์ ๊ฐ์ ๋ํ ์ฐธ์กฐ๊ฐ ๋ฌดํํ ์ ์ง๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ํค๋ฅผ ์ฐธ์กฐํ๋ ๊ณณ์ด ์๋ฌด๋ฐ๋ ์์ด๋, ๋ฐฐ์ด์ ์ฐธ์กฐ๋ก ์ธํด ํค๊ฐ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ๋์์ด ๋์ง ์๋๋ค. (๊ฐ์ ๋ฐฐ์ด๋ ๋ง์ฐฌ๊ฐ์ง)
WeakMap
ํค๊ฐ ์ค์ง Object
ํ์
๋ง ์ฌ์ฉํ ์ ์๊ณ , Sysbol, ์์๊ฐ์ ํค๋ก ์ฌ์ฉํ ์ ์๋ค.
์ฝํ ์ฐธ์กฐ๋ก ์ธํด WeakMap์ ํค๋ฅผ ์ด๊ฑฐํ ์ ์๋ค. ํค ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๋ ๋ฉ์๋๊ฐ ์กด์ฌํ์ง ์๋๋ค.
ํค๋ฅผ โ์ฝํโ ์ฐธ์กฐ๋ง ๊ฐ์ง๊ณ ์๊ธฐ๋๋ฌธ์ ๊ฐ๋ฐ์ง ์ปฌ๋ ์ ์ ๋ฐฉ์งํ์ง ์์ผ๋ฉฐ, ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ํค ์ฐธ์กฐ ์ญ์ ์ฌ๋ผ์ง๋ค. ๋งต ๋ด์ ๊ฐ ์ญ์ โ์ฝํโ ์ฐธ์กฐ๋ก์ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ๋ง์ง ์๋๋ค
WeakMap์ ํค๊ฐ ๊ฐ๋น์ง ์ปฌ๋ ์ ๋์ง ์์๋๋ง ๊ฐ์น๊ฐ ์๋ ์ ๋ณด๋ฅผ ํค์ ์ฐ๊ฒฐํ ๋ ์ ์ฉํ๋ค