[JS ES6] Map, Set 자료형

gminnimk·2025년 3월 25일

JS ES6

목록 보기
28/31

ES6부터는 새로운 자료구조인 MapSet이 추가되었습니다. 이 두 자료형은 기존의 Object와 Array와는 다른 특징과 용도를 가지고 있으며, 각각 "연관 관계 표현"과 "중복 없는 값 저장"에 최적화되어 있습니다.


1️⃣ Map 자료형

개요

  • Map은 키(key)와 값(value) 쌍으로 데이터를 저장하는 자료형입니다.
  • Object와 유사하게 데이터를 저장하지만, key에 모든 자료형(문자열, 숫자, 배열, 객체 등)을 사용할 수 있음으로 차별화됩니다.
  • "이 값이 저 값과 연관되어 있다"는 의미를 명확하게 표현할 때 유용합니다.

기본 사용법

  • Map 생성 및 데이터 저장
    var person = new Map();
    person.set('name', 'Kim');
    person.set('age', 20);
    
    • person.set(key, value)를 사용하여 데이터를 저장합니다.
    • 예제에서는 'name' 키에 'Kim', 'age' 키에 20을 저장합니다.
  • 키로 데이터 접근
    person.get('age'); // 20
    
  • 키 삭제 및 크기 확인
    person.delete('age'); // 'age' 데이터 삭제
    person.size;          // 저장된 데이터 개수 확인
    

다양한 key 사용

  • key에 배열이나 객체도 사용 가능
    var person = new Map();
    person.set([1, 2, 3], 'Kim');
    person.set('age', 20);
    
    • 일반적인 Object는 key로 문자열만 가능하지만, Map은 다양한 자료형을 사용할 수 있습니다.

Map을 활용한 반복문

  • 키를 순회하기
    for (var key of person.keys()){
      console.log(key);
    }
    
  • 초기 데이터 설정하기
    var person = new Map([
      ['age', 20],
      ['name', 'Kim']
    ]);
    
    • 배열을 이용하여 key, value 쌍을 한 번에 설정할 수 있습니다.

참고: 해시 테이블과의 관계

  • Map은 해시 테이블(Hash Table) 개념과 유사하며, 대용량 데이터 검색 시 유리합니다.
  • 기존 Object도 해시 테이블의 원리를 따르지만, key가 문자열로 제한되는 반면 Map은 다양한 자료형을 key로 사용할 수 있습니다.

2️⃣ Set 자료형

개요

  • Set중복되지 않는 유일한 값들의 집합을 저장하는 자료형입니다.
  • Array와 비슷하게 여러 값을 저장할 수 있지만, 동일한 값이 여러 번 들어가도 하나만 저장됩니다.

기본 사용법

  • Set 생성 및 데이터 저장
    var 출석부2 = new Set(['john', 'tom', 'andy', 'tom']);
    console.log(출석부2);
    
    • 위 예제에서 'tom'은 중복되어 입력되었지만, 실제 Set에는 한 번만 저장됩니다.

Set의 주요 메소드

  • 값 추가
    출석부2.add('sally');
    
  • 값 확인
    출석부2.has('tom'); // true 또는 false 반환
    
  • 크기 확인
    출석부2.size;
    
  • 반복문 사용
    • forEach 또는 for...of 문을 사용하여 Set의 값을 순회할 수 있습니다.

Array와 Set의 상호 변환

  • 중복 제거를 위한 패턴
    var 출석부 = ['john', 'tom', 'andy', 'tom'];
    var 출석부2 = new Set(출석부); // Array → Set (중복 제거)
    출석부 = [...출석부2];         // Set → Array (다시 Array로 변환)
    
    • Array를 Set으로 바꾸면 자동으로 중복 데이터가 제거되므로, 간단하게 유일한 값만 남길 수 있습니다.

📌 정리

  • Map
    • 데이터를 키와 값의 쌍으로 저장하며, key에 다양한 자료형을 사용할 수 있습니다.
    • 데이터 간 연관성을 명확하게 표현할 때 유용합니다.
    • 대용량 데이터 검색에 적합한 해시 테이블 원리를 활용합니다.
  • Set
    • 유일한 값들만 저장할 수 있어, 중복 데이터 처리가 필요한 경우 효과적입니다.
    • Array와 쉽게 상호 변환 가능하여, Array의 중복 제거에 많이 사용됩니다.

0개의 댓글