자바스크립트에서 데이터를 키-값 형태로 저장할 때 가장 먼저 떠오르는 것은 일반 객체(Object)일 것입니다. 하지만 Map 객체는 일반 객체보다 더 강력하고 유연한 기능을 제공하는 자료구조입니다.
Map 객체의 핵심 특징
MDN 공식 문서에 따르면, Map 객체는 다음과 같은 특징을 가집니다.
- 키-값(key-value) 쌍을 저장하며, 키가 삽입된 원래 순서를 기억합니다.
- 어떤 값이든 키나 값으로 사용할 수 있습니다. 즉, 객체와 원시 값(primitive value) 모두 가능합니다.
1. 객체를 키로 사용할 수 있다
Map의 가장 큰 장점 중 하나는 객체 자체를 키로 사용할 수 있다는 점입니다. 일반 자바스크립트 객체는 문자열이나 심볼 같은 원시 값만 키로 허용하기 때문에, 객체를 키로 사용해야 하는 상황에서는 Map이 필수적입니다.
2. 삽입 순서대로 순회 가능하다
또한 Map은 이터러블(iterable)이며, 항상 삽입된 순서대로 요소를 순회합니다. 따라서 키의 순서를 유지하면서 각 키에 값을 연결해야 하는 경우에 Map이 매우 유용합니다.
Map 사용 예제
다양한 타입의 키를 사용하여 Map에 값을 설정하는 예제입니다.
const myMap = new Map();
const keyString = 'a string';
const keyObj = {};
const keyFunc = function() {};
// 다양한 타입의 키로 값 설정
myMap.set(keyString, "String Val");
myMap.set(keyObj, 'Object val');
myMap.set(keyFunc, 'function val');
console.log(myMap.size);
console.log(myMap.get(keyString));실행 결과
위 코드를 실행하면 아래와 같은 결과가 출력됩니다.
3 String Val
정리
Map 객체는 객체를 키로 사용할 수 있고, 삽입 순서를 보장하며, size 속성으로 요소 개수를 쉽게 확인할 수 있는 등 일반 객체보다 뛰어난 기능을 제공합니다. 키의 순서가 중요하거나 복잡한 데이터 구조가 필요하다면 Map 사용을 적극 고려해 보세요.