본문 바로가기

channels

Django channels 소개 Django Channels는 Django 웹 프레임워크의 확장 기능으로, 비동기 웹 애플리케이션을 개발하는 데 필요한 다양한 기능을 제공합니다. 이를 통해 Django 프로젝트는 HTTP 뿐만 아니라 WebSocket, MQTT, 챗봇, 아마추어 라디오 등과 같은 장기 실행 연결이 필요한 프로토콜도 처리할 수 있습니다. Django Channels는 Django의 기본 비동기식 뷰 지원을 감싸며, Django 뷰와 유사한 동기식 방식, 완전한 비동기식 방식 또는 둘의 조합 중 어떤 것이든 선택할 수 있습니다. 이를 통해 Django의 동기식 및 사용하기 쉬운 성격을 유지하서, Django 프레임워크의 다양한 기능과 함께 사용할 수 있습니다. Django Channels를 사용하여 WebSocket 연결.. 더보기
장고 channels 서비스를 위한 nginx 설정 변경 이제 설정이 마무리 단계입니다. 지금 현재 서버에서는 nginx 서버와 daphne가 실행중입니다. daphne는 django 서비스를 실행하고 있습니다 이제 사용자가 브라우저를 통해 웹서버(nginx)에 서비스 요청을 하면 웹서버에서 daphne로 요청을 하면 daphne는 웹 서비스와 channels의 요청을 구분하여 사용자에게 전달을 하게 됩니다. 이제 nginx로 들어오는 요청을 daphne로 전달하는 nginx의 설정을 하도록 하겠습니다. collectstatic - 정적 파일 관리 웹서버에서 관리할 정적파일 경로 설정이 필요합니다. collectstatic 명령어를 통해 static 파일을 분리하고 서버에 반영해야 합니다. collectstatic은 프로젝트내 흩어져 있는 js, image, .. 더보기
장고 channels를 위한 Daphne + nginx + supervisord 서비스 설치 이제 서비스를 위한 준비는 되었습니다. 제가 준비하는 서비스는 django + Channels 서비스입니다. Channels를 사용하려면 asgi를 사용하여 서비스를 하여야 합니다. asgi서비스를 위해서는 uwsgi를 사용하지 않고 daphne를 이용하여 서비스를 해야합니다. daphne + Nginx를 연동하는 자료는 부족하였습니다. 구글 검색과 channels의 공식 설명서를 보면서 어렵게 daphne + Nginx 서비스를 구현하게 되었습니다. 이에 다음에 다른 프로젝트를 수행할 때 시행착오를 겪지 않으려고 자료를 남기려는 목적과 저 처럼 서비스를 구현하는데 어려움을 겪는 분들에게 조금이나봐 도움이 되었으면 하는 생각에 남기게 되었습니다. daphne 설치 daphne는 python 패키지로 pi.. 더보기