# Django 5.2.9 문서

# ASGI를 사용하여 배포하는 방법

WSGI뿐만 아니라, Django는 비동기 웹 서버와 애플리케이션을 위한 새로운 Python 표준인 ASGI_에 대한 배포도 지원합니다.

Django의 :djadmin:’start project’ 관리 명령은 프로젝트에 필요한 대로 수정할 수 있는 기본 ASGI 구성을 설정하고 ASGI 호환 애플리케이션 서버를 사용하도록 지시합니다.

Django에는 다음 ASGI 서버에 대한 시작 설명서가 포함되어 있습니다.

- 다프네와 함께 django를 사용하는 방법
- 하이퍼콘과 함께 장고를 사용하는 방법
- django와 유비콘 사용방법

## 애플리케이션 객체

WSGI와 마찬가지로 ASGI는 애플리케이션 서버가 코드와 통신하기 위해 사용하는 “애플리케이션” 호출 케이블을 제공합니다. 그것은 일반적으로 서버가 접근할 수 있는 파이썬 모듈에서 “애플리케이션”이라는 이름의 객체로 제공된다.

:djadmin:’start project’ 명령은 :file:’/asgi 파일을 생성합니다.그러한 ``응용프로그램”을 포함한 py는 호출할 수 있다.

개발 서버(‘runserver’)에서 사용하는 것이 아니라 ASGI 서버가 개발 또는 프로덕션에서 사용할 수 있습니다.

ASGI 서버는 대개 문자열로 호출할 수 있는 응용 프로그램의 경로를 택하는데 대부분의 Django 프로젝트에서 이것은 ``my project.asgi: application”처럼 보일 것이다.

경고

Django의 기본 ASGI 처리기는 모든 코드를 동기 스레드에서 실행하지만, 자신의 비동기 처리기를 실행하도록 선택하는 경우에는 비동기 안전성을 알고 있어야 합니다.

어떤 비동기 코드에서도 동기 함수나 라이브러리 차단을 호출하지 마십시오. Django는 비동기식 안전이 아닌 Django 부분에서는 이 작업을 수행할 수 없도록 방지하지만 타사 앱이나 Python 라이브러리에서는 그렇지 않을 수 있습니다.

## 설정 모듈 구성

ASGI 서버가 응용프로그램을 로드할 때 Django는 전체 응용프로그램이 정의된 설정 모듈을 가져와야 합니다.

Django는 :envvar를 사용합니다.’DJANGO_SETTINGS_MODULE’ 환경변수로서 적절한 설정모듈을 찾을 수 있다. 설정 모듈에 대한 점선 경로를 포함해야 합니다. 개발 및 프로덕션에 다른 값을 사용할 수 있습니다. 모든 값은 설정을 구성하는 방법에 따라 다릅니다.

이 변수가 설정되지 않은 경우 기본값:file:’asgi’입니다.py는 그것을 ``내 사이트”로 설정한다.”내 사이트”가 프로젝트의 이름인 설정”입니다.

## ASGI 미들웨어 적용

ASGI 미들웨어를 적용하거나 Django를 다른 ASGI 애플리케이션에 포함시키려면 Django의 ``응용” 개체를 “asgi”에 포장하면 된다.파이브 파일 예:

    from some_asgi_library import AmazingMiddleware

    application = AmazingMiddleware(application)