▶️15분
yield: 함수를 멈췄다 다시 시작하는 마법
100만 행 CSV를 메모리 초과 없이 - 제너레이터
yield: 함수를 멈췄다 다시 시작하는 마법
Python 고급: 제너레이터, 데코레이터, 컨텍스트 매니저, Type Hints > 100만 행 CSV를 메모리 초과 없이 - 제너레이터
학습 목표
yield 키워드의 동작 원리를 이해한다 제너레이터 함수와 일반 함수의 차이를 파악한다 제너레이터가 상태를 유지하는 방법을 안다

YouTube에서 보기
yield: 일시정지 버튼
일반 함수 vs 제너레이터 함수
에디터 로딩 중...
yield의 동작 원리
에디터 로딩 중...
카운트다운 예제
에디터 로딩 중...
제너레이터의 장점
| 특성 | 리스트 | 제너레이터 |
|---|---|---|
| 메모리 | 모든 값 저장 | 한 번에 하나만 |
| 생성 시점 | 즉시 전체 생성 | 필요할 때 생성 |
| 재사용 | 무제한 | 한 번만 |
| len() | O(1) | 불가 |
핵심 인사이트
"yield는 일시정지 버튼입니다. 함수를 멈추고, 값을 내보내고, 나중에 그 자리에서 다시 시작합니다."
핵심 포인트
- • yield = 값 반환 + 함수 상태 저장 + 일시정지
- • next() = 일시정지 해제 + yield 다음 줄부터 재개
- • 제너레이터 = 메모리 효율적 (한 번에 하나만)
- • 제너레이터는 일회용 (소진 후 재사용 불가)