익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
유비콘 (Uvicorn)
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
고급
특수 문자
도움말
문단 제목
2단계
3단계
4단계
5단계
형식
넣기
라틴 문자
확장 라틴 문자
IPA 문자
기호
그리스 문자
그리스어 확장
키릴 문자
아랍 문자
아랍어 확장
히브리 문자
뱅골어
타밀어
텔루구어 문자
싱할라 문자
데바나가리어
구자라트 문자
태국어
라오어
크메르어
캐나다 원주민 언어
룬 문자
Á
á
À
à
Â
â
Ä
ä
Ã
ã
Ǎ
ǎ
Ā
ā
Ă
ă
Ą
ą
Å
å
Ć
ć
Ĉ
ĉ
Ç
ç
Č
č
Ċ
ċ
Đ
đ
Ď
ď
É
é
È
è
Ê
ê
Ë
ë
Ě
ě
Ē
ē
Ĕ
ĕ
Ė
ė
Ę
ę
Ĝ
ĝ
Ģ
ģ
Ğ
ğ
Ġ
ġ
Ĥ
ĥ
Ħ
ħ
Í
í
Ì
ì
Î
î
Ï
ï
Ĩ
ĩ
Ǐ
ǐ
Ī
ī
Ĭ
ĭ
İ
ı
Į
į
Ĵ
ĵ
Ķ
ķ
Ĺ
ĺ
Ļ
ļ
Ľ
ľ
Ł
ł
Ń
ń
Ñ
ñ
Ņ
ņ
Ň
ň
Ó
ó
Ò
ò
Ô
ô
Ö
ö
Õ
õ
Ǒ
ǒ
Ō
ō
Ŏ
ŏ
Ǫ
ǫ
Ő
ő
Ŕ
ŕ
Ŗ
ŗ
Ř
ř
Ś
ś
Ŝ
ŝ
Ş
ş
Š
š
Ș
ș
Ț
ț
Ť
ť
Ú
ú
Ù
ù
Û
û
Ü
ü
Ũ
ũ
Ů
ů
Ǔ
ǔ
Ū
ū
ǖ
ǘ
ǚ
ǜ
Ŭ
ŭ
Ų
ų
Ű
ű
Ŵ
ŵ
Ý
ý
Ŷ
ŷ
Ÿ
ÿ
Ȳ
ȳ
Ź
ź
Ž
ž
Ż
ż
Æ
æ
Ǣ
ǣ
Ø
ø
Œ
œ
ß
Ð
ð
Þ
þ
Ə
ə
서식 지정
링크
문단 제목
목록
파일
각주
토론
설명
입력하는 내용
문서에 나오는 결과
기울임꼴
''기울인 글씨''
기울인 글씨
굵게
'''굵은 글씨'''
굵은 글씨
굵고 기울인 글씨
'''''굵고 기울인 글씨'''''
굵고 기울인 글씨
Uvicorn은 ASGI(Asynchronous Server Gateway Interface) 애플리케이션을 실행하기 위한 고성능 비동기 웹 서버이다. FastAPI, Starlette, Django(ASGI 지원 시) 등 현대적인 웹 프레임워크와 함께 사용되며, 단순 코드 예제 이상의 역할을 수행한다. Uvicorn은 전체 ASGI 생태계 내에서 중요한 위치를 차지하며, 개발 및 프로덕션 환경 모두에서 핵심 역할을 담당한다. ==개요== Uvicorn은 Python의 asyncio를 기반으로 uvloop, httptools 등 네이티브 라이브러리와 결합되어 높은 처리 성능과 낮은 지연시간을 제공한다. 기본적으로 HTTP 1.1을 지원하며, 옵션에 따라 HTTP/2와 WebSocket도 지원할 수 있다. 개발 환경에서는 자동 재시작(--reload)을 통해 빠른 피드백을 제공하고, 프로덕션 환경에서는 멀티 워커 옵션(--workers)을 통해 확장성을 확보할 수 있다. ==역할 및 특징== Uvicorn은 ASGI 표준을 구현하여 웹 요청을 비동기적으로 처리한다. FastAPI와 같은 프레임워크와 함께 사용할 때, Uvicorn은 클라이언트의 HTTP 및 WebSocket 요청을 받아 ASGI 애플리케이션으로 전달하고, 그 응답을 다시 클라이언트에 전달하는 중개자 역할을 한다. *비동기 처리를 통한 높은 성능 제공 *uvloop와 httptools 등 네이티브 라이브러리 기반으로 빠른 실행 속도 보장 *간단한 CLI 명령어로 서버 실행 및 옵션 설정 가능 *개발 중 코드 변경 시 자동 재시작(--reload) 옵션 제공 *프로덕션 환경에서는 멀티 워커(--workers) 옵션을 통해 부하 분산 가능 ==ASGI 서버 비교== Uvicorn은 다른 ASGI 서버와 비교했을 때 다음과 같은 차별점을 가진다. *Daphne: Django Channels에서 주로 사용되는 서버로 웹소켓 지원에 강점을 보이나, Uvicorn은 전반적인 성능과 응답 속도에서 더 뛰어나다. *Hypercorn: Quart와 같은 프레임워크에서 주로 사용되며 다양한 프로토콜 지원에 중점을 두지만, Uvicorn은 단순성과 경량성에서 우위를 점한다. *Uvicorn은 특히 FastAPI와 같은 최신 웹 프레임워크와의 결합 시, API 응답 속도와 확장성에서 많은 개발자들이 선호하는 선택이다. ==FastAPI와 함께 사용될 때의 역할== FastAPI와 결합될 경우, Uvicorn은 다음과 같은 역할을 수행한다. #ASGI 서버로서 FastAPI 애플리케이션을 실행하고, 클라이언트 요청을 비동기적으로 처리한다. #FastAPI에서 정의한 경로, 요청 바디, 응답 모델 등의 기능을 원활하게 전달받아 적절히 실행하도록 돕는다. #개발 중 자동 재시작(--reload) 옵션을 통해 코드 수정 시 즉각적으로 반영되어 개발 생산성을 높인다. #프로덕션 환경에서는 멀티 프로세스 설정(--workers)을 통해 고부하 상황에서도 안정적인 서비스 제공을 가능하게 한다. ==기본 실행 예제== 다음은 FastAPI 애플리케이션과 함께 Uvicorn을 사용하는 기본 예제이다.<syntaxhighlight lang="python"> from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello, Uvicorn and FastAPI!"} </syntaxhighlight>서버 실행 명령:<syntaxhighlight lang="bash"> uvicorn main:app --reload </syntaxhighlight>여기서 "main"은 파일명, "app"은 FastAPI 인스턴스를 의미하며, --reload 옵션은 개발 중 코드 변경 시 자동으로 서버를 재시작한다. ==고급 사용 예제== Uvicorn은 다양한 옵션을 통해 프로덕션 환경에 적합하게 설정할 수 있다. 예를 들어, 멀티 워커 환경에서 실행하는 경우:<syntaxhighlight lang="bash"> uvicorn main:app --workers 4 --host 0.0.0.0 --port 8000 </syntaxhighlight>또한, gunicorn과 함께 Uvicorn 워커를 사용하여 더욱 안정적인 서비스 구성이 가능하다.<syntaxhighlight lang="bash"> gunicorn main:app -k uvicorn.workers.UvicornWorker --workers 4 </syntaxhighlight> ==요약== Uvicorn은 ASGI 애플리케이스 서버로서, 비동기 처리를 통한 높은 성능과 간편한 사용법을 제공한다. FastAPI와 결합될 때 Uvicorn은 애플리케이션의 실행 환경을 담당하며, 빠른 응답성과 확장성을 보장하는 핵심 요소로 작용한다. 다양한 ASGI 서버와 비교하여 단순성, 경량성, 그리고 뛰어난 성능 면에서 많은 개발자들이 선호하는 선택이다. ==같이 보기== *[[ASGI]] *[[FastAPI]] *[[Starlette]] *[[Django]] *[[Hypercorn]] *[[Daphne]] *[[비동기 프로그래밍 (파이썬)]] ==참고 문헌== *https://www.uvicorn.org *https://github.com/encode/uvicorn *FastAPI 공식 문서: https://fastapi.tiangolo.com [[분류:파이썬]] [[분류:프로그래밍]] [[분류:백엔드]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록