JavaScript 컬렉션 - Set

2025. 12. 10. 17:40·FrontEnd/JavaScript

Set 한 줄 요약

Set은 "중복 없는 값 목록(넣은 순서는 유지됨)"이다.
배열처럼 순회할 수 있지만, 같은 값은 중복 저장되지 않는다.

 

처음 보면 배열이랑 뭐가 다르지? 싶을 수 있다.
하지만 Set은 아래 2가지에서 정말 자주 쓴다.

  • 중복 제거
  • 값 존재 여부 확인 (has)

먼저 감 잡기 (배열과 차이)

  • Array(배열): 순서 있는 목록, 중복 허용, 인덱스 접근 가능 (arr[0])
  • Set: 중복 없는 값 목록, 넣은 순서 유지, 포함 여부 확인에 좋음 (set.has(value))
  • 인덱스 접근 / 정렬 / map / filter 중심이면 → Array
  • 중복 제거 / 선택 상태 / 포함 여부 체크 중심이면 → Set

용어 10초 정리

블로그/문서에서 아래 단어가 자주 나오는데, 처음엔 이렇게 이해하면 충분하다.

  • 컬렉션(Collection): 값을 여러 개 담아두는 자료형/자료구조 (예: Array, Set, Map)
  • 이터러블(Iterable): for...of로 순회할 수 있는 값 (예: Array, Set, Map, 문자열)

즉, Set은 "컬렉션"이고, 동시에 "이터러블" 이다.

  • 컬렉션이라서 값을 여러 개 담을 수 있고
  • 이터러블이라서 for...of로 순회할 수 있다

언제 Set을 쓰면 좋은가?

아래 상황이면 Set을 먼저 떠올리면 된다.

  1. 배열에서 중복 제거하고 싶을 때
  2. "이 값 있나?"를 자주 확인할 때
  3. 선택된 ID/태그/권한 목록처럼 "집합" 느낌이 강할 때

실무에서 가장 많이 쓰는 1줄 (배열 중복 제거)

const unique = [...new Set(arr)];
  • new Set(arr) → 중복 제거
  • [... ] → 다시 배열로 변환

이 한 줄만 알아도 Set의 핵심 절반은 이해한 것.


핵심 메서드 5개만 먼저 보기

  • add(value) : 값 추가 (중복이면 무시)
  • has(value) : 값 존재 여부 확인 (true / false)
  • delete(value) : 값 삭제
  • clear() : 전체 삭제
  • size : 저장된 값 개수
const set = new Set();

set.add('apple');
set.add('banana');
set.add('apple'); // 중복이라 무시됨

console.log(set.has('apple')); // true
console.log(set.size);         // 2

 


Set이란?

Set은 중복 없는 값 목록(넣은 순서는 유지됨) 이다.

특징 요약:

  • 같은 값을 여러 번 넣어도 1개만 저장됨
  • 숫자, 문자열, 객체 등 다양한 값 저장 가능
  • 넣은 순서대로 순회 가능
  • for...of, 전개 연산자(...) 사용 가능
저작자표시 비영리 변경금지 (새창열림)

'FrontEnd > JavaScript' 카테고리의 다른 글

JavaScript 배열 고차 함수 - some, every, find, findIndex (조건 탐색 편)  (0) 2025.12.10
JavaScript 배열 고차 함수 - forEach, map, filter, reduce  (0) 2025.12.10
JavaScript 기본기 정리 – 반복문·배열·문자열·Math 한 장에 모으기  (0) 2025.11.04
JavaScript 컬렉션 - Array  (0) 2025.09.09
JavaScript 컬렉션 - Map  (0) 2025.09.09
'FrontEnd/JavaScript' 카테고리의 다른 글
  • JavaScript 배열 고차 함수 - some, every, find, findIndex (조건 탐색 편)
  • JavaScript 배열 고차 함수 - forEach, map, filter, reduce
  • JavaScript 기본기 정리 – 반복문·배열·문자열·Math 한 장에 모으기
  • JavaScript 컬렉션 - Array
프론트엔드 개발자 jbeat
프론트엔드 개발자 jbeat
프론트엔드 개발자 블로그인데 일상도 쪼그으믐
  • 프론트엔드 개발자 jbeat
    jbeat 님의 블로그
    프론트엔드 개발자 jbeat
  • 전체
    오늘
    어제
    • 분류 전체보기 (44)
      • FrontEnd (43)
        • TypeScript (6)
        • JavaScript (18)
        • Next.js (3)
        • React (1)
        • Testing (2)
        • Third Party (1)
        • web (10)
        • Tooling (1)
        • coding test (0)
        • A.I (1)
      • 일상 (1)
        • wedding (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    배열
    playwright
    WebSocket
    pick
    CrossOrigin
    주니어
    preconnect
    omit
    Next.js
    Utility
    이터러블
    TypeScript
    CRDT
    컬렉션
    javascript
    코테
    Android
    고차함수
    타입스크립트
    yjs
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
프론트엔드 개발자 jbeat
JavaScript 컬렉션 - Set
상단으로

티스토리툴바