▶️15

yield: 함수를 멈췄다 다시 시작하는 마법

100만 행 CSV를 메모리 초과 없이 - 제너레이터

학습 목표

yield 키워드의 동작 원리를 이해한다 제너레이터 함수와 일반 함수의 차이를 파악한다 제너레이터가 상태를 유지하는 방법을 안다

yield: 함수를 멈췄다 다시 시작하는 마법
YouTube에서 보기

yield: 일시정지 버튼

일반 함수 vs 제너레이터 함수

에디터 로딩 중...

yield의 동작 원리

에디터 로딩 중...

카운트다운 예제

에디터 로딩 중...

제너레이터의 장점

특성리스트제너레이터
메모리모든 값 저장한 번에 하나만
생성 시점즉시 전체 생성필요할 때 생성
재사용무제한한 번만
len()O(1)불가

핵심 인사이트

"yield는 일시정지 버튼입니다. 함수를 멈추고, 값을 내보내고, 나중에 그 자리에서 다시 시작합니다."

핵심 포인트
  • yield = 값 반환 + 함수 상태 저장 + 일시정지
  • next() = 일시정지 해제 + yield 다음 줄부터 재개
  • 제너레이터 = 메모리 효율적 (한 번에 하나만)
  • 제너레이터는 일회용 (소진 후 재사용 불가)