C++에서는 map, set을 엄청 자주 사용했는데,
JS에서는 이상하게 사용을 안하게 된다.
그러다 반복문에서 include, find 등 람다식을 사용해 이중포문을 만들게 되었고.
5만건의 유저 업데이트 중, O(n2)이라는 무시무시한 경험을 해버렸다.
그래서 부랴부랴 C++에서 사용했던 맵을 다시 사용했다.
const users: User[] = await this.userRepo.find();
// new Map
const userMap: Map<number, User> = new Map<number, User>(users.map((u) => [u.id, u]));
// has
if(userMap.has(1)) console.log('id 1인 유저 포함');
// get
const user1 = userMap.get(1);
// set
userMap.set(2,{id: 2, name: 'jun'});
// delete
userMap.delete(2);
// for
for(const key of userMap.keys()){}
for(const value of userMap.values()){}
for(const [key, value] of userMap.entries()){}
// size
console.log(userMap.size)'Server > 성능개선' 카테고리의 다른 글
| 대용량 쿼리 벌크 업데이트 (0) | 2026.02.19 |
|---|---|
| 평균 15s API 응답속도 2s로 줄이기 (0) | 2025.10.17 |
| MySQL, TypeORM) Lock으로 동시성 문제 해결 (0) | 2025.10.17 |
| NestJS) AWS-S3 효율적인 업로드 방법 (0) | 2025.08.07 |