여태까지 시퀀스에 대한 개념을 공부했고,

시퀀스는 정적시퀀스(튜플,사전,리스트..) 와 동적시퀀스(동적으로 생성되는 데이터)로 나뉜다는 것을 알았다.


1. 동적 생성 시퀀스


예를 들어 프로그램으로싀 입력 스트림이 이미 크기와 내용이 결정된 값이 아니라 시간이 지나면서 동적으로 지속적으로 입력되는 줄이나 문자, 센서등의 숫자등과 같은 값일 수도 있다


대표적인 예로는 이동평균을 계산하는 함수를 만들 때 입력되는 데이터는 최근 4개월의 데이터일것인데 ,이때 이 데이터는 스트림일 것이고 스트림을 생성하는 발생자 함수를 만들어야할것이다.. (자세한 내용은 스트림 개념 설명후에 할게요.)


스트림이라는 용어는 동적으로 생성된 시퀀스를 대표하는 의미이다.

동적 시퀀스를 stream으로 (흘러가는 의미의 단어) 생각하면 된다.


2. 발생자 함수 Generator 


동적시퀀스를 생성하는 구조이다.

동적시퀀스를 생성한다는 것은 스트림을 생성한다는 것일거다.


발생자 함수를 정의하는 방법이다.


yield 표현식


일반 함수와의 차이는, 함수는 return (반환)값이 있찌만, 이 발생자 함수는 yield 한다. (산출)->시퀀스를 produce


즉 발생자함수(제너레이터)는 반복자(이터레이터)를 반환한다.




3. 발생자 함수 만들기, 스트림을 이용한 프로그래밍(p129)


yield의 동작 방식을 이해해야한다.




4. 왜, 언제 사용해야 메모리 효율적인가?


대용량 데이터를 분산처리 할때.

쉽게 말해 map, filter, reduce같은 연산을 사용해 각자의 파일시스템에 있는 데이터를 집계하거나 검색한다. 그리고 중앙 컴퓨터로 상대적으로 적은 양의 데이터를 보내서 최종 결과를 집계하는 방식.


 5. 파일 한줄씩 읽고 내용 전달하는 제너레이터 함수 만들기


https://dojang.io/mod/page/view.php?id=1121


+ Recent posts