Django

Django Async 및 ASGI

ASGI 대 WSGI, async views, sync_to_async, async_to_sync, 동기 ORM 제약, async 성능, database connection pooling

26 면접 질문·
Senior
1

WSGI와 ASGI의 주요 차이점은 무엇인가요?

답변

ASGI(Asynchronous Server Gateway Interface)는 비동기 프로그래밍과 WebSockets 같은 지속 연결에 대한 지원을 추가하여 WSGI를 확장합니다. WSGI는 동기 방식이며 worker당 한 번에 하나의 요청만 처리할 수 있는 반면, ASGI는 asyncio event loop를 통해 단일 프로세스에서 여러 요청을 동시에 처리할 수 있습니다.

2

Django에서 async view를 어떻게 선언하나요?

답변

Django의 async view는 def 앞에 async 키워드를 사용하기만 하면 선언됩니다. Django는 해당 view가 비동기인지 자동으로 감지하여 적절한 event loop에서 실행합니다. 이 Python 3.5 이상의 네이티브 문법은 Django 3.1부터 완전히 지원됩니다.

3

Django에서 sync_to_async의 역할은 무엇인가요?

답변

sync_to_async는 asgiref가 제공하는 어댑터로, 비동기 컨텍스트 내에서 동기 코드를 실행할 수 있게 해줍니다. 동기 함수를 감싸 별도의 thread pool에서 실행하므로 event loop가 차단되는 것을 방지합니다. ORM이 동기 방식이기 때문에 async view에서 Django ORM을 호출할 때 필수적입니다.

4

Django ORM을 async view에서 직접 사용할 수 없는 이유는 무엇인가요?

5

Django에서 async_to_sync의 역할은 무엇인가요?

+23 면접 질문

다음 면접을 위해 Django을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기