1. futures파이썬에서 futures는 비동기 작업을 실행할 수 있도록 도와주는 모듈입니다. 이 모듈은 비동기 실행을 위한 api를 고수준으로 작성하고 사용하기 쉽도록 개선하기 위해 나온 것입니다. 일반적으로 network 및 I/O 관련 작업시 비동기방식의 활용을 권장합니다. 왜냐하면 비동기 작업을 실행하면 지연시간(block) cpu 및 리소스를 낭비하는 것을 방지할 수 있기 때문입니다. 파이썬의 병렬 프로그래밍은 비동기 작업이 적합한 프로그램일 경우 눈에 띄는 성능향상을 볼 수 있습니다. 파이썬 3.2부터 도입된 concurrent.futures는 멀티스레딩 또는 멀티프로세싱 api가 통일되어 매우 사용하기 쉬워졌습니다. 이 모듈은 실행중인 작업취소, 완료여부 체크, 타임아웃옵션, 콜백추가, ..
파이썬에서 코루틴이란 단일(싱글) 스레드에서 스택을 기반으로 동작하며 비동기작업을 쉽게 할 수 있도록 도와주는 도구입니다. 코루틴은 루틴 실행중 서브루틴을 호출하고 서브루틴에서 수행하는데 이 코루틴의 특징으로는 루틴 실행중 중지되었을 때 해당 위치를 기억하므로 동시성 프로그래밍을 할 수 있도록 도와줍니다.이외에도 여러 장점으로는 스레드에 비해 오버헤드가 감소하며 스레드와 달리 단일 스레드로 동작하기 때문에 컨텍스트 스위칭 비용이 발생하지 않는다는 등이 있습니다. 아래사이트에서 개념을 더 확실히 익힐 수 있습니다.https://velog.io/@jaebig/python-%EB%8F%99%EC%8B%9C%EC%84%B1-%EA%B4%80%EB%A6%AC-3-%EC%BD%94%EB%A3%A8%ED%8B%B4..
파이썬에서는 병행성과 병렬성을 지원합니다. 여기서 병행성이란 한 컴퓨터가 여러일을 동시에 수행하는 것을 의미합니다. 즉 하나의 프로세스에서 여러일을 쉽게 해결하는 것입니다. 반면에 병렬성이란 여러 프로세스가 여러작업을 동시에 수행하는 것을 의미합니다. 예컨대 파이썬으로 크롤링을 할때 여러사이트에 동시에 접속해서 각각 정보를 수집하는 것 등입니다. 이러한 병렬성은 일반적으로 속도상승에 목적을 두고 있습니다. 파이썬에서 병행성을 이해하기 위해서는 제너레이터를 알아야합니다. 제너레이터의 개념은 아래 페이지를 참고하시면 됩니다.https://zero-week.tistory.com/151 파이썬 시퀀스1. 시퀀스파이썬에서 시퀀스는 여러 요소를 순서대로 나열한 데이터 구조를 의미합니다. 이러한 시퀀스는 저장하는 방..
1. 시퀀스파이썬에서 시퀀스는 여러 요소를 순서대로 나열한 데이터 구조를 의미합니다. 이러한 시퀀스는 저장하는 방식에 따라 컨테이너와 플랫으로 나눌 수 있고, 변경가능여부에 따라 가변(mutable)자료형과 불변(immutable)자료형으로도 구분할 수 있습니다. 여기서 컨테이너에는 list, tuple, collections, deque 등이 들어가며, 플랫에는 str, bytes,bytearray,array.array, memoryview 등의 자료형이 들어갑니다. 가변 자료형에는 list, bytearray,array.array, memoryview, deque가 있으며 불변자료형에는 tuple, str, bytes 등이 있습니다. 2. 제너레이터아주 많은 양의 데이터를 리스트에 담아 변수로 만들면..
파이썬에서 장식자(Decorator)는 함수나 메서드를 수정하거나 기능을 추가하는 데 사용되는 강력한 기능입니다. 장식자는 함수의 앞이나 뒤에 @ 기호를 사용하여 정의되며, 주로 함수나 메서드를 간단하게 수정하거나 특정 기능을 추가하기 위해 사용됩니다. 파이썬에서는 기본적으로 많은 내장 장식자가 제공되며, 사용자가 직접 장식자를 정의하여 활용할 수도 있습니다. 예를 들어, @staticmethod, @classmethod, @property, @abstractmethod와 같은 내장 장식자가 있습니다. 데코레이터를 작성하기 위해서는 아래 내용을 이해해야 합니다.1. 클로저2. 일급함수를 활용하는 방법3. 가변인자4. 인자풀기(언팩킹)5. 파이썬이 소스코드를 불러오는 과정 데코레이터의 장단점은 아래와 같습..
1. 파이썬 변수 범위 - global먼저 global에 대해 알아보겠습니다.파이썬에서 global은 지역볌수를 전역변수로 참조하는 키워드입니다.아래 예제를 통해 자세히 알아보겠습니다.b = 20def func1(a): print(a) #출력: 2 print(b) #출력: 20 -> 전역변수 20 출력func1(2)c = 30def func2(a): print(a) print(c) c = 40 # 지역변수에 전역변수와 동일한 변수가 있을 경우 에러발생# func2(5) #출력: UnboundLocalError: local variable 'c' referenced before assignmentdef func3(a): global c # 전역 참조 -> 지역변수에 전역변..
일급 함수(first-class function)는 프로그래밍 언어의 일급 객체(first-class object)로서의 특성을 가진 함수를 말합니다. 일급 객체의 특성은 다음과 같습니다 1. 실행시 런타임 초기화를 해야 합니다.2. 변수로 할당 가능해야 합니다.3. 함수 인수 전달 가능해야합니다.4. 함수 결과가 반환 가능(return)해야 합니다. 먼저 하나의 함수와 하나의 클래스를 만들어 보겠습니다.def factorial(n): '''팩토리얼 함수. n:int''' if n == 1: return 1 return n*factorial(n-1)class A: pass 이때 factorial은 함수이고 A는 클래스입니다. 이 두개의 타입을 확인해보겠습니다.print..
fastAPI의 공식문서는 아래와 같습니다.https://fastapi.tiangolo.com/ko/ FastAPIFastAPI framework, high performance, easy to learn, fast to code, ready for productionfastapi.tiangolo.com fastAPI를 사용하려면 가상환경이 설치되어있어야 합니다. 파이참을 사용하시는 분은 파이썬프로젝트를 생성하면 가상환경이 자동으로 만들어지며,VSCODE를 사용하시는 분은 venv가상환경을 설치해야합니다. 가상환경이 만들어졌다면 터미널에 아래명령어를 입력하여 fastAPI를 설치합니다.pip install fastapi 두번째로 uvicorn을 설치해야합니다. 아래명령어를 터미널에 입력합니다.pip ..
파이썬 플라스크의 공식문서는 아래와 같습니다.https://flask-docs-kr.readthedocs.io/ko/latest/index.html Flask의 세계에 오신것을 환영합니다. — Flask 0.11-dev documentation© Copyright 2012, Armin Ronacher.flask-docs-kr.readthedocs.io flask를 사용하려면 가상환경이 설치되어있어야 합니다. 파이참을 사용하시는 분은 파이썬프로젝트를 생성하면 가상환경이 자동으로 만들어지며,VSCODE를 사용하시는 분은 venv가상환경을 설치해야합니다. 가상환경이 만들어졌다면 터미널에 아래명령어를 입력하여 flask를 설치합니다. pip install Flask 플라스크를 설치했다면 main.py를 만들고..
1. app의 개념 장고(Django) 앱은 장고 프로젝트의 구성 요소 중 하나로, 웹 애플리케이션을 작은 단위로 나누어 개발하고 관리할 수 있게 도와주는 개념입니다. 각 앱은 특정 기능이나 업무를 수행하며, 재사용성과 모듈화를 강조하는 장고의 설계 철학을 따릅니다.장고 앱의 특징과 구조는 다음과 같습니다:독립성: 각 장고 앱은 자체적으로 독립적으로 동작할 수 있으며, 다른 프로젝트에서 재사용할 수 있습니다.앱 폴더 구조: 앱은 일반적으로 자체 폴더 구조를 가지며, 모델, 뷰, 템플릿, URL 매핑 등이 포함됩니다.앱의 재사용성: 여러 프로젝트에서 재사용할 수 있도록 설계되었습니다. 장고 커뮤니티에서도 많은 공개적인 앱들이 존재하며, 필요한 앱을 가져와서 사용할 수 있습니다.프로젝트와의 연결: 앱은 장고..