# generator

128개의 포스트

[python] yield vs return (feat. generator)

yield generator를 만드는데 사용 return? yield? 함수의 반환 : return or yield 예제 A, B, C 반환하는 함수 2. 출력 결과 1 : ['A', 'B', 'C'] 2 : Generator 여러 개의 데이터를 미리 만들어 놓지 않고 필요할 때마다 즉석해서 하나씩 만들어낼 수 있는 객체 ex) time.sleep() 이용한 예제 1 출력 : 3초 경과 후 A, B, C 차례대로 출력 2 출력 : 1초 후 A 출력, 1초 후 B 출력, 1초 후 C 출력 generator의 효율성 제너레이터를 통해서는 결과값을 나누어서 얻을 수

2023년 9월 13일
·
0개의 댓글
·

Iterable

iterable 파이썬에서 iterable은 사용안하는 곳이 없을 정도로 중요하고 많이 사용되는 개념이다. 평소에 사용하는 list, dict, set 등의 객체를 보자. 우리는 이 객체를 사용할때 for문에 넣어서 쓰거나 map의 인자로 넣어서 사용하기도 한다. map 내장 함수를 한번 보자 위와같이 map(함수, 반복 가능한 객체)를 넣게 된다. 여기서 반복 가능한 객체를 보면 Iterable으로 나타난 것을 볼수 있다. 그러고보면 이 Iterable 객체들은 반복할 때 다음 원소를 어떤 방법으로 찾아가게 되는걸까? 파이썬에서 iterable은 반복 가능한 객체로 iter 함수를 메소드로 가지고 있어야하고 해당 함수는 iterator를 반환해야한다. 참조 그러면 또 iter는 왜 필요한거지? itera

2023년 8월 18일
·
1개의 댓글
·

[Python] Generator Yield 이해하기

Situation Combination을 구현하는 방법을 찾아보다가 yield를 사용한 코드를 찾았다.. 코드는 정말 간단한데 yield를 이해하는게 어렵다. 더 깊이 알아보자! > 출력 \[0, 1, 2] \[0, 1, 3] \[0, 1, 4] \[0, 2, 3] \[0, 2, 4] \[0, 3, 4] \[1, 2, 3] \[1, 2, 4] \[1, 3, 4] \[2, 3, 4] 1. Yield로 Generator 사용하기 > 출력 0 1 2 함수를 return으로 반환하는 코드랑 확실하게 비교하면 다르게 동작하는 것을 알수있다. (1) return으로 반환하는 코드 > 출력 \# 3초 경과 A B C (2) yield로 generator를 사용한 코드 > 출력 \# 1초 경과 A \# 1초 경과 B \# 1초 경과 C 2. for문에서 Generator를 사용하면 어떻게 동작하는 걸까? 위 코드를 다시 살펴보자! Generator

2023년 7월 26일
·
0개의 댓글
·

[JavaScript] 제너레이터(Generator)

JavaScript 제네레이터는 값을 생성하고 반환하는 함수입니다. 제네레이터는 일반 함수와 달리 한 번에 한 개의 값만 생성하고 반환합니다. 제네레이터는 반복문과 함께 사용하면 효율적으로 값을 생성하고 반환할 수 있습니다. 제네레이터를 만드는 방법 제네레이터 함수를 호출하면 제네레이터 객체가 반환됩니다. 제네레이터 객체는 next() 메서드를 가지고 있습니다. next() 메서드는 제네레이터 함수의 다음 값을 반환합니다. 제네레이터 객체의 next() 메서드를 사용하여 제네레이터 함수의 값을 순차적으로 가져올 수 있습니다. 다음은 1부터 10까지의 값을 생성하는 제네레이터 함수입니다. 이 제네레이터 함수를 호출하면 다음과 같은 결과가 나옵니다. 제네레이터는 반복문과 함께 사용하면 효율적으로 값을 생성하고 반환할 수 있습니다. 예시 코드를 보시겠습니다., 1부터 10까지의 값을 출력하는 코드입니다. 이 코드 또한 다음과 같은 결과를 출력합니다.

2023년 7월 26일
·
0개의 댓글
·
post-thumbnail

swagger chrome extension을 만들어보며

왜 만들게 되었나? Frontend 개발자로서 일을 하게 되다 보면 저희는 수도 없이 API를 마주치게 됩니다. 하나의 완성도 있는 프로젝트를 만들다 보면 기획이 변경되고, API 스펙이 변경되는 일들은 어쩔 수 없는 문제 들이죠. 😅 TypeScript가 필수 스택으로 자리 잡게 된 지금으로서는 API에 대한 request, response 타입에 대해서도 정의해서 저희는 코드를 써내려 가야 하죠. 카카오 기술블로그 > 카카오 기술블로그 - Mocking으로 생산성까지 챙기는 FE 개발 https://tech.kakao.com/2021/09/29/mocking-fe/ > 만약 API 스펙에 변경이 생긴다면? ![](https://velog.velcdn.com/images/ww8007/

