---
title: "ASGI를 사용하여 배포하는 방법"
version: 5.2
locale: ko
source: https://docs.djangoproject.com/ko/5.2/howto/deployment/asgi/
canonical: https://djangodocs.dev/ko/5.2/howto/deployment/asgi/
---
# ASGI를 사용하여 배포하는 방법

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

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

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

- [다프네와 함께 django를 사용하는 방법](/ko/5.2/howto/deployment/asgi/daphne/)
- [하이퍼콘과 함께 장고를 사용하는 방법](/ko/5.2/howto/deployment/asgi/hypercorn/)
- [django와 유비콘 사용방법](/ko/5.2/howto/deployment/asgi/uvicorn/)

## 애플리케이션 객체

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

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

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

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

> **Warning**
>
> Django의 기본 ASGI 처리기는 모든 코드를 동기 스레드에서 실행하지만, 자신의 비동기 처리기를 실행하도록 선택하는 경우에는 비동기 안전성을 알고 있어야 합니다.
>
> 어떤 비동기 코드에서도 동기 함수나 라이브러리 차단을 호출하지 마십시오. Django는 비동기식 안전이 아닌 Django 부분에서는 이 작업을 수행할 수 없도록 방지하지만 타사 앱이나 Python 라이브러리에서는 그렇지 않을 수 있습니다.

## 설정 모듈 구성

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

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

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

## ASGI 미들웨어 적용

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

```
from some_asgi_library import AmazingMiddleware

application = AmazingMiddleware(application)
```
