์ํฉ
์๋ฐ์คํฌ๋ฆฝํธ ์คํฐ๋ ์ค ์ด๋ฐ ์ง๋ฌธ์ ๋ฐ์๋ค.
Q. Map ๊ฐ์ฒด์ ์ผ๋ฐ๊ฐ์ฒด์ ์ฐจ์ด๊ฐ ๋ญ์์?
A. Map์ ๋ฉ์๋๊ฐ ์์ด ๋ฐ์ดํฐ ์กฐ์์ ํ ์ ์๊ณ ... ์ด.. ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ค๋ ์ผ์ ๋ฐ์ฑํ๋ฉฐ Map๊ณผ ์ผ๋ฐ ๊ฐ์ฒด์ ์ฐจ์ด์ ๋ํด ์์๋ณด๋ ค๊ณ ํ๋ค.
1. ์ผ๋ฐ ๊ฐ์ฒด
์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก, ์์ฑ(key)-๊ฐ(value)์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํน์ง
- key๋ก ๋ฌธ์์ด ๋๋ ์ฌ๋ณผ๋ง ์ฌ์ฉํ ์ ์๋ค. ( ์ซ์๋ ๋ค๋ฅธ ํ์ ์ ์๋์ผ๋ก ๋ฌธ์์ด๋ก ๋ณํ๋๋ค.)
new Object()
๋๋ ๊ฐ์ฒด ๋ฆฌํฐ๋ด ๋ฐฉ์({}
)์ผ๋ก ์์ฑํ๋ค.- JSON ํํ๋ก ์ฝ๊ฒ ๋ณํ๋ ์ ์์ผ๋ฉฐ, ์๋ฒ์์ ๋ฐ์ดํฐ ํต์ ์ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
const user = {
name: "Alice",
age: 25,
city: "New York"
};
2. Map
ES6์์ ๋์ ๋ ์๋ก์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก, ๊ฐ์ฒด์ ์ ์ฌํ๊ฒ ํค-๊ฐ ์์ ์ ์ฅํ์ง๋ง ๋ ์ ์ฐํ๊ณ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
ํน์ง
- ํค๋ก ๋ชจ๋ ๋ฐ์ดํฐ ํ์ ์ ์ฌ์ฉํ ์ ์๋ค. ( ๋ฌธ์์ด, ์ฌ๋ณผ, ์ซ์, ๊ฐ์ฒด, ํจ์ ๋ฑ )
- ์ฝ์
์์๋ฅผ ์ ์งํ๋ค. ์ฆ, ๋ฐ๋ณต๋ฌธ(
for...of ๋๋ forEach
)์ ์ฌ์ฉํด ์์ฐจ์ ์ผ๋ก ์์์ ์ ๊ทผํ ์ ์๋ค. - ์ฝ์ /์ญ์ ์ฑ๋ฅ์ด ๊ฐ์ฒด๋ณด๋ค ๋ ํจ์จ์ ์ด๋ค.
size, set, get, has, delete
๋ฑ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
const map = new Map();
map.set('key', 'value');
map.set(123, 'number key');
map.set({ id: 1 }, 'object key');
์ฌ์ฉ์ฒ
- ํค๋ก ๊ฐ์ฒด๋ ํจ์ ๊ฐ์ ๋ณต์กํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๋ ์ ์ฉํ๋ค.
- ๋๊ท๋ชจ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ์ ํฉํ๋ฉฐ, ํนํ ์ฝ์ , ์ญ์ , ๊ฒ์์ด ๋น๋ฒํ ๊ฒฝ์ฐ์ ์ ๋ฆฌํ๋ค.
- ๋ฐ์ดํฐ ์์๊ฐ ์ค์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค.
๋น๊ต ์ ๋ฆฌ
ํน์ฑ | ์ผ๋ฐ ๊ฐ์ฒด(Object) | Map |
ํค ํ์ | ๋ฌธ์์ด ๋๋ ์ฌ๋ณผ | ๋ชจ๋ ๋ฐ์ดํฐ ํ์ (์ซ์, ๊ฐ์ฒด, ํจ์ ๋ฑ) |
ํค ์์ | ๋ณด์ฅ๋์ง ์์ | ์ฝ์ ๋ ์์๋ฅผ ์ ์ง |
ํ๋กํ ํ์ ์ฒด์ธ | ์์ (์์๋ ์์ฑ ํฌํจ ๊ฐ๋ฅ) | ์์ |
๋ฐ๋ณต ๊ฐ๋ฅ ์ฌ๋ถ | ์ง์ ๋ฐ๋ณต ๋ถ๊ฐ ( for...in ์ฌ์ฉ ๊ฐ๋ฅ) |
์์ฐจ์ ๋ฐ๋ณต ๊ฐ๋ฅ ( for...of, forEach ) |
๋ฉ์๋ ์ง์ | ๊ธฐ๋ณธ ๋ฉ์๋ ( hasOwnProperty, toString ) |
๋ค์ํ ์ ์ฉ ๋ฉ์๋ ( set, get, has, delete ) |
์ฌ์ฉ์ฒ | ์ ์ ์์ ๋ฐ์ดํฐ, ํค๊ฐ ๋ฌธ์์ด์ผ ๋ | ๋๊ท๋ชจ ๋ฐ์ดํฐ, ํค๋ก ๊ฐ์ฒด ๋ฑ์ ์ฌ์ฉํ ๋ |
ํ์ผ๋ด
Map์ ๊ณต๋ถํ๋ฉด์, ์ฒ์์ "์ด๊ฑฐ ์ ์์ฐ์ง ์๋?" ๋ผ๋ ์๊ฐ์ ํ๋ค. ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ฌ์ฉํ ์ ์ด ์์๋ค. ๊ทธ๋์ ๊ณต๋ถํ ๋ ์ฃผ์๊น์ ๋ณด์ง ์์๋ค.๐
์ง๋ฌธ์ด ๋ค์ด์์ ๋๋ ์์ฒญ ๋นํฉํ๋ค. ํ์ ์ค ํ๋ถ์ด ์ค์ ๋ฉด์ ์์ ๋ฐ์๋ ์ง๋ฌธ ์ค ํ๋๋ผ๋ ๋ง์ ๋ ๋นํฉํ๋ค.
ํ์๋ถ์ node.js๋ก ๋ฐฑ์๋ ์์ ์ ํ์๋ ๋ถ์ด์๋๋ฐ, DB์์ ํค-๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ Map์ ๋ง์ด ์ฌ์ฉํ๋ค๊ณ ๋ง์ํ์ จ๋ค.
์ด์ ์คํฐ๋ ๊ธฐ๊ฐ๋ ์ผ๋ง ๋จ์ง ์์์ง๋ง, ํ๋ด์ ๋๊น์ง ์ ๋ง๋ฌด๋ฆฌํด์ผ๊ฒ ๋ค. ๐น
'Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํ ์ปจํ ์คํธ์ ๋์ ๊ณผ์ (0) | 2025.01.13 |
---|---|
ํด๋ก์ ์ useState (0) | 2025.01.09 |