COLLECTION PATTERN

자료구조 선택은 키, 중복, 수명 조건으로 결정한다

Symbol, Map, Set, WeakMap은 객체와 배열을 대체하는 이름이 아니라 특정 데이터 조건을 더 명확히 표현하는 도구입니다.

Symbol

고유 키

외부 문자열 키와 충돌하지 않아야 하는 내부 프로퍼티에 사용합니다.

Map

임의 키

문자열뿐 아니라 객체와 함수도 키로 저장해야 할 때 선택합니다.

Set

중복 제거

값의 목록보다 존재 여부와 유일성이 더 중요할 때 어울립니다.

Weak

객체 수명

DOM 요소나 객체가 사라질 때 부가 데이터도 정리되길 원하면 검토합니다.

상태 추적

선택된 항목, 방문한 id, 중복 없는 태그는 `Set`으로 존재 여부를 빠르게 판단합니다.

메타데이터

객체별 설정, 캐시, 권한 정보는 `Map`으로 키와 값을 분리해 저장합니다.

라이브러리 내부

공개 객체에 숨은 식별자를 붙일 때는 `Symbol`로 이름 충돌 가능성을 낮춥니다.