[python]파이썬 동시성/비동기 프로그래밍 2. Asyncio
2020. 7. 18. 23:19
Programming/Python
[python]파이썬 동시성/비동기 프로그래밍 1. 코루틴 [python]파이썬 동시성/비동기 프로그래밍 1. 코루틴 코루틴 3.5 버전부터 지원(async/await 문법은 3.7 이상부터) 코루틴을 사용하면 CPU와 리소스 낭비를 방지할 수 있어 I/O처리를 극대화할 수 있음 일시 정지/정지가 가능한 함수를 말하며 generator 역시 leo-bb.tistory.com Asyncio 파이썬에서 동시성 프로그래밍을 위해 제공되는 패키지로 GIL을 회피하는 방법 중 하나 파이썬 3.4 버전에 표준으로 채택 비동기 프레임워크의 기반으로 사용되며 IO 병목이 발생하면서 고차원의 수준이 요구되는 네트워크 코드에 가장 유용 아래는 공식 레퍼런스 문서에서 설명하는 사항 1.파이썬 코르틴을 동시에 실행하고 완전히..
[python]파이썬 동시성/비동기 프로그래밍 1. 코루틴
2020. 7. 18. 19:55
Programming/Python
코루틴 3.5 버전부터 지원(async/await 문법은 3.7 이상부터) 코루틴을 사용하면 CPU와 리소스 낭비를 방지할 수 있어 I/O처리를 극대화할 수 있음 일시 정지/정지가 가능한 함수를 말하며 generator 역시 코루틴에 속함 I.코루틴과 제너레이터의 차이 def generator(): print('첫번째 작업 수행') yield 'first work func()' print('두번째 작업 수행') yield 'second work func()' print('세번째 작업 수행') yield 'third work func()' gen = generator() next(gen) def coroutine(): print('코루틴 시작') while True : func = yield print('..
[python]itertools를 사용해서 고난이도 코딩테스트도 쉽게 풀자!
2020. 7. 18. 18:17
Programming/Python
Itertools APL, Haskell, SML에 영감을 받아 파이썬에 최적화되어 동작하도록 구성된 반복 연산자 패키지로 자체 또는 조합되어 효율적이고 빠르게 동작하며 operator 모듈과 효과적으로 동작함 코딩 테스트 풀이 시 굉장히 유용하게 사용되는 패키지 중 하나 generator와 같이 사용할 수 있다. (generator가 궁금하시다면 => "링크") * operator 모듈 : 파이썬의 내장 연산자에 해당하는 __add__ 등을 제공하는 패키지로 add, lt, ne 등 객체 비교, 논리 연산, 수학 연산, 시퀀스 등을 수행하는데, __func__ 가 아니라 단일 이름으로 제공되는 차이가 있음 I. 무한 반복 반복 연산자를 무한히 수행하기 때문에 while, try/except 구문 등과 ..
[python]데코레이터(Decorator)
2020. 7. 11. 21:31
Programming/Python
1. 데코레이터 클로저인데 인수가 함수인 부분이 차이가 있으며, 다양한 상황에서 동일한 기능을 수행하는 함수가 필요할 때 데코레이터를 만들어 사용하면 유리합니다. 일반적으로 로그를 남겨 redirecting 등 부차적 스테이지로 넘기거나, 함수의 실행시간, 메모리 점유시간 등을 확인하기 위한 용도로 많이 사용됩니다. 1.장점 공통 함수 작성(로깅, 프레임워크, 유효성 체크 등 )을 통한 간결한 코드라인과 중복 제거 조합 사용이 편리 2.단점 가독성 좋지 못하고 디버깅이 이렵다. 특정 기능에 한정된 함수는 단일 함수로 작성하는게 좋다 1) 사용법 def decorator_func(func): def wrap_func(): return func() return wrap_func() def target(): ..
[python]Comprehension and Generator expression
2020. 7. 11. 20:59
Programming/Python
2020/07/11 - [Coder/Python] - [python/자료형] 시퀀스 자료형 -2. Dict [python/자료형] 시퀀스 자료형 -2. Dict 3. dict tuple, dict 와 함께 정말 많이 쓰는 자료형 중 하나 대표적인 hashtable 1) dict source = (('k1', 'val1'), ('k1', 'val2'), ('k2', 'val3'), ('k2', 'val4'), ('k2', 'val5')) dic1 = {} for k, v in s.. leo-bb.tistory.com 1. Comprehension and Generator expression 1) Comprehension iterable 한 객체를 생성하는 방법 중 하나 A. iterable 다수 요소(el..
[python/자료형] 시퀀스 자료형 -2. Dict
2020. 7. 11. 20:28
Programming/Python
1. Dict tuple, dict 와 함께 정말 많이 쓰는 자료형 중 하나 대표적인 hashtable 1) dict source = (('k1', 'val1'), ('k1', 'val2'), ('k2', 'val3'), ('k2', 'val4'), ('k2', 'val5')) dic1 = {} for k, v in source: if k in new_dict1: dic1[k].append(v) else: dic1[k] = [v] dic1 >>> {'k1': ['val1', 'val2'], 'k2': ['val3', 'val4', 'val5']} dic2 = {} # Use setdefault for k, v in source: dic2.setdefault(k, []).append(v) dic2 >>> ..
[python]파이썬 함수형 프로그래밍(일급함수, 고차함수, 클로저)
2020. 7. 11. 19:17
Programming/Python
1. 개념 순수 함수들을 조합하여 전체 프로그램을 구현하는 방식으로 말 그대로 프로그램 내에서 데이터 연산 및 처리를 수학적인 개념에서 이해하여 다루려는 개념 2. 콘셉트 side effect 차단 모든 state를 immutable 하게 만들어 side effect를 사전에 차단하려 합니다. f(x+y) = z 가 있다면 f(x+y) = n 가 절대 불가능하듯 하나의 함수가 단 하나의 정상 값과 동작 결과를 갖도록 합니다. 모든 것을 객체로 취급 함수형 프로그래밍에서는 모든 것을 객체로 취급하기 때문에 함수 자체도 객체로 취급합니다. 따라서 함수형 프로그래밍에서는 함수가 인수로 전달되고, 변수에 할당될 수 도 있으며 반환될 수 있습니다. 보다 쉽고 안전한 동시성 작업 모든 객체들이 immutable 하..