피드로 돌아가기
Map & Set
Dev.toDev.to
Frontend

Plain Object 한계를 극복한 Map/Set 기반 고성능 데이터 구조 설계

Map & Set

SATYA SOOTAR2026년 5월 5일11beginner

Context

JavaScript의 Plain Object와 Array를 Key-Value 저장소 및 고유 값 관리 용도로 활용하던 기존 방식의 한계 분석. String 타입에 국한된 Key 제약과 Prototype Pollution 위험 및 빈번한 데이터 변경 시 발생하는 성능 저하 문제 식별.

Technical Solution

  • 임의의 타입(Object, Function 등)을 Key로 활용 가능한 Map 도입을 통한 데이터 모델링 유연성 확보
  • Prototype Chain이 없는 Clean State 구조 설계를 통한 Prototype Pollution 보안 취약점 제거
  • 내장 size 프로퍼티와 Iterable 프로토콜 활용으로 O(1) 시간 복잡도의 크기 확인 및 직관적인 순회 구조 구현
  • 중복 데이터 자동 제거 로직을 가진 Set을 활용하여 Membership Check 성능 최적화 및 데이터 무결성 보장
  • 빈번한 Addition/Removal 작업에 최적화된 Map의 내부 메커니즘을 통한 런타임 효율성 증대

- Key-Value 쌍의 추가/삭제가 빈번한 Dynamic Collection 설계 시 Object 대신 Map 검토 - 데이터의 유일성 보장과 빠른 존재 여부 확인(has)이 필요한 경우 Array 대신 Set 적용 - 사용자 입력값이 Key로 사용되는 경우 Prototype Pollution 방지를 위해 Map 사용 필수 - 복합 데이터 구조 설계 시 Map 내부에 Set을 중첩하여 1:N 관계의 유니크한 관계성 모델링

원문 읽기