이터레이터는 프로그래밍에서 데이터를 처리하는 강력한 도구입니다. 이터레이터를 사용하면 데이터를 검증하고 변경하는 플로우를 간편하게 구현할 수 있습니다.
이터레이터란?
이터레이터는 데이터 집합을 순차적으로 접근할 수 있는 객체입니다. 간단히 말하면, 데이터에 접근하는 커서 역할을 수행합니다. 이터레이터는 next()
메서드를 호출하여 다음 데이터를 가져올 수 있습니다. 데이터 집합에 더 이상 데이터가 없을 때는 StopIteration
예외가 발생합니다.
데이터 검증하기
이터레이터를 사용하면 데이터를 검증하는 단계를 효율적으로 구현할 수 있습니다. 예를 들어, 숫자 리스트에서 홀수만 필터링하는 경우를 살펴보겠습니다. 아래는 Python 코드의 예시입니다:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def odd_numbers(numbers):
for num in numbers:
if num % 2 != 0:
yield num
odd_nums = odd_numbers(numbers)
for num in odd_nums:
print(num)
위의 코드에서 odd_numbers()
는 이터레이터를 반환하는 제너레이터 함수입니다. numbers
리스트를 순회하면서 홀수만 반환합니다. 이를 통해 필요한 데이터만을 추출할 수 있습니다.
데이터 변경하기
이터레이터를 사용하면 데이터를 변경하는 과정을 간소화할 수 있습니다. 예를 들어, 문자열 리스트에서 모든 문자열을 대문자로 변경하는 경우를 살펴보겠습니다. 아래는 JavaScript 코드의 예시입니다:
const strings = ['apple', 'banana', 'cherry'];
function changeToUpper(strings) {
return {
[Symbol.iterator]() {
let index = 0;
return {
next() {
if (index < strings.length) {
const value = strings[index].toUpperCase();
index++;
return { value, done: false };
} else {
return { done: true };
}
}
};
}
};
}
const upperStrings = changeToUpper(strings);
for (const str of upperStrings) {
console.log(str);
}
위의 코드에서 changeToUpper()
함수는 이터레이터를 반환하는 객체를 생성합니다. strings
배열을 순회하면서 각 문자열을 대문자로 변경하여 반환합니다. 이를 통해 데이터의 형태를 변경할 수 있습니다.
결론
이터레이터를 사용하면 데이터 검증 및 변경 플로우를 간단하고 효율적으로 구현할 수 있습니다. 데이터의 유효성을 검사하거나 원하는 형태로 데이터를 변환하는 작업에 이터레이터를 활용해 보세요. 이터레이터는 프로그래밍에서 매우 강력한 도구입니다.
#techblog #iterators