[javascript] 데이터 구조 개선

자바스크립트에서 데이터 구조는 프로그램의 효율성과 성능에 중요한 영향을 미칩니다. 적절한 데이터 구조를 사용하면 코드를 더욱 효율적으로 작성할 수 있으며, 알고리즘의 성능을 향상시킬 수 있습니다. 이번 글에서는 자바스크립트에서 데이터 구조를 개선하는 방법에 대해 알아보겠습니다.

배열 대신 맵 또는 셋 사용

일반적으로 배열은 데이터를 순차적으로 저장하는 데에 사용됩니다. 그러나 특정한 키와 값의 쌍을 저장해야 하는 경우에는 맵(Map) 또는 셋(Set)을 사용하는 것이 더 나은 선택일 수 있습니다. 맵은 키-값 쌍을 저장하고, 셋은 유일한 값을 저장합니다. 이를 통해 빠른 검색 및 데이터 접근이 가능해지며, 성능 향상에 기여할 수 있습니다.

예시:

// 배열 사용
let arr = [1, 2, 3];
console.log(arr.includes(2)); // true

// 맵 사용
let map = new Map();
map.set('a', 1);
map.set('b', 2);
console.log(map.get('b')); // 2

// 셋 사용
let set = new Set();
set.add(1);
set.add(2);
set.add(3);
console.log(set.has(2)); // true

객체 재구조화

데이터 객체 내의 필요한 속성에만 접근하고자 할 때, 불필요한 속성까지 모두 참조해야 하는 상황은 비효율적입니다. 이런 경우, 객체 재구조화 기능을 이용하여 필요한 속성만 추출하고 새로운 객체를 만드는 것이 좋습니다.

예시:

// 기존 객체
let user = {
  id: 1,
  name: 'John',
  age: 30,
  email: 'john@example.com'
};

// 필요한 속성만 추출하여 새로운 객체 만들기
let { id, name } = user;
let newUser = { id, name };
console.log(newUser); // { id: 1, name: 'John' }

배열 내장 함수 활용

자바스크립트는 배열을 다루는 다양한 내장 함수를 제공합니다. map(), filter(), reduce() 등의 함수를 적절히 활용하면 반복문을 사용하는 것보다 간결하고 효율적인 코드를 작성할 수 있습니다.

예시:

let numbers = [1, 2, 3, 4, 5];

// 배열의 각 요소에 2를 곱하여 새로운 배열 생성
let multiplied = numbers.map(num => num * 2);
console.log(multiplied); // [2, 4, 6, 8, 10]

// 짝수만 필터링하여 새로운 배열 생성
let evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4]

이렇게 자바스크립트에서 데이터 구조를 개선하는 방법을 활용하면 코드의 가독성 및 성능을 높일 수 있습니다.

참고 자료