Symbol·Map·Set은 식별성 규칙으로 고른다
같은 “키와 값” 문제라도 충돌 방지, 임의 키 저장, 중복 제거, GC 연동 중 무엇이 핵심인지가 선택 기준이다.
| 선택지 | 쓸 때 | 핵심 규칙 | 피할 오해 |
|---|---|---|---|
| Symbol | 외부 이름과 충돌하면 안 되는 내부 키 | 매번 고유한 property key | 문자열 키처럼 노출된다고 기대 |
| Map | 객체·함수·DOM 노드를 키로 저장 | 키를 참조 정체성으로 비교 | map[key]처럼 객체 속성으로 접근 |
| Set | 중복 없는 membership 검사 | SameValueZero로 값 중복 제거 | 객체 내용이 같으면 같다고 기대 |
| WeakMap | 객체 수명과 함께 사라질 메타데이터 | 키 객체가 사라지면 GC 가능 | 순회나 size 확인을 기대 |
정해진 필드 모델은 Object, 동적 key-value는 Map, 존재 여부는 Set, 객체 수명 연동 캐시는 WeakMap이 선명하다.