
https://link.coupang.com/a/dFFPS6
Do it 점프 투 파이썬 + (헬로든든 떡메모지 증정) - 프로그래밍 언어 | 쿠팡
쿠팡에서 Do it 점프 투 파이썬 + (헬로든든 떡메모지 증정) 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 프로그래밍 언어 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
파이썬 제너레이터(Generator) 완전 쉬운 설명! yield와 next()로 시작하는 마법 같은 함수

AI 활용
안녕하세요! 파이썬을 공부하다 보면 언젠가 꼭 만나는 개념이 바로 제너레이터(Generator)예요.
처음 보면 "이게 뭐지? 함수인데 왜 리스트처럼 쓸 수 있지?" 하면서 살짝 당황할 수 있어요.
저도 처음엔 그랬거든요 😅
하지만 한 번 이해하고 나면 "아, 이게 이렇게 편한 거였어!" 하고 감탄하게 될 거예요.
오늘은 초보자도 쉽게 따라올 수 있도록
- 제너레이터가 뭔지
- 왜 쓰는지
- yield 키워드와 next() 함수를 어떻게 사용하는지
실제 코드 예시까지 차근차근 알려드릴게요!
제너레이터란? (정의)
일반 함수는 `return`으로 값을 한 번 반환하고 끝나요.
하지만 제너레이터 함수는 `yield` 키워드를 사용해서 값을 하나씩 반환하면서도 함수의 실행 상태를 기억해요.
즉, 제너레이터는 필요할 때마다 값을 하나씩 만들어서 주는 '게으른(lazy) 리스트' 같은 거예요.
제너레이터를 만들면 바로 값이 계산되는 게 아니라, 우리가 `next()`로 요청할 때마다 그때그때 값을 만들어내요.
왜 제너레이터를 쓸까? (사용 이유)
가장 큰 장점은 메모리 절약이에요!
예를 들어 1부터 100만까지 숫자를 리스트로 만들면
그 모든 숫자가 메모리에 한 번에 올라가요 → 메모리 많이 먹음!
하지만 제너레이터라면
100만 개를 한 번에 만들지 않고, 필요할 때 하나씩만 만들어서 줘요 → 메모리 거의 안 먹음!
특히 큰 데이터를 처리하거나 무한 수열을 다룰 때 진짜 유용해요.
실제 코드로 이해해보기
예제 1: 간단한 제너레이터 만들기
def count_up_to(n):
num = 1
while num <= n:
yield num # 여기서 값을 하나씩 양보(yield)한다
num += 1
# 제너레이터 객체 생성
counter = count_up_to(5)
print(counter) # <generator object count_up_to at 0x...> 출력됨
이 상태에서는 아직 아무 일도 안 일어나요!
제너레이터 객체가 만들어졌을 뿐이에요.
이제 `next()`로 값을 하나씩 꺼내보죠:
print(next(counter)) # 1
print(next(counter)) # 2
print(next(counter)) # 3
print(next(counter)) # 4
print(next(counter)) # 5
# 더 꺼내려고 하면 StopIteration 에러 발생!
`next()`를 호출할 때마다 함수 내부 코드가 `yield`까지 실행되고,
다음 `next()`를 기다리며 멈춰 있어요.
마치 함수가 "여기까지 하고 잠깐 쉬었다가 다음에 이어서 할게요~" 하는 느낌!
예제 2: for 문으로 쉽게 사용하기 (실제로는 이렇게 많이 써요!)
제너레이터는 `for` 문에서 바로 쓸 수 있어서 더 편해요:
def count_up_to(n):
num = 1
while num <= n:
yield num
num += 1
for number in count_up_to(5):
print(number)
`for` 문이 내부적으로 `next()`를 자동으로 호출해줘요.
초보자는 이 방식이 훨씬 편할 거예요!
예제 3: 무한 수열 만들기 (제너레이터의 진짜 힘!)
def infinite_numbers():
num = 1
while True:
yield num
num += 1
gen = infinite_numbers()
print(next(gen)) # 1
print(next(gen)) # 2
print(next(gen)) # 3
# 계속 계속... 무한히 가능!
리스트로는 절대 못 만들 무한 수열도 제너레이터라면 가능해요!
마무리하며
제너레이터는 처음엔 조금 낯설지만,
`yield`는 "여기서 값 하나 주고 잠깐 멈춰!"라고 생각하면 돼요.
그리고 `next()`나 `for` 문으로 값을 하나씩 꺼내면서 함수가 다시 깨어나는 거죠.
큰 데이터를 다룰 때나 메모리를 아끼고 싶을 때
제너레이터를 떠올려보세요. 진짜 마법 같은 도구예요 ✨

AI 활용
#파이썬 #제너레이터 #yield #next #파이썬초보 #파이썬기초 #코딩공부 #프로그래밍기초 #파이썬튜토리얼 #Generator
'파이썬' 카테고리의 다른 글
| 파이썬과 Pygame으로 게임 만들기 입문! 추천 책 3권 리뷰 (무료 PDF 포함) (0) | 2025.12.12 |
|---|---|
| Vincibot 파이썬 9강 | 다섯 개 센서로 라인 트레이서 만들기 (0) | 2025.09.21 |
| ai파일 pdf변환 후 하나로 합치기(파이썬 활용) (0) | 2025.09.11 |
| pdf 아웃라인 파이썬으로 무료 체크하는 방법 (0) | 2025.09.10 |
| 파이썬 문법 쉽게 이해하기: 클로저(Closure)와 데코레이터(Decorator) (3) | 2025.08.26 |