UvicornUvicorn은 ASGI(Asynchronous Server Gateway Interface) 표준을 구현한 서버이다. FastAPI로 짜인 코드는 단독으로 실행은 되지만, 웹 API로써는 동작할 수 없다.from fastapi import FastAPIapp = FastAPI()@app.get("/")async def root(): return {"message": "Hello World"} # python main.py // 바로 종료됨 main.py 코드가 서버를 실행시키는 코드가 아니며, 위 코드는 FastAPI app 인스턴스를 만들고 라우터를 등록하는 코드이다. HTTP 요청을 받아 FastAPI 인스턴스에게 전달하고 데이터를 받아 HTTP 응답을 제공하는 서버의 역할을 하..
멀티스레딩이란,하나의 프로세스 안에서 여러 개의 스레드를 실행하여 동시에 작업을 처리하는 방식 파이썬은 GIL(Global Interpreter Lock) 때문에 CPU 연산이 많은 작업에서는 멀티스레딩의 성능 향상이 크지 않다.하지만, I/O 작업에서는 스레드가 쉬지 않고 일하게 할 수 있어 효율을 높일 수 있다. Thread Pool: ThreadPoolExecutorfrom concurrent.futures import ThreadPoolExecutorimport timeimport threadingdef task(n): thread_name = threading.current_thread().name print(f"작업 {n} 시작 - 스레드: {thread_name} - 시간: {ti..
defaultdict()dict 클래스의 서브 클래스로, 기본값을 지정할 수 있는 딕셔너리입니다.num, list, set 등으로 초기화할 수 있습니다.from collections import defaultdict defaultdict(int)int_dict = defaultdict(int)print(int_dict)print(int_dict["test"])# defaultdict(, {})# 0 처음 키를 지정할 때 값을 설정하지 않아도, 해당 Key에 대한 값을 Default로 설정할 수 있다.특정 값의 카운팅을 처리할 때 용이하다.char_count = defaultdict(int)for char in s: char_count[char] += 1 # key가 없어도 자동으로 0에서 시작 d..
all파이썬의 all(x) 내장 함수는 반복 가능한 데이터(iterable) x를 입력 값으로 받으며 이 x의 요소가 모두 참이면 True, 거짓이 하나라도 있으면 False를 리턴합니다.print(all([1,2,3]))# Trueprint(all([0,1,2,3]))# False이를 응용해서 리스트에 있는 값이 모두 참인지 확인할 수 있다.### 5*5 배열에서 빙고 여부 확인하기# 세로에 있는 값이 모두 0인지for i in range(5): if all(arr[j][i] == 0 for j in range(5)): tmp += 1# (0, 0) -> (4, 4) 대각선이 모두 0인지if (all(arr[i][i] == 0 for i in range(5))): tmp += 1all() 함수..