2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

자바스크립트에서 Map과 Set의 차이점은 무엇인가요?

_____
Q1: 자바스크립트에서 Map과 Set은 무엇인가요?
A1:
- Map 은 키-값 쌍(key-value pairs)을 저장하는 컬렉션입니다. 각 키는 유일하며, 값은 중복될 수 있습니다.
- Set 은 중복되지 않는 유일한 값들의 집합을 저장하는 컬렉션입니다. 값 자체가 유일해야 합니다.

---

Q2: Map과 Set의 주요 차이점은 무엇인가요?
A2:
- Map 은 키와 값 쌍을 저장합니다. 키를 이용해 값을 조회, 추가, 삭제할 수 있습니다.
- Set 은 값만 저장하며, 값의 중복을 허용하지 않습니다. 값의 존재 여부를 검사하거나 추가, 삭제할 수 있습니다.
즉, Map은 “키 → 값” 구조, Set은 “값들의 집합” 구조입니다.

---

Q3: Map과 Set은 어떻게 선언하나요?
A3:
```javascript
const map = new Map(); // 빈 Map 생성
const set = new Set(); // 빈 Set 생성
```

---

Q4: Map에 데이터를 추가하는 방법은?
A4:
```javascript
map.set(key, value);
```
예:
```javascript
map.set('name', 'Alice');
```

---

Q5: Set에 데이터를 추가하는 방법은?
A5:
```javascript
set.add(value);
```
예:
```javascript
set.add(10);
```

---

Q6: Map에서 값을 얻는 방법은?
A6:
```javascript
const value = map.get(key);
```
예:
```javascript
const name = map.get('name'); // 'Alice'
```

---

Q7: Set에서 값의 존재 여부 확인 방법은?
A7:
```javascript
const hasValue = set.has(value);
```
예:
```javascript
set.has(10); // true 또는 false
```

---

Q8: Map과 Set의 키나 값 유형에 제한이 있나요?
A8:
- Map 의 키는 문자열 뿐 아니라 객체, 함수, 심볼 등 어떤 원시값이나 참조값도 될 수 있습니다.
- Set 의 값도 마찬가지로 어떠한 데이터 타입도 저장할 수 있으며, 중복되지 않아야 합니다.

---

Q9: Map과 Set의 크기는 어떻게 확인하나요?
A9:
```javascript
map.size; // Map의 항목 개수
set.size; // Set의 요소 개수
```

---

Q10: Map과 Set은 반복문에서 어떻게 사용되나요?
A10:
- Map은 기본적으로 [키, 값] 쌍을 반환합니다.
```javascript
for (const [key, value] of map) {
console.log(key, value);
}
```
- Set은 저장된 값들을 순차적으로 반환합니다.
```javascript
for (const value of set) {
console.log(value);
}
```

---

Q11: Map과 Set의 삭제 메서드는?
A11:
- Map:
```javascript
map.delete(key);
```
- Set:
```javascript
set.delete(value);
```

---

요약
| 구분 | Map | Set |
|-------------|------------------------------|--------------------------|
| 저장 형태 | 키(key) - 값(value) 쌍 | 유일한 값들의 집합 |
| 키/값 유형 | 키는 어떤 타입도 가능 | 값은 어떤 타입도 가능 |
| 중복 허용 | 키는 중복 불가, 값은 중복 가능 | 값 중복 불가 |
| 주요 메서드 | set(key, value), get(key) | add(value), has(value) |

---

필요에 따라 “키-값 쌍”을 관리해야 한다면 Map 을, “유일한 값들의 집합”을 관리해야 한다면 Set 을 사용하세요.
JavaScript에서 `Map`과 `Set`은 두 가지 중요한 데이터 구조로, 각각의 목적과 사용 방식이 다릅니다.

이 두 구조는 ES6(ECMAScript 2015)에서 도입되었으며, 객체와 배열과는 다른 고유한 특성을 가지고 있습니다.

