ECMAScript 6 Generator 개요 및 Node.js 활용

Source

  • Evernote/IFTTT Feedly/ECMAScript 6의 generator.md

Summary

본문은 ECMAScript 6(ES6)의 Generator 기능에 대해 설명한다. Generator는 function*yield 키워드를 사용하여 이터레이션을 제어할 수 있는 객체를 생성하며, next() 호출 시마다 실행을 일시 중단하고 재개한다. 당시 V8 엔진(Chrome 28+, Node.js 0.11+)에서 --harmony 플래그로 사용 가능했으며, 성능은 일반 루프보다 낮았다. Node.js 환경에서는 CPU 집약적 작업의 분할 처리나 콜백 헬(Async Callback Hell)을 해결하기 위한 패턴으로 Generator의 활용 가능성을 제시하고 있다.

Key Points

  • ES6 Generator는 function* 정의 및 yield 반환을 통해 실행 흐름을 제어하는 이터레이터 객체를 생성한다.
  • next() 메서드 호출 시 yield 지점까지 실행 후 일시 정지하며, {value, done} 객체를 반환한다.
  • 당시 브라우저(Chrome) 및 Node.js에서는 실험적 기능으로 --harmony 플래그 활성화 필요.
  • Node.js에서 Generator는 CPU 집약적 작업의 비동기 분할 처리 및 콜백 헬 완화를 위한 구조적 개선 방안으로 논의됨.
  • 당시 시점의 벤치마크 결과, Generator는 일반 for 루프 대비 성능이 현저히 낮음.