딕셔너리(Dictionary)란 무엇인가

2020.03.10

메인

딕셔너리(Dictionary)란?

사전의 각 내용이 표제어: 설명의 구조 (ex. 사과: 빨간색의 상큼한 맛의 과일) 로 되어 있는 것처럼, 데이터를 KEY: VALUE의 모음으로 관리하는 자료구조이다.

어떤 항목과 다른 항목의 관계를 모형화 하는데 좋다.

맵(Map) 또는 연관 배열(Associative Array)라고도 한다.

집합(Set, 집합 문서 참고)을 KEY-VALUE 구조로 확장한 자료구조로서, 값은 [KEY, VALUE] 형태로 저장되며 중복되지 않는다.

인터페이스

  • set(key, value) - 딕셔너리에 요소를 추가한다.
  • has(key) - key에 해당하는 요소가 있는 지 확인한다.
  • get(key) - key에 해당하는 값을 반환한다.
  • delete(key) - key에 해당하는 요소를 삭제한다.
  • size() - 딕셔너리에 들어있는 요소의 개수를 반환한다.
  • clear() - 모든 요소를 삭제한다.

구현 - JavaScript에서의 딕셔너리

JavaScript에서는 ES6부터 Map객체를 제공하므로, 이것을 이용하면 된다.

JavaScript의 객체(Object)도 연관배열로 구현되어 있으므로 사용가능 하지만,
Map객체가 데이터 관리에 유용한 메서드를 더 많이 지원하고 좀 더 유연하게 사용가능하다.

// Map 객체를 사용
const map = new Map();

map.set(("배": "속살이 하얗고 달다"));
map.set(("사과": "빨갛고 상큼하다"));

console.log(map.get("배")); // -> "속살이 하얗고 달다"

// Object 객체를 사용
const obj = {};
obj["배"] = "속살이 하얗고 달다";
obj["사과"] = "빨갛고 상큼하다";

console.log(obj["배"]); // -> "속살이 하얗고 달다"

활용 사례

JavaScript의 객체가 Dictionary로 구현되어 있다.

확장 - 해시 테이블 Hash Table [해시 맵 Hash Map]

딕셔너리에 해시함수를 추가하여 성능을 개선한 자료구조이다.
상세 설명은 해시 테이블 Hash Table 페이지에 정리했다.

  • 아디트야 바르가바, 『Hello Coding 그림으로 개념을 이해하는 알고리즘』, 김도형, 한빛미디어(2017)
  • 스기우라 켄, 『그림으로 배우는 알고리즘』, 서재원, 영진(2016)
  • 이소 히로시, 『모던 자바스크립트 입문』, 서재원, 길벗(2018)
  • Martin Erwig, 『그들은 알고리즘을 알았을까?』, 송원형, 영진(2017)
  • Loiane Groner, 『자바스크립트 자료 구조와 알고리즘』, 이일웅, PACKT-에이콘(2015)
글쓴이쿠스, Qus
직업은 소프트웨어 개발자.
기술로 사회문제를 해결하는 시빅해킹(Civic Hacking)에 관심이 많고,
이것저것 생각나는 것들을 글로 정리하는 것을 좋아합니다.