OPEN HYPER STEP
← 목록으로 (JavaScript)
JS · 24 / 34
js
CHAPTER 24 / 34
읽기 약 2
FUNCTION

이터레이터 & 제너레이터


핵심 개념

이터레이터는 next() 메서드로 {value, done} 객체를 반환하는 프로토콜입니다. 제너레이터 함수(function*)는 yield로 값을 하나씩 방출하고 실행을 일시 중단합니다. for...of로 이터러블을 순회할 수 있습니다. 무한 시퀀스 생성, 비동기 순차 처리, 상태 머신 구현에 활용됩니다. yield를 지우며 시퀀스가 어떻게 멈추는지 확인하십시오.

코드 분석
JS📋 코드 (21줄)
function* stepGenerator() {
    yield '[STEP 1] 데이터 스캔 중...';
    yield '[STEP 2] 값 분석 중...';
    yield '[STEP 3] 결과 계산 중...';
    yield '[COMPLETE] 순회 완료';
    return '[DONE]';
  }

  const iter = stepGenerator();
  const results = [];

  let step = iter.next();
  while (!step.done) {
    results.push(step.value);
    step = iter.next();
  }

  results.forEach((r, i) => {
    const color = i === results.length - 1 ? '#22c55e' : '#10b981';
    document.write('<div style="color:' + color + '; margin-bottom:4px;">' + r + '</div>');
  });

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

이 JS '이터레이터 & 제너레이터' 코드의 잠재적 버그와
메모리 누수·this 바인딩·비동기 경합 위험을
분석해서 프로덕션 수준으로 개선해줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

'이터레이터 & 제너레이터'를 실제 서비스에서 어떻게 쓰는지
구체적 사례 3개와 복사 가능한 코드를
초보자가 이해할 수 있게 보여줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

이 JS '이터레이터 & 제너레이터' 관련 코드 전체의 실행 흐름을 분석하고
성능 병목과 최적화 방안을 우선순위로 알려줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

'이터레이터 & 제너레이터'에서 개발자들이 가장 많이 하는
실수 Top 3을 솔직하게 알려주고
2026년 권장 패턴을 함께 알려줘.

⭐ 이것만 기억하세요
이터레이터 & 제너레이터 이 3가지만 확실히 잡으세요
1.for...of가 어떤 객체에는 작동하고 어떤 객체에는 안 되는 이유를 이터러블 프로토콜 없이는 설명할 수 없습니다
2.이터레이터는 next()로 값을 하나씩 반환하는 객체이고, 제너레이터(function*)는 yield로 실행을 중단·재개합니다
3.다음 챕터에서 객체보다 유연한 키-값 저장소인 Map과 고유값 집합 Set을 배웁니다


공유하기
진행도 24 / 34