2023년 7월 1일
·
2개의 댓글
·
post-thumbnail

프로토타입, 이터러블 & 제네레이터, 생성자

⭐ 자바스크립트 프로토타입과 상속 자바스크립트의 객체는 [[Prototype]] 이라는 숨김 프로퍼티를 갖으며 이 프로퍼티는 null이거나 다른 객체로부터 상속된 속성과 메서드를 제공, 다른 객체를 참조하는 경우 참조 대상은 프로토타입이라고 부름 즉, [[Prototype]]이 참조하는 객체를 프로토타입이라고 함 객체에서 프로퍼티를 읽거나 메서드를 호출하려는데 해당 프로퍼티가 없으면 자바스크립트는 자동으로 프로토타입에서 프로퍼티나 메서드를 찾고, 찾을 때까지 프로토타입 체인을 거슬러 올라가 찾음 이러한 방식을 프로토타입 상속이라고 부름 \proto는 [[Prototype]]용 getter, setter인데 요즘엔 잘 사용하지 않음 프로토타입은 객체 생성자 함수와 함께 사용, 생성자

2023년 6월 7일
·
0개의 댓글
·
post-thumbnail

javascript에서 generator는 무엇인가요?

🤔 개요 안녕하세요 😀 요즘 기술 면접을 통해서 많이 배우고 있습니다. 그중 오늘은 기술 면접 중에 질문받았던 재미있는 내용이 있어 그와 관련된 포스팅을 하려고 합니다. 🔍 프론트 엔드 영역에서 generator를 사용하는 곳이 어딨을까요? 위의 질문은 모 회사 기술면접에서 받았던 질문입니다. 저의 답변은 상태 관리 Redux에서 비동기 컨트롤을 위한 미들웨어 Redux-saga 에서 사용한다고 답변한 후 아래와 같은 추가 질문을 받았습니다. > Redux-saga 이 외에 또 어디서 사용할까요? 저는 답변을 하지 못했습니다. 면접 후 이 부분이 너무 궁금해서 복기하는 와중에 새로운 사실을 알게 됐습니다. 저는 일전에 Redux-saga 사용하면서 javascript에 generator 문법은 마치 Redux-saga를 위한 문법 같다는 생각을 했습니다. Redux-saga 외에는 사용하지 않을거라고 생각했었는데 이 부분이 제가 답변

2023년 5월 15일
·
0개의 댓글
·

이터레이터(iterator), 제너레이터(generator), 이터러블(iterable) 의 이해

