셋은 집합의 Set이ㅣ고 Map은 줄여쓴것이다(HashMap)
Map이라는 자료구조는 다 Key - Value쌍이다.
Set은 Array이지만 Unique한 Array이다.
Map과 Set은 Index가 없다 (속에서는 다 해쉬테이블로 하기때문에)
자바스크립트는 map을 array의 형태로 가지고있다 ['key', 'value']의 형태이다.
Set은 중복하기 위해 많이쓰는데
Map은 왜쓰는것일까
Map.get('k2')를 하면 한번에 k2에 대한 값을 가져올수있으니 편하다
데이터베이스에 병목이 일어난 다음에 소켓에 병목이 일어난다.
node를 실행시킬때 힙이 잡힌다. (처음에 시작할때 넓게 공간을 잡는다)
Map과 Set은 WeakSet과 WeakMap을 써야한다(가급적이면)
WeakMap을 쓰는 이유는 변하지 않는 값들은 map으로 cache해두고 쓰면 좋은데 WeakMap은 key가 object일때를 의미한다.
Map과 Set에서 가지고있는변수에 대한 반납처리를 하기위해서는 변수와 map키에있는 벨류를 둘다 null로 처리해줘야 메모리가 반납이 되는데 이 처리를 안하고 넘어가면 반납이 늦는 겅우가 많아서 나온것이
WeakSet WeakMap이다.
map.size
m.entries 등등이 함수임에도 ()가 붙지 않은이유는? ->class로 구성되어서 getter setter로 호출해서 쓰는것이기때문
weakMap은 게터함수를 못쓴다(gc가 돌기 전과 후가 size가 다를수있기때문)
weakMap WeakSet은 key값을없앤다.
'SeSac (2021-08 ~ 2021-12) > JS' 카테고리의 다른 글
| deep dive DOM EVENT (0) | 2021.10.30 |
|---|---|
| deep dive 브라우저의 랜더링 과정 (0) | 2021.10.30 |
| 스프레드 연산자 / Distructuring Assignment (0) | 2021.10.26 |
| deep dive Array / Number / (0) | 2021.10.23 |
| deep dive Array (0) | 2021.10.21 |