이터레이터를 사용한 데이터 저장 및 불러오기

데이터 저장과 불러오기는 프로그래밍에서 핵심적인 작업 중 하나입니다. 이터레이터를 활용하면 데이터를 효율적으로 저장하고 불러올 수 있습니다. 이 글에서는 이터레이터를 사용하여 데이터를 저장하고 불러오는 방법에 대해 알아보겠습니다.

이터레이터란?

이터레이터는 값을 차례대로 생성하는 객체입니다. 이터레이터는 next() 메서드를 호출하여 다음 값을 반환하고, 모든 값을 반환한 후에는 StopIteration 예외를 발생시킵니다. 이러한 특성을 이용하여 데이터를 저장하고 불러올 수 있습니다.

데이터 저장하기

이터레이터를 사용하여 데이터를 저장할 때는 yield 키워드를 사용합니다. yield 키워드를 통해 값을 반환하며, 함수는 실행 상태를 유지하고 다음 호출 때 이어서 실행됩니다. 다음은 데이터를 저장하는 예시입니다.

def save_data(iterable, file_path):
    with open(file_path, 'w') as file:
        for item in iterable:
            file.write(str(item) + '\n')
            yield item

위의 예시에서 save_data 함수는 iterable 객체에서 데이터를 하나씩 가져와서 file_path에 지정된 파일에 저장합니다. 각 데이터를 파일에 쓴 후에는 yield를 사용하여 데이터를 호출자에게 반환합니다. 함수가 호출될 때마다 이어서 실행되기 때문에, 저장된 데이터를 계속해서 반환할 수 있습니다.

데이터 불러오기

데이터를 불러올 때도 이터레이터를 활용할 수 있습니다. yield 키워드를 사용하여 데이터를 반환하고, next() 메서드를 사용하여 다음 값을 가져옵니다. 다음은 데이터를 불러오는 예시입니다.

def load_data(file_path):
    with open(file_path, 'r') as file:
        for line in file:
            data = line.strip()
            yield data

위의 예시에서 load_data 함수는 지정된 file_path의 파일을 열고 한 줄씩 읽어옵니다. 각 줄의 데이터를 yield를 사용하여 호출자에게 반환합니다. 함수가 호출될 때마다 읽을 파일의 다음 줄을 반환할 수 있습니다.

예시 코드

다음은 데이터 저장과 불러오기를 위해 이터레이터를 사용하는 예시 코드입니다.

data = [1, 2, 3, 4, 5]

# 데이터 저장
save_iterator = save_data(data, 'data.txt')
for item in save_iterator:
    print(item)

# 데이터 불러오기
load_iterator = load_data('data.txt')
for item in load_iterator:
    print(item)

위의 예시 코드에서 save_data 함수를 통해 데이터를 저장하고, load_data 함수를 통해 데이터를 불러옵니다. 이러한 방식으로 데이터를 효율적으로 저장하고 불러올 수 있습니다.

마무리

이터레이터를 사용하여 데이터 저장 및 불러오기를 구현하는 방법에 대해 알아보았습니다. 이러한 방식은 큰 데이터셋이나 실시간 데이터 처리와 같이 효율적인 작업을 필요로 할 때 유용합니다. 이제 여러분은 이터레이터를 활용하여 데이터를 효율적으로 관리할 수 있습니다. #데이터저장 #이터레이터