더북(TheBook)

4.10 제너레이터

파이썬에서 제너레이터(Generators)보다 더 혼란스러운 주제는 없다. 이 기능을 이해하고 나면 그리 어려운 개념이 아니다. 단지 설명하는 것이 어려울 뿐이다.

과연 제너레이터는 무엇인가? 제너레이터는 시퀀스(sequence)(나열식 데이터)를 다룰 때 한 번에 한 항목씩 처리할 수 있게 해 주는 방법을 제공한다.

여러분이 시퀀스를 한꺼번에 메모리에 적재하여 오랜 시간 동안 데이터를 처리한다고 가정해 보자. 가령 피보나치 수열을 10에서 50까지 확인하고 싶다면 전체 데이터를 계산하기 위해 많은 시간과 메모리 공간이 필요할 것이다. 무한으로 반복되는 시퀀스의 짝수만 처리하는 것도 마찬가지다.

제너레이터 장점은 한 번에 시퀀스의 한 항목만 다룰 수 있게 해 준다는 것이다. 마치 실제로는 존재하지 않는 ‘가상 시퀀스’를 만드는 것과 비슷하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.