이터레이터와 제너레이터를 활용한 데이터 변환

데이터 처리는 프로그래밍에서 매우 중요한 부분입니다. 데이터를 변환하고 가공하여 다양한 작업을 수행하는 것은 많은 개발자들이 일상적으로 하는 작업입니다. 이터레이터와 제너레이터는 데이터 변환의 효율성을 높이고 코드의 가독성을 개선하는데 도움을 주는 강력한 도구입니다.

이터레이터란?

이터레이터는 데이터의 컬렉션을 순차적으로 탐색하고, 해당 컬렉션의 다음 요소를 차례대로 반환하는 객체입니다. 자바스크립트에서는 배열이나 문자열 같은 iterable 객체를 생성할 수 있으며, for…of 문을 사용하여 이터레이터 객체를 순회할 수 있습니다.

// 배열을 이터레이터로 변환
const arr = [1, 2, 3, 4, 5];
const iterator = arr[Symbol.iterator]();

// 이터레이터 순회
for (let item of iterator) {
  console.log(item);  // 1, 2, 3, 4, 5
}

제너레이터란?

제너레이터는 이터레이터를 생성하는 함수입니다. 함수 내부에 yield 키워드를 사용하여 값을 반환하고, 제어를 일시 중단한 뒤, 다시 시작하는 것을 가능하게 합니다. 이를 통해 제너레이터는 이터레이터의 동작을 커스터마이징할 수 있습니다.

// 간단한 제너레이터 함수 예제
function* generator() {
  yield 1;
  yield 2;
  yield 3;
}

// 제너레이터 객체 생성
const iterator = generator();

// 제너레이터 객체 순회
for (let item of iterator) {
  console.log(item);  // 1, 2, 3
}

데이터 변환에 이터레이터와 제너레이터 활용하기

이터레이터와 제너레이터는 데이터 변환 작업에 활용하기에 매우 유용합니다. 예를 들어, 배열의 모든 요소에 대해 특정 연산을 수행하거나, 데이터를 필터링하고 가공하는 작업 등을 수행할 수 있습니다.

// 이터레이터와 제너레이터를 사용하여 배열의 요소를 변환하는 예제
const arr = [1, 2, 3, 4, 5];

function* transformArray(arr) {
  for (let item of arr) {
    yield item * 2;
  }
}

const transformedArray = [...transformArray(arr)];
console.log(transformedArray);  // [2, 4, 6, 8, 10]

위 예제에서는 generator 함수를 사용하여 주어진 배열의 각 요소를 2배로 변환하는 작업을 수행합니다. 제너레이터 객체를 순회하고 변환된 값을 새로운 배열에 저장하여 결과를 얻습니다.

이터레이터와 제너레이터는 데이터 처리와 변환 작업을 손쉽게 처리할 수 있는 강력한 기능입니다. 이를 잘 활용하여 코드를 보다 효율적이고 가독성 있게 작성해보세요!

#programming #dataconversion