▶️15분
for 루프의 비밀: __iter__와 __next__
100만 행 CSV를 메모리 초과 없이 - 제너레이터
for 루프의 비밀: __iter__와 __next__
Python 고급: 제너레이터, 데코레이터, 컨텍스트 매니저, Type Hints > 100만 행 CSV를 메모리 초과 없이 - 제너레이터
학습 목표
for 루프의 내부 동작 원리를 이해한다 __iter__와 __next__ 메서드를 파악한다 StopIteration 예외의 역할을 안다

YouTube에서 보기
for 루프의 비밀
"for문이 어떻게 리스트를 순회하는지 생각해 본 적 있어요?"
우리가 쓰는 코드
에디터 로딩 중...
Python이 실제로 실행하는 코드
에디터 로딩 중...
이터레이터 프로토콜
| 메서드 | 역할 | 반환값 |
|---|---|---|
__iter__() | 이터레이터 객체 반환 | self (보통) |
__next__() | 다음 요소 반환 | 값 또는 StopIteration |
이터러블 vs 이터레이터
에디터 로딩 중...
파일 객체는 이미 이터레이터!
에디터 로딩 중...
핵심 인사이트
"이터레이터는 게으른(lazy) 순회자입니다. 필요할 때만 다음 값을 계산합니다."
이 "게으름"이 바로 메모리 효율의 핵심이다!
핵심 포인트
- • for 루프 = iter() + while + next() + StopIteration
- • 이터러블: __iter__() 있음 → iter()로 이터레이터 획득
- • 이터레이터: __iter__() + __next__() 있음
- • 파일 객체는 자체가 이터레이터 (메모리 효율적)