#자료구조(Data structure)
데이터에 편리하게 접근하고 변경하기 위해 데이터를 저장하거나 조직하는 방법.
( + 알고리즘은 그 저장된 데이터를 처리하는 과정이다.)
#프론트엔드에서 자료구조
기본적으로 자바스크립트에서 많은 자료구조를 지원하지 않기도 하고, 보통 프론트엔드 데이터셋은 고급 자료구조를 사용하여 이득이 될 만큼 크지 않다. 그럼에도 불구하고,
Map
{
  key1: "value 1",
  key2: "value 2",
  key3: "value 3",
}
장점
Fast Search : 배열은 전체를 순회하며 값을 찾아야 하는 반면, 해쉬 테이블은 key를 통해 바로 찾고자 하는 값에 접근이 가능하다.
Fast Insertion and Deletion : 해쉬 테이블은 데이터가 정렬되어 있지 않기 때문에, 바로 값을 추가하고 지울 수 있다.
Fast lookup : 배열과 객체 모두 index 또는 key를 알고 있으면 되므로 lookup도 빠르다.
단점 : 무작위 주소 할당으로 인한 문제.
Set
Stack
컨셉) 사용자가 요소를 삭제할 때마다 stack에 추가하기. 만약 사용자가 삭제를 취소하고 싶다면 stack에서 가장 최근에 추가된 요소를 정보를 가져와 추가한다.
리액트에서는 데이터가 불변해야 하므로
Array.push()와Array.pop()은 사용할 수 없다. 대신 새로운 배열을 반환하는Array.concat()와Array.slice()를 사용한다.
예시코드 (상태 업데이트)
Queue
notifications 배열(우리가 만든 queue)에 메세지가 추가된다. 또한 queue에서 알림을 삭제하는 timeout이 설정되어 있다Tree
읽은자료