Web Basic · Collections

Symbol·Map·Set을 식별성 기준으로 고르기

Symbol, Map, Set은 객체와 배열을 대체하는 유행 문법이 아니라, 고유 키·키값 저장·중복 없는 집합을 더 정확히 표현하는 도구다.

01

고유성 확인

외부 이름과 충돌하면 안 되는 내부 key에는 Symbol을 고려한다.

02

key 타입

문자열이 아닌 객체나 함수 자체를 key로 써야 하면 Map이 맞다.

03

중복 제거

목록에서 고유 id나 tag 집합이 필요하면 Set을 사용한다.

04

직렬화

JSON으로 저장하거나 전송해야 하면 변환 형식을 따로 둔다.

Symbol
고유 속성 같은 설명을 써도 서로 다른 값
JSON에 보통 나타나지 않음
Map
명시적 저장소 size, has, delete, clear API가 명확
순회 순서 유지
Set
membership 이미 본 id, 선택된 tag, 방문한 node 관리
객체는 참조 기준
WeakMap
메타데이터 객체가 사라지면 key도 GC 가능
순회 불가

참조 비교 · JSON · 용도 점검

참조 비교 내용이 같은 객체도 다른 참조면 다른 key다.
JSON Map/Set을 저장할 때 배열이나 객체로 변환한다.
용도 단순 문자열 dictionary라면 plain object도 충분한지 본다.
메모리 DOM node 등을 key로 잡을 때 해제 전략을 고려한다.