파이썬에서 이터레이터(iterator), 제너레이터(generator), 이터러블(iterable)은 모두 데이터의 반복(iteration)을 처리하기 위한 중요한 개념입니다. 각각의 개념을 살펴보겠습니다. 이터러블(iterable) >이터러블은 반복 가능한 객체를 의미합니다. 즉, 리스트(list), 튜플(tuple), 문자열(str), 딕셔너리(dictionary) 등과 같이 for문을 통해 하나씩 값을 가져올 수 있는 객체입니다. 이터러블은 iter 메서드를 구현하여 이터레이터(iterator)를 반환할 수 있습니다. 이터레이터(iterator) > 이터레이터는 이터러블에서 값을 하나씩 가져오는 객체입니다. 즉, 이터러블에서 iter 메서드를 통해 반환된 이터레이터 객체는 next 메서드를 구현하여 이터러블의 다음 값을 반환할 수 있습니다. 이터레이터는 값이 모두 반환되었을 때 StopIteration 예외를 발생시켜야 합니다. 제너레이터(genera

2023년 5월 4일
·
0개의 댓글
·

[C#] Generators, Containers 정의

C# Generators 란 C# Generator는 C# 9.0에서 새롭게 도입된 기능 중 하나입니다. 이 기능은 yield 문과 함께 사용하여 시퀀스를 생성하는 메서드를 작성할 수 있도록 해줍니다. Generator는 일반적으로 IEnumerable 또는 IEnumerator 인터페이스를 구현하는 것과 비슷한 방식으로 작성됩니다. 하지만 메서드에서 값을 반환하는 대신, yield return 문을 사용하여 시퀀스의 각 요소를 반환합니다. 이렇게 하면 시퀀스를 생성하는 데 필요한 코드가 훨씬 더 간단해지며, 성능도 향상될 수 있습니다. Generator는 특히 대규모 데이터 집합을 처리하거나 데이터베이스 쿼리와 같은 작업을 수행하는 데 유용합니다. 이전에는 이러한 작업을 위해 IEnumerable 또는 IEnumerator를 사용했지만, 이러한 인터페이스를 구현하는 것은 번거롭고 복잡합니다. C# Generator를 사용하면 이러한 작업을 더 쉽고 간단하게 처리할 수 있

2023년 4월 27일
·
0개의 댓글
·

Generator 문법

이 문법의 핵심 기능은 함수를 작성 할 때 함수를 특정 구간에 멈춰놓을 수도 있고, 원할 떄 다시 돌아가게 할 수도 있다. 그리고 결과값을 여러번 반환 할 수도 있다. 이 경우에는 무조건 1만 반환하게 될 것이다. 하지만, 제너레이터 함수를 사용하면 함수에서 값을 순차적으로 반활할 수 있다. 함수의 흐름을 도중에 멈춰놓았다가 나중에 이어서 진행할 수도 있다. 제너레이터 함수를 호출한다고 해서해당 함수 아느이 코드가 바로 실행되지는 않는다. generator.next()를 호출해야만 코드가 실행되며, `

2023년 4월 24일
·
0개의 댓글
·

[블로깅] 제너레이터(Generator)

코드스테이츠 부트캠프 프론트엔드 44기 릴레이 블로깅 챌린지 2주차 (월요일) 제너레이터(Generator)란? 제너레이터(Generator)란 yield문을 사용한 이터레이터를 말한다. Python과 C#에도 똑같은 개념이 존재한다. 제너레이터 함수를 호출하면 일반 함수처럼 함수 코드 블록을 실행하는 것이 아닌, 제너레이터 객체를 생성 & 반환한다. 클래스와 인스턴스의 관계랑 비슷하다고 생각하면 쉬울 것이다. 제너레이터는 이터레이터와 달리 Symbol.iterator 메서드를 일일이 호출하지 않아도 된다는 장점이 있다. 특징 1. 가독성 향상 1초에 한 번씩 피보나치 수를 반환 & 출력하는 코드를 이터레이터(上)와 제너레이터(下)로 각각 작성해보았다. 이터레이터가 불편한 이유 이터레이터의 경우 Symbol.iterator { }의 존재

2023년 4월 23일
·
0개의 댓글
·

[Python] yield 키워드와 제너레이터

yield generator iterator 출처

2023년 4월 18일
·
0개의 댓글
·

JavaScript 익히기 #20 Generator

Generator 함수는 ES6에 도입된 이터러블을 생성하는 함수이다. 제네레이터를 사용하게 되면, 이터레이션 프로토콜을 준수해서 이터러블을 생성하는 방식보다 간편하게 이터러블이 구현 가능하다. 이는 비동기 처리에 유용하게 사용되곤 한다. 제네레이터 함수는 일반 함수와는 다른 동작을 한다. 제네레이터 함수는 일반 함수와 같이 함수의 코드 블록을 한 번에 실행하지 않고 함수 코드 블록의 실행을 일시 중지했다가 필요한 시점에 재시작을 할 수 있는 함수이다. 비동기처리에서 사용하는 경우는 다음과 같다. 비동기 처리가 완료되면 next 메소드를 통해 제네레이터 객체에 비동기 처리결과를 전달. 제네레이터 객체에 전달된 비동기 처리 결과는 user 변수에 할당. 소스코드

2023년 4월 15일
·
0개의 댓글
·
post-thumbnail

Class, Iterator, Generator in JavaScript

사실 JS를 새로 학습하기 시작하면서 생겼던 의문이 있다. 의 형태가 와 너무 유사해보여서 라는 개념이 존재하는지에 대해서도 긴가민가 했다. 이에 대해서 적어보려고 한다. * class VS object * 미래의 나를 위한 설명이기 때문에 자세한 설명은 생략하고, 간략하게 설명하자면 기존의 다른 객체 지향 언어들과 상당히 유사한 모습을 지녔다. 생성자도 존재하고, 그 이외의 클래스 내 변수들도 존재한다. 앞에 #을 붙이는 경우 과 동일한 기능을 지니게 되며 스코프 외부에서 참조하는 것이 불가능하게 된다. 이 안먹힌다는 소리다. 상속과 같은 개념도 물론 존재한다. 자식 생성자 부분의 는 부모의 데이터들을 상속받는 역할을 한다. 사실 을 사용하지 않으면 그냥 문법 오류가 떠버려서 필수적으로 써야하고, 그렇기 때문에 구조상 부모 클래스의 모든 값들을 상속 받을 수 밖에 없다. 일반적인 캡슐화를 위한 속성을 구현하기 위해서는 변수 앞에 을 붙이면 된다. 그 예가

2023년 3월 14일
·
0개의 댓글
·

[Python] 이터레이터(Iterator)와 제너레이터(Generator)

파이썬에서 자주 접할 수 있는 용어인 이터레이터와 제너레이터에 대해 정리해보았다. 이터레이터(Iterator) iterable한 객체를 내장 함수 또는 iterable객체의 메소드로 객체를 생성할 수 있다. 그렇다면 iterable한 객체란 무엇일까? iterable, 반복 가능한 객체이다. 순서대로 다음 값을 리턴할 수 있는 객체를 의미하며, 파이썬에서 대표적으로 iterable한 타입은 list, dict, set, str, bytes, tuple, range 등이 있다. 예를 들어, list 객체는 다음과 같이 반복문을 통해 값을 사용할 수 있다. 이렇게 내부 요소를 하나씩 리턴할 수 있는 요소를 iterable한 객체라고 할 수 있다. iter함수를 통해 iterable 객체를 iterator로 만들 수 있으며, iterator로 변경 후에 next() 함수 호출이 가능하다. next() 함수를 호출해서 값을 반복적으로 꺼내 쓸 수

2023년 3월 13일
·
0개의 댓글
·
post-thumbnail

[function] generator

generator yield 키워드를 이용하여 iterable object를 특수한 형태로 사용할 수 있도록 함 결과값을 여러 번 나누어 제공할 수 있도록 함으로써 효율적인 메모리 사용을 지원 | return 키워드 | yield 키워드 | | :--: | :--: | | 모든 결과값을 메모리에 올려놓음 | 결과 값을 하나씩 메모리에 올려놓음 | | 결과값을 한번에 제공 | 결과값을 여러 번 나누어서 제공 | get_char 함수를 실행하였을 때는 함수 실행이 끝난 후 print 문이 수행되므로 print 구문 실행 시간에 차이가 거의 없음을 확인할 수 있습니다. 반면에, getcharusing_yield 함수를 실행 시에는 yield 구문으로 값이 반환될 때마다 print 구문이 실

2023년 3월 6일
·
0개의 댓글
·
post-thumbnail

파이썬 제너레이터

파이썬에서 제너레이터(generator)를 만드는 데 이용하는 yield 키워드에 대해 알아보겠습니다. yield 키워드 대부분의 프로그래밍 언어에서는 일반적으로 어떤 결과 값을 return 키워드를 이용하여 반환합니다. 하지만 파이썬에서는 yield 키워드를 이용하여 다소 다른 방법으로 결과 값을 제공할 수 있습니다. 간단한 예제 코드를 통해 알아 보도록 하겠습니다. 숫자 1, 2, 3 을 결과 값으로 반환하는 함수를 작성해보겠습니다. 위 함수를 yield 키워드를 이용해서 작성해보겠습니다. 가장 눈에 두드러지는 차이는 return 키워드를 사용할 때는 한 번만 결과값을 제공하는 데, yield 키워드는 결과값을 여러 번 나누어서 제공합

2023년 2월 23일
·
0개의 댓글
·

Generator

Generator Generator extends Iterator 함수의 실행을 중간에 멈추고, 재개 실행을 멈추면서 중간 값을 전달 값을 미리 만들어 두지 않고 필요시에 생성 Iterator의 일종 methods gen.next(...args: []) => IteratorResult : yield 키워드에 도달할때 까지 실행후 결과 반환 gen.throw(e) => IteratorResult : 예외 발생, 결과값 value는 catch 블록의 리턴값 gen.return() => IteratorResult IteratorResult {value, done : boolean | undefined} range

2023년 2월 17일
·
0개의 댓글
·

RSA KeyGenerator Set

암호화 처리 . 복호화 처리 . 테스트 케이스 작성 UI(화면) 암호화 전송 ( html / script ) 끝

2023년 2월 6일
·
0개의 댓글
·

pkl 파일을 pt 파일로 바꾸기(StyleGAN2-ADA, Convert pkl to pt)

커스텀 데이터셋을 가지고 StyleGAN2를 학습시킨 경우 기존 .pkl 파일을 .pt로 바꾸어야 하는 경우가 있습니다. 이를 적용해보고 generator로 확인까지 하는 방법을 간단히 소개하고자 합니다. tensorflow 1.x 버전(이 글은 1.15.5)이 필요합니다. convert 코드 깃허브 해당 깃헙을 클론해옵니다. 공식 레포지토리에도 convert 파일을 제공하지만 제 경우에는 원하는 결과가 나오지 않아서 해당 깃헙으로 작업하였습니다. 깃헙내의 export_weights.py 파일을 통해서 pkl파일을 pt로 바꿀 수 있습니다. 그럼 만든 pt파일로 이미지를 만들어 확인해보겠습니다. StyleGAN2-pytorch 깃허브 해당 깃헙을 클론 받아옵니다. 주석으로 제가

2023년 1월 15일
·
0개의 댓글
·