목록동시성 (2)
몰입공간

#1. 동시성 프로그래밍 파이썬에서 가장 최적의 비용으로 동시성을 개선시킬 수 있는 3대장이 있습니다. 멀티프로세싱 / 멀티쓰레딩 메모리 관리가 힘들다. 컨텍스트 스위칭에 따른 오버헤드가 발생하므로, 기능의 성격에 따라 성능이 더 안좋아질 가능성이 있다. Celery 등의 메시지 기반 비동기 큐 단일 어플리케이션에서 쓰기에는 조금 무거운 감이 있다. 비동기 프로그래밍 동기 프로그래밍에 비해 설계가 복잡하지만, 자원 사용이 매우 효율적이다. 어느 것이 무조건 좋다라고 말하기 힘들고, 보통 성능을 검증하는 과정을 통해 적절한 방법을 강구하는 것이 좋습니다. 파이썬 웹 프레임워크 신흥 강자인 FastAPI은 pydantic과 비동기 웹서버인 uvicorn을 사용함으로써 그 빠른 속도의 근거를 찾을 수 있고, ..

#1. F() expression 장고의 F() 객체는 SQL 쿼리의 '호출'을 파이썬 메모리에 가져오지 않고 순전히 데이터베이스 레벨에서만 처리하는 장고의 쿼리표현식 입니다. 즉, 모델의 필드값 조회나 변경을 데이터베이스 레벨에서 직접 연산할 수 있는 클래스입니다. F() 객체를 사용하는 이점으로 쿼리 수를 줄이는 것, 효율적인 메모리 사용등이 있지만 아무래도 경쟁조건(Race condition)을 피해 동시성을 해결하는 것이 가장 핵심일 듯 합니다. #2. 경쟁조건 (race condition) 제품을 나타내는 Product 모델이 있고, 그 제품의 주문수를 기록하는 필드를 따로 설정했다고 가정합니다. 일반적으로 주문의 횟수를 업데이트하는 방식은 다음과 같습니다. product = Product.ob..