아래에서는 `Map`과 `Set`의 차이점에 대해 자세히 설명하겠습니다.

1. 기본 개념 - Map : 키-값 쌍을 저장하는 컬렉션입니다.

각 키는 고유하며, 어떤 데이터 타입도 키로 사용할 수 있습니다.

`Map`은 삽입된 순서를 기억하며, 키를 통해 값을 빠르게 검색할 수 있습니다.

- Set : 고유한 값의 집합입니다.

중복된 값을 허용하지 않으며, 어떤 데이터 타입도 값으로 사용할 수 있습니다.

`Set`도 삽입된 순서를 기억합니다.



2. 주요 특징 Map의 특징 - 키-값 쌍 : `Map`은 각 요소가 키와 값의 쌍으로 구성됩니다.

- 순서 유지 : `Map`은 요소를 삽입한 순서를 유지합니다.

- 다양한 키 타입 : 문자열, 객체, 함수 등 어떤 데이터 타입도 키로 사용할 수 있습니다.

- 메서드 : - `set(key, value)`: 새로운 키-값 쌍을 추가합니다.

- `get(key)`: 주어진 키에 대한 값을 반환합니다.

- `has(key)`: 주어진 키가 존재하는지 확인합니다.

- `delete(key)`: 주어진 키-값 쌍을 삭제합니다.

- `clear()`: 모든 요소를 삭제합니다.

- `size`: `Map`에 저장된 요소의 개수를 반환합니다.

Set의 특징 - 고유한 값 : `Set`은 중복된 값을 허용하지 않습니다.

동일한 값을 여러 번 추가하려고 하면 무시됩니다.

- 순서 유지 : `Set`도 요소를 삽입한 순서를 유지합니다.

- 메서드 : - `add(value)`: 새로운 값을 추가합니다.

- `has(value)`: 주어진 값이 존재하는지 확인합니다.

- `delete(value)`: 주어진 값을 삭제합니다.

- `clear()`: 모든 요소를 삭제합니다.

- `size`: `Set`에 저장된 요소의 개수를 반환합니다.



3. 사용 사례 - Map 사용 사례 : - 데이터베이스의 레코드처럼 키-값 쌍으로 데이터를 저장할 때 유용합니다.

- 객체의 속성을 동적으로 추가하거나 수정할 필요가 있을 때 사용합니다.

- 특정 키에 대한 값을 빠르게 검색해야 할 때 적합합니다.

- Set 사용 사례 : - 중복된 값을 제거하고 고유한 값의 집합을 유지할 때 유용합니다.

- 특정 값의 존재 여부를 빠르게 확인해야 할 때 사용합니다.

- 데이터의 유일성을 보장해야 하는 경우에 적합합니다.



4. 성능 `Map`과 `Set`은 일반적으로 객체와 배열보다 성능이 뛰어난 경우가 많습니다.

특히, 대량의 데이터를 처리할 때 키-값 쌍 또는 고유한 값의 검색, 추가, 삭제 작업에서 더 나은 성능을 보여줍니다.

그러나 특정 상황에서는 객체나 배열이 더 적합할 수 있으므로, 사용자의 요구에 따라 적절한 데이터 구조를 선택하는 것이 중요합니다.



5. JavaScript에서 `Map`과 `Set`은 각각 고유한 기능과 목적을 가진 데이터 구조입니다.

`Map`은 키-값 쌍을 저장하고, `Set`은 고유한 값의 집합을 관리합니다.

이 두 구조는 데이터 처리 및 관리를 보다 효율적으로 수행할 수 있도록 도와줍니다.

따라서, 특정 상황에 맞는 데이터 구조를 선택하여 사용하면 코드의 가독성과 성능을 향상시킬 수 있습니다.

작성자: 최윤서 [비회원] | 작성일자: 1년 전 2024-09-08 14:47:25
조회수: 249 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.