Generator   제너레이터

(2021-10-13)
1. [전산, 프로그래밍]  제너레이터 (Generator)

  ㅇ 생성되면(호출되면) 빌 때까지 하나씩 뽑아 사용하는 함수

  ㅇ 특징
     - 쉽게, 최소한의 자원 소모로, 규칙적인 발생 구조를 갖음
        . 그러나, 결과를 무한히 내놓는 구조로는 구현할 수 없음
        . 다만, 어느 정도 상한을 두더라도, 이를 저장할 최소의 메모리 소요는 필요함
     - 제너레이터 함수는, 제어권을 자신이 독점하지 않고, 함수 호출자에게 양도(yield) 가능
        . 제너레이터 함수함수 호출자가 양방향으로 함수상태를 주고받을 수 있음 
     - 제너레이터 함수를 호출하면, 제너레이터 객체를 반환 함
        . 이때, 제너레이터 객체이터레이터 객체의 한 종류 임
        . 따라서, 이터레이터 객체 처럼, next에 의해 반복 처리를 단계별 정밀 제어 가능

  ㅇ 주요 용도
     - 메모리 공간 절약
        . 수많은 반복처리 결과 값을 생성하는 경우, 생성 구조를 갖으므로, 
        . 입력 길이에 상관 없이 메모리 공간 크기를 동일하게 작게 유지할 수 있음


2. [자바스크립트]  자바스크립트 형식
     - function* 함수명() { ...} 으로 정의하고, 1 이상의 yield 표현식을 포함

  ㅇ (설명)
     - 함수 내부에서, yield 명령으로 값을 반환하게 됨
        . 만일, 함수 중간에 yield 구문을 만나면, 
           .. 그때까지의 중간 값을 반환하고, 함수를 종료 않고, 맨끝에 도달할 때까지 실행됨 
        . 만일, yield 명령문이 여럿일 때는, 다음 호출시에 이전 yield 명령문 이후부터 재개
     - 한편, 통상의 함수 처럼 return 구문을 만나면,
        . 값을 반환하고 바로 함수를 종료시킴

  ㅇ (참고)
     - 화살표 함수로써 정의 불가
     - new 연산자 형식에 의한 생성자 함수로는 호출 불가


3. [파이썬]

  ㅇ 제너레이터 객체 생성 방법 둘
     - 제너레이터 함수
        . yield가 하나라도 있으면, 제너레이터 함수가 됨
        . 제너레이터 객체가 만들어져 반환이 됨
     - 제너레이터 표현식


[JS 객체] 1. JS 객체 2. JS 객체 구분 3. JS 객체의 생성 저장 접근 4. JS 클래스 5. 프로토타입 객체 6. 프라미스 객체 7. 일급 객체 8. 래퍼 객체 9. 콘솔 객체 10. this 참조 11. 이터레이터 12. 제너레이터 13. 범용 객체 (Object object)
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   전기전자공학
  5.   방송/멀티미디어/정보이론
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램, 프로그래밍
      1.   프로그래밍 언어론
      2.   프로그래밍 방법론
      3.   객체지향 프로그래밍
      4.   자료표현코드
      5.   자료구조
      6.   알고리즘
      7.   시스템 소프트웨어
      8.   프로그래밍언어 종류
            1. 프로그래밍 언어
        1.   C
        2.   C++
        3.   자바(Java)
        4.   자바스크립트
              1. JavaScript
              2. JS 기초 문법
          1.   JS 변수,타입,논리식
          2.   JS 구문,연산자
          3.   JS 실행환경
          4.   JS 함수
          5.   JS 객체
            1.   1. JS 객체
                2. JS 객체 구분
                3. JS 객체의 생성 저장 접근
                4. JS 클래스
                5. 프로토타입 객체
                6. 프라미스 객체
                7. 일급 객체
                8. 래퍼 객체
                9. 콘솔 객체
                10. this 참조
                11. 이터레이터
                12. 제너레이터
                13. 범용 객체 (Object object)
          6.   JS 배열/Map/Set
          7.   JS 활용
          8.   JS 웹문서 제어
        5.   PHP
        6.   파이썬
        7.   (기타 언어)
      9.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공학일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록     참고문헌