JavaScript의 Map과 Set 2주차 심층 탐구
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
JavaScript는 웹 개발에서 가장 널리 사용되는 프로그래밍 언어 중 하나입니다. 그 중에서도 데이터 구조를 효과적으로 관리하고 활용하기 위한 도구로서 Map과 Set이 있습니다.
이 두 가지 자료구조는 각각 고유한 특징과 용도를 지니고 있어, 개발자들에게 강력한 도구가 됩니다. 이번 포스트에서는 Map과 Set의 정의, 사용법, 그리고 각각의 장단점에 대해 자세히 알아보겠습니다.Map 키-값 쌍의 저장소
Map은 키-값 쌍을 저장하는 자료구조입니다. JavaScript의 기존 객체와 달리, Map은 키의 데이터 타입에 구애받지 않으므로, 문자열뿐만 아니라 객체, 함수 등 다양한 데이터 타입을 키로 사용할 수 있습니다.
Map의 가장 큰 장점 중 하나는 키의 순서가 유지된다는 점입니다. 이는 데이터베이스의 정렬된 필드와 유사한 느낌을 줍니다.Map의 생성 및 기본 메서드
Map을 생성하기 위해서는 new Map()을 사용합니다. 다음과 같은 코드로 Map을 생성해볼 수 있습니다.
javascriptconst myMap = new Map();
Map에 키-값 쌍을 추가하기 위해서는 set() 메서드를 사용합니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
javascriptmyMap.set('name', '홍길동');myMap.set('age', 30);myMap.set('city', '서울');
Map에서 값을 조회하기 위해서는 get() 메서드를 사용합니다. 위의 예시에서 이름을 조회하고 싶다면 다음과 같이 할 수 있습니다.
javascriptconsole.log(myMap.get('name')); // 출력: 홍길동
Map에는 다음과 같은 다양한 메서드가 있습니다.
| 메서드 | 설명 |
|---|---|
set(key, value) | 주어진 키에 해당하는 값을 설정합니다. |
get(key) | 주어진 키에 해당하는 값을 반환합니다. 키가 존재하지 않으면 undefined를 반환합니다. |
has(key) | 주어진 키가 존재하는지 여부를 확인합니다. |
delete(key) | 주어진 키에 해당하는 값을 삭제합니다. |
clear() | Map의 모든 요소를 제거합니다. |
size | Map에 저장된 요소의 개수를 반환합니다. |
Map의 순회 및 데이터 처리
Map의 가장 큰 장점 중 하나는 데이터를 쉽게 순회할 수 있다는 점입니다. keys(), values(), entries() 메서드를 통해 각각 키, 값, 키-값 쌍에 대한 반복자가 생성됩니다.
for...of 루프를 사용하여 데이터를 편리하게 순회할 수 있습니다.```javascript// 키 순회for (const key of myMap.keys()) { console.log(key);}
// 값 순회for (const value of myMap.values()) { console.log(value);}
// 키-값 쌍 순회for (const entry of myMap.entries()) { console.log(entry);}```
위의 코드에서는 각각의 루프를 통해 Map에 저장된 키, 값, 그리고 키-값 쌍을 출력할 수 있습니다. 이처럼 Map은 대량의 데이터를 관리할 때 매우 유용합니다.
Map의 활용 예시
Map은 대량의 데이터를 효과적으로 처리할 수 있는 방법을 제공합니다. 예를 들어, 사용자 정보를 관리하는 애플리케이션을 개발한다고 가정해봅시다.
아래와 같은 형태로 사용자 정보를 저장할 수 있습니다.javascriptconst users = new Map();users.set(1, { name: '홍길동', age: 30 });users.set(2, { name: '김철수', age: 25 });users.set(3, { name: '이영희', age: 28 });
이제 특정 사용자의 정보를 쉽게 조회할 수 있습니다.
javascriptconst userId = 2;if (users.has(userId)) { console.log(users.get(userId)); // 출력: { name: '김철수', age: 25 }}
이렇게 Map을 활용하면, 사용자의 정보를 손쉽게 관리하고 접근할 수 있습니다.
Set 고유한 값의 집합
Set은 고유한 값을 저장하는 자료구조입니다. 중복된 값을 허용하지 않으며, 값만 저장하고 키는 저장하지 않습니다.
이는 수학에서의 집합 개념과 유사합니다. Set을 사용하면 중복된 데이터를 쉽게 제거할 수 있습니다.Set의 생성 및 기본 메서드
Set을 생성하기 위해서는 new Set()을 사용합니다. 예를 들어, 다음과 같이 Set을 생성할 수 있습니다.
javascriptconst mySet = new Set();
Set에 값을 추가하기 위해서는 add() 메서드를 사용합니다. 다음과 같은 방식으로 사용할 수 있습니다.
javascriptmySet.add('값1');mySet.add('값2');mySet.add('값2'); // 중복된 값은 무시됨
Set의 크기를 확인하기 위해서는 size 프로퍼티를 사용합니다.
javascriptconsole.log(mySet.size); // 출력: 2
Set에도 다양한 메서드가 있습니다.
| 메서드 | 설명 |
|---|---|
add(value) | 주어진 값을 추가합니다. 중복된 값은 무시됩니다. |
has(value) | 주어진 값이 존재하는지 여부를 확인합니다. |
delete(value) | 주어진 값을 삭제합니다. |
clear() | Set의 모든 요소를 제거합니다. |
size | Set에 저장된 요소의 개수를 반환합니다. |
Set의 순회 및 데이터 처리
Set 역시 데이터를 쉽게 순회할 수 있는 기능을 제공합니다. for...of 루프를 사용하여 Set에 저장된 모든 값을 순회할 수 있습니다.
javascriptfor (const value of mySet) { console.log(value);}
위의 코드에서는 Set에 저장된 모든 값을 출력할 수 있습니다.
Set의 활용 예시
Set은 주로 중복된 데이터를 제거하는 데 유용하게 사용됩니다. 예를 들어, 배열에서 중복된 요소를 제거하고자 할 때 Set을 활용할 수 있습니다.
javascriptconst array = [1, 2, 3, 2, 1, 4];const uniqueArray = [...new Set(array)];console.log(uniqueArray); // 출력: [1, 2, 3, 4]
이렇게 Set을 사용하면 간단히 중복된 값을 제거할 수 있습니다.
Map과 Set의 차이점 및 활용 방법
Map과 Set은 비슷한 점이 있지만, 사용 목적이 다릅니다. Map은 키-값 쌍을 저장하는 데 유용하며, Set은 고유한 값만을 저장하는 데 최적화되어 있습니다.
각 자료구조의 장단점을 알아보고 필요한 상황에 맞게 선택하여 사용하는 것이 필요합니다.Map과 Set의 비교 표
| 특징 | Map | Set |
|---|---|---|
| 데이터 저장 형태 | 키-값 쌍 | 고유한 값 |
| 키 타입 | 다양한 데이터 타입 | 없음 (값만 저장) |
| 중복 허용 | 중복된 키는 허용하지 않음 | 중복된 값은 허용하지 않음 |
| 데이터 순회 | keys(), values(), entries() 사용 가능 | for...of로 값 순회 가능 |
| 사용 예시 | 사용자 정보 관리, 설정 값 저장 등 | 중복 제거, 고유 값 저장 등 |
결론
Map과 Set은 JavaScript에서 데이터 구조를 보다 효율적으로 관리하기 위한 강력한 도구입니다. 두 자료구조의 특성을 알아보고 적절히 활용하면, 개발자는 더 나은 성능과 가독성을 가진 코드를 작성할 수 있습니다.
이 포스트를 통해 Map과 Set의 기본 개념과 활용 방법을 익히셨기를 바랍니다. JavaScript의 다양한 기능을 활용하여 더욱 풍부한 웹 애플리케이션을 개발해 보시기 바랍니다.관련 글
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기