일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- IAC
- DevOps
- asyncio
- dockerfile
- 쿠버네티스
- Django
- IAM
- leetcode
- ansible
- Service
- intervals
- Deployment
- terraform
- elasticsearch
- docker
- ebs
- github
- AWS
- event loop
- EKS
- POD
- Python
- EC2
- 자바스크립트
- WSGI
- Kubernetes
- K8S
- FastAPI
- asgi
- YAML
- Today
- Total
목록Python (15)
궁금한게 많은 개발자 노트
서버로 부터 이미지나 동영상 파일을 다운로드 받을 때, base64로 encode된 PlainTextResponse를 사용해도 되지만, 좀 더 나은 성능을 보장하며 Async방식으로 다운 받을 수 있는 StreamingResponse 사용 및 사용 시 주의 점에 대해 알아보고자 합니다. https://fastapi.tiangolo.com/advanced/custom-response/#streamingresponse Custom Response - HTML, Stream, File, others - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com 서..
FastAPI 프레임워크의 구성요소와 FastAPI가 사용하는 비동기 메커니즘에 대해 알아보고자 합니다. 우선 FastAPI가 각광받는 이유로는 높은 속도와 성능(Starlette와 Pydantic), ASGI를 기반한 비동기(async/await), 코드 변화에 따른 API문서화(openAPI)등을 꼽을 수 있습니다. WSGI(Web Server Gateway Interface): 웹서버와 웹프레임워크 사이에서 통신하기 위한 인터페이스 (동기) ex) gunicorn ASGI(Asynchronous Server Gateway Interface): WSGI를 계승하고, Asyncio라이브러리를 이용한 비동기 처리 가능 높은 속도와 성능이 보장되는 이유는 FastAPI는 ASGI서버인 Starlette 프..
우선 기본 코어 서버를 Django로 구축하여 사용 중에 수 많은 모듈들이 하나의 서버에 무겁게 구축되어 있는 상황에서 점점 더 코드 복잡도가 높아져 성능 개선 및 응집도 분산을 위해서 MSA로 넘어가면서, FastAPI라는 API 서버 웹 프레임 워크를 도입했습니다. FastAPI란 python 3.6이상에서 동작하는 표준 python type hint를 바탕으로한 현대적이고 빠른 API 서버 웹 프레임 워크입니다.Flask와 비슷한 구조를 가지고 있으며, 기본적으로 비동기식으로 작성되어 있어 I/O 병목현상이 자주 일어나는 웹 서버에서 빠른 성능을 보여주고 있어 python API서버로 적합하다고 생각됩니다. FastAPI의 장점은 아래와 같습니다.기존 Django는 웹 서비스를 만들기 위해 사용한다..
Future Object퓨처 객체는 어떠한 작업의 실행 상태 및 결과를 저장하는 객체입니다. 실행 상태란 해당 작업이 진행 중인지(PENDING), 취소되었는지(CANCELLED), 종료되었는지(FINISHED)를 나타냅니다. 작업의 완료라 함은 CANCELLED 또는 FINISHED 상태를 가리킵니다. 그리고 실행 결과라 함은 해당 작업의 결과 값 혹은 그 작업을 진행하면서 발생한 예외 객체를 말합니다. 예외가 발생한 경우에도 상태는 FINISHED가 됨을 주의해야 합니다.중요한 점으로는 작업의 실행 상태 및 결과를 나타낼 뿐, 작업의 실행을 개시하지 않는다는 점입니다. 퓨처 객체의 중요한 메소드 중하나는 add_done_callback()입니다. 이 메소드를 호출하면 해당 퓨처 객체가 완료될 떄 호출..
동시 프로그래밍(concurrent programming)은 기본적으로 여러 스레드를 활용하여 다중 스레드 프로그래밍을 뜻합니다. 하지만 다중 스레드 환경에서 thread-safe한 프로그래밍을 개발하는 것은 쉽지 않고 고려해야할 사항이 많습니다. 또한, 싱글 코어 프로세서에서 다중 스레드 프로그램을 돌리면 성능이 기대했던 것 보다 나오지 않는 문제가 있습니다. 그래서 단일 스레드에서 비동기적으로 동시에 여러 task를 처리하는 비동기 프로그래밍이 등장하게 되었습니다. python3.4에서 asyncio가 표준 라이브러리로 채택이 되고, 3.5버전에서는 async/await 키워드가 문법으로 채택되면서 파이썬에서도 비동기 프로그래밍이 가능하게 되었습니다. Event Loop 동작 원리 파이썬의 이벤트 루..