2024/03 2

[python] 파이썬 동시성 프로그래밍

동시성 프로그래밍에 대해서 알기 위해서는 Bound, Thread, Process, Sync, Async라는 개념들을 알고 넘어갈 필요가 있습니다. Bound부터 하나씩 알아보도록 하겠습니다. Bound 동시성 프로그래밍에 대해서 공부하려면 먼저 Bound라는 개념을 알고 갈 필요가 있는데, Bound는 묶인단 뜻으로 작업을 하면서 묶이게 되는 시간을 뜻 합니다. Bound는 CPU Bound와 I/O Bound 2가지로 나뉩니다. CPU Bound CPU를 활용하는 작업에 따라 기다리게 되는 구간을 뜻 합니다. ex) 수학 연산, 딥러닝 연산, 이미지 처리 등 I/O Bound I/O 작업에 대해서 기다리는 구간을 뜻 합니다. ex) 파일 입출력, 네트워크 요청 등 Thread vs Process Th..

python 2024.03.31

[fastapi] lifespan

Lifespan fastapi를 사용하면서, 앱이 시작할 때 혹은 앱이 종료될 때에 실행되어야 하는 로직이 분명 존재하게 됩니다. 저는 모니터링 관련 세팅이 앱 시작할 때 주로 실행되도록 구성을 많이 하고 있는데요. 이런 세팅들을 명시적으로 실행 위치를 정해주는 기능이 fastapi에 존재합니다. lifespan이라는 기능인데, 오늘은 fastapi의 lifespan을 소개해보겠습니다. 먼저 위에서 언급했듯이, 앱이 시작하기 전 혹은 종료 시 실행되어야 하는 로직을 정하고 lifespan 함수를 선언해서 함수 안에 로직들을 작성하고 연결만해주면 됩니다. 바로 예시 코드를 보면서 소개드리겠습니다. 아래 코드는 fastapi 공식 문서에 소개된 코드입니다. (https://fastapi.tiangolo.co..

python/fastapi 2024.03.03