본문 바로가기

django

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, .. 더보기
장고(Django) 서비스를 위한 기본 패키지 설치 및 장고 서비스 시작 Django 기본패키지 설치 이제 django 기본 패키지를 설치 해보도록 하겠습니다. 먼저 가상환경 모드로 진입하겠습니다. 1) workon iothook_env 2) pip list로 설치된 패키지를 확인해 보겠습니다. 3) /usr/local/share/iothook/requirements 디렉토리로 이동하여 requirements.txt 내용을 읽어 패키지를 설치합니다. $pip install -r requirements.txt 기본 iothook 서비스를 위한 python 패키지를 설치를 하였습니다. django 서비스를 구동시켜 보겠습니다. $python mange.py runserver 0.0.0.0:80 실행했는데 이와 같이 나오면서 서비스가 된다면 지금까지의 설정이 제대로 이루어졌다는 것.. 더보기
장고(django)서비스를 위한 방화벽 설정 web 서비스는 기본적으로 80, 443(ssh)를 사용하여 서비스를 합니다. 오라클 클라우드에 서버(인스탄스)를 생성하게 되면 기본적으로 ssh포트(22번)만 외부에서 접속할 수 있도록 되어 있습니다. 사용자가 원하는 서비스를 하기 위해서는 해당 서비스 포트를 접속할 수 있도록 해줘야 서비스가 가능합니다. 서비스 포트를 접속할 수 있도록 하는 방법은 2단계를 거쳐야 합니다. 오라클 클라우드는 기본적으로 idc 센터에서 가상서버로 서비스를 하기 때문에 각 사용작별로 가상네트워크가 생성이 되어 서비스를 하는 것으로 보입니다. 따라서 서비스 포트를 접속하게 하려면 먼저 각 사용자의 가상 네트워크에서 80, 443 포트를 접속이 가능하도록 규칙을 추가하여야 합니다. 그 다음에는 해당 서버에서 iptables를.. 더보기
우분투 서버에 pip3 모듈 설치 및 Python 가상 환경 설정 이제 web서버에 github 저장소로 부터 django 프로젝트를 가져와 설치를 하게 되었습니다. 이제 python 가상환경을 설치하고 프로젝트에서 필요한 python package를 설치 등을 하여 서비스를 운영할 수 있도록 하겠습니다. PIP 설치 확인 및 설치하기 파이썬 모듈을 설치하기 위해 pip을 설치합니다. pip3 list 또는 pip -V 실행해서 설치확인을 합니다. 에러메시지가 나오면 설치해야합니다. 설치가 안되어 있습니다. 이제 pip 패키지를 설치 하도록 하겠습니다. 패키지 설치 전 apt update를 합니다. 이후 python3-pip 패키지를 설치합니다. $ sudo apt update $ sudo apt install python3-pip pip 설치 완료 $pip3 list.. 더보기
github로부터 django 프로젝트 소스 복사하여 서버에 설치 지금까지 오라클 클라우드에 DB 서버 설정을 하였습니다. 처음에 이야기 했듯이 전 web 서버와 db 서버를 분리하여 운영하려고 하였습니다. 이제 web 서버의 설정과 django 설치, daphne 설정을 하여 웹 서비스를 운영할 수 있도록 설정을 진행하도록 하겠습니다. 저도 처음으로 시도하는 것이라 작은 실수나 틀린 부분이 있을 수 있습니다. 그런 부분은 댓글로 남겨주시면 감사하겠습니다. 기존에 많은 자료가 있으므로 굳이 여기서 django 설치나 설정은 굳이 설명하지 않도록 하겠습니다. github 소스 가져오기 저는 django 소스를 github에 올려두고 소스 관리를 하고 있습니다. 예전에는 로컬에 저장하고 ftp를 올려서 관리를 했었는데 버전관리에 어려움을 겪어 github를 이용하고 있습니.. 더보기
github 접속용 ssh 키 만드는 법 github를 사용하려면 ssh키를 등록해야합니다. git과 github를 처음 사용하면 ssh키를 어떻게 만들어야 하는지 어디서 만들어야 하는지 잘 모를 수 있습니다. 저 역시도 그랬구요. github를 이용하여 소스관리를 하려고 했는데, 검색으로 github에 소스를 등록하고 서버에서 github에 있는 소스를 가져오려고 하는데 검색한 자료대로 했는데 소스는 가져오기가 안되고, 내가 멀 잘못했나 하고 한참을 고민을 한 적이 있습니다. 그러다가 git clone을 할때 나오는 메시지를 보고 다시 검색해보니 github에서 이제는 ssh를 통해서만 clone이 된다고 하여 또 다시 구글 검색을 통해서 ssh키 발급과 github에 ssh키를 등록하는 방법을 알게 되었습니다. github를 사용할 때 ss.. 더보기
장고(Django)와 다프네(Daphne) 서비스 설정을 위한 mysql 서버 설치 및 설정 지금까지 Django 사이트 개설을 위한 기본 설정들을 해오고 있습니다. 이글은 제가 사이트 개설을 하면서 겪었던 시행착오를 정리하는 차원입니다. 제가 설정하는 방법이 정답은 아닙니다. 제가 편하게 검색을 통해 알아보고 그것을 적용하여 사이트를 개설한 것에 대한 정리입니다. mysql db 설치 먼저 web 서버를 만드는 것처럼 서버를 한대 더 추가하시면 됩니다. 오라클 대시보드에서 인스턴스를 추가하여 root 접속까지 가능한 기본 설정을 하시면 됩니다. 한가지 주의할 점이 있습니다. 다들 오라클에서 인스턴스(서버)를 생성하실 때 이 부분을 주의하여야 합니다. Name: 이 부분이 중요합니다. 중요할 수도 있고 안할 수도 있겠지만 서버의 이름을 지정하는 것입니다. 서버를 생성하고 나서는 오라클에서는 수정.. 더보기