본문 바로가기

IT

Django channels 소개 Django Channels는 Django 웹 프레임워크의 확장 기능으로, 비동기 웹 애플리케이션을 개발하는 데 필요한 다양한 기능을 제공합니다. 이를 통해 Django 프로젝트는 HTTP 뿐만 아니라 WebSocket, MQTT, 챗봇, 아마추어 라디오 등과 같은 장기 실행 연결이 필요한 프로토콜도 처리할 수 있습니다. Django Channels는 Django의 기본 비동기식 뷰 지원을 감싸며, Django 뷰와 유사한 동기식 방식, 완전한 비동기식 방식 또는 둘의 조합 중 어떤 것이든 선택할 수 있습니다. 이를 통해 Django의 동기식 및 사용하기 쉬운 성격을 유지하서, Django 프레임워크의 다양한 기능과 함께 사용할 수 있습니다. Django Channels를 사용하여 WebSocket 연결.. 더보기
델파이 10.4에서 playstore 출시 후 발생한 문제에 대한 정리 오랜만에 델파이로 구글 playstore에 출시하는 프로젝트를 진행하게 되었다. 개발보드에 런치해서 출시하였을때는 고려해야할 문제가 그리 많지 않았으나 playstore에 출시를 하는 순간 고려해야 하는 문제가 여러가지 발생하였다. 1. 현재 구글 playstore는 api 버전 30을 지원해야 등록이 가능하다. 그런데 델파이 10.4는 api 30을 지원하지 않는다. 따라서 컴파일러 버전을 업데이트해야 하는 문제가 발생한다. 그러나 당장 버전을 업데이트를 하기에는 무리가 따르고 따라서 검색을 해서 알아본 결과 AndroidManifest.template.xml를 수정하면 된다고 한다. 이부분에서 %targetSdkVersion%을 강제로 30으로 변경을 하면 된다. 무사히 playsotre에 등록하고 .. 더보기
Delphi 안드로이드 구글 스토어 배포(64bit) 수족관 IOT 프로젝트에서 스마트폰 APP개발을 하게 되었습니다. 개발 언어는 Delphi, 프레임워크는 Firemonkey로 하게되었습니다. 개발을 완료하여 구글 스토어에 등록을 하여야 하는데, 예전에 개발을 할때는 32bit로 개발을 하였으나 이번에 등록하면서 64bit로 등록을 하여야 합니다. 그래서 32bit와 달라진 점을 확인하고 64bit로 등록을 하게 되었습니다. 이와 관련하여 컴파일과 등록방법을 정리하여 다음번 개발을 위해 자료를 정리하는 목적으로 작성을 하였습니다. 1) 어플리케이션 웹 서명 Key 파일 생성 2) App bundle 패키지로 빌드 후 업로드(.aab) 1) 어플리케이션 앱 서명 key 파일 생성 안드로이드 구글 스토어에 앱을 배포하기 위해서는 앱을 서명하여야 합니다. 앱.. 더보기
장고 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.. 더보기
장고(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.. 더보기