이터레이터 프로토콜을 구현한 데이터 큐

이터레이터 프로토콜은 파이썬에서 많이 사용되는 프로토콜 중 하나입니다. 이 프로토콜을 사용하면 컬렉션 데이터를 순회하고 접근할 수 있습니다. 데이터 큐는 이터레이터 프로토콜을 구현하여 데이터를 효율적으로 처리하는 자료 구조 중 하나입니다.

데이터 큐란 무엇인가요?

데이터 큐는 FIFO(First-In-First-Out) 방식으로 데이터를 처리하는 자료 구조입니다. 가장 먼저 들어온 데이터가 먼저 처리되고, 가장 나중에 들어온 데이터는 가장 마지막에 처리됩니다. 이러한 특성 때문에 데이터 큐는 대기열이나 버퍼링 등에 주로 사용됩니다.

이터레이터 프로토콜을 구현한 데이터 큐 예제

아래는 이터레이터 프로토콜을 구현한 간단한 데이터 큐 예제입니다. 예제에서는 Queue 클래스를 정의하고, __iter__() 메서드와 __next__() 메서드를 구현하여 이터레이터를 생성합니다.

class Queue:
    def __init__(self):
        self.queue = []

    def __iter__(self):
        return self

    def __next__(self):
        if len(self.queue) == 0:
            raise StopIteration
        return self.queue.pop(0)

    def enqueue(self, data):
        self.queue.append(data)

    def dequeue(self):
        if len(self.queue) == 0:
            return None
        return self.queue.pop(0)

위의 예제에서 __iter__() 메서드는 이터레이터 자신을 반환하여 이터레이터를 생성합니다. __next__() 메서드는 큐에서 요소를 제거하고 반환합니다. 만약 큐가 비어있다면 StopIteration 예외를 발생시켜 이터레이션을 종료합니다.

마무리

데이터 큐는 이터레이터 프로토콜을 구현하여 컬렉션 데이터를 순회하고 접근하는 데 효율적인 방법을 제공합니다. 이를 이용하여 대기열이나 버퍼링 등에 유용하게 활용할 수 있습니다.

#python #이터레이터 #데이터큐