새소식

반응형
Toy Project/Django Web Chatting

[Django] 장고 웹 채팅 서비스(1) - 프로젝트 생성

  • -
반응형
장고 로고 이미지입니다.
Django

장고 웹 채팅 서비스 - 프로젝트 생성 


이번 시간부터 장고의 Channels 라이브러리를 활용하여 웹 채팅 서비스를 구현할 것이다. 시작함에 앞서 이번 포스팅에서는 간단하게 장고의 프로젝트를 생성하고 개발 서버를 구동하는 내용을 다루겠다. 
 
실습 코드는 모두 GitHub 저장소에 업로드하므로 필요하다면 아래에서 코드를 전부 다운로드할 수 있으니 참고하자.

GitHub - Jack-Snider/Django-Channels: Making Web chatting site with Django Channels

Making Web chatting site with Django Channels. Contribute to Jack-Snider/Django-Channels development by creating an account on GitHub.

github.com

 
해당 포스팅에서는 VSCode에서 실습을 진행할 예정이므로, 현재 VSCode가 이미 설치돼 있거나 다른 IDE를 사용하고 있는 경우엔 바로 진행해도 좋겠지만, VSCode에서 실습을 진행하고자 하는데 설치가 돼있지 않을 경우 "VSCode 설치하기" 글을 참고하여 먼저 설치하도록 하자.
 

가상환경


장고 프로젝트를 생성하기 전의 아래의 명령어를 cmd에서 실행하여 파이썬 버전을 확인해 보자. 만약 파이썬이 설치가 안 돼있는 분들이라면 "파이썬 설치하기" 글을 참고하여 설치를 먼저 진행해 주자. 파이썬 버전이 최소 3.7 이상이 되는 것을 권장한다.

python --version

 
파이썬 버전이 확인이 됐다면 이제 프로젝트를 생성할 폴더를 만들어야 한다. 필자는 Django-Channels라는 폴더를 만들고 그 아래에 프로젝트를 생성할 계획이다. 
 
그리고 VSCode에서 해당 폴더로 이동하여 가상환경을 만들기 위해 아래의 명령어를 실행해 주자.

python -m venv 가상환경이름

가상환경 이름은 보통 venv로 많이 하기 때문에 필자는 venv로 하지만, 원하는 가상환경 이름으로 해도 전혀 무방하니 참고하자. 
 

가상환경을 만드는 명령어를 실행하는 이미지입니다.
VSCode에서 가상환경 만들기

 

가상환경을 생성하고 나면 venv 폴더가 생겼음을 보여주는 이미지입니다.
가상환경 생성 전과 후의 차이

 
가상환경을 생성했다면 위의 이미지처럼 전에는 없던 venv 폴더(본인이 정한 가상환경의 이름으로 폴더가 생성)가 생성되었음을 확인할 수 있다. 가상환경을 설치했으니 이제 가상환경을 한 번 실행해 보자. 가상환경을 실행하는 명령어는 아래와 같다.

.\venv\Scripts\activate

만약 필자와 같이 가상환경의 이름을 venv로 했다면 위의 명령어를 그대로 복사해 가 사용할 수 있지만 다른 이름으로 하였다면 위의 명령어에서 venv 부분만 본인이 선택한 이름으로 바꿔주면 된다. 
 
📢 윈도 명령 프롬프트와 파워쉘에서는 Scripts 폴더의 activate를 통해 가상환경을 활성화한다. 
 

가상환경을 실행하는 명령어를 실행하는 이미지입니다.
가상환경 실행

 
가상환경이 실행이 되었다면 위의 이미지에서 처럼 스크립트 앞에 (venv)가 생겼음을 확인할 수 있다. 이는 현재 위치가 가상환경에 접속해 있다는 의미이니, 위와 같이 (venv)가 보인다면 가상환경이 정상적으로 실행된 것이다. 
 
 

라이브러리 업그레이드 및 장고 설치


먼저 아래의 명령어를 입력하여 pip 라이브러리를 최신 버전으로 업그레이드해 주자.

python.exe -m pip install --upgrade pip
pip 라이브러리를 최신버전으로 업그레이드 하는 이미지입니다.
pip 최신 버전으로 업그레이드

 
이제 장고를 설치해 보자, 해당 프로젝트에서 장고는 4.1 버전을 사용할 것이니, 아래의 명령어를 실행해 주자. 

python.exe -m pip install "django~=4.1.0"

위의 명령어에서 ~= 의 기호는 tilde range를 나타낸다. 이 표기법은 버전 범위를 정하는 데 사용되는데, 위의 명령어처럼 ~= 4.1.0 같은 경우 4.1.0 버전을 포함하고, 그 이상의 마이너 버전은 모두 허용되지만 5.0.0 버전 이상은 허용되지 않는다는 의미 한다. 구체적으로 말하면, ~= 4.1.0은 4.1.0 이상이면서 5.0.0 미만의 모든 버전을 포함한다. 예를 들어, 4.1.0, 4.1.1, 4.2.0 등은 허용되지만 5.0.0, 5.1.0 등은 허용되지 않는다. 
 
이 표기법은 보통 프로젝트가 새로운 기능을 추가하지 않는 마이너 업데이트에 대해 안정적으로 사용될 수 있는 경우에 유용하다. 

장고 4.1 버전을 설치하는 이미지입니다.
Django 4.1 버전 설치

 
위의 이미지처럼 맨 아래 Successfully installed 메시지가 출력되었다면 성공적으로 설치가 완료된 것이다. 마지막 줄 메시지에서 django 4.1.13 버전이 설치된 걸 확인할 수 있다.
 

장고 프로젝트 


장고가 정상적으로 설치가 되었다면 이제 장고 프로젝트를 한 번 만들어볼 차례이다. 아래의 명령어를 통해 장고 프로젝트를 생성하자.

python.exe -m django startproject mysite .

위의 명령어에서 마지막 '.'의 의미는 프로젝트를 현재 디렉터리에 생성하라는 의미이다. 따라서 위의 명령어를 실행하면 새로운 프로젝트를 생성하고, 생성된 프로젝트의 모든 파일과 폴더를 현재 디렉터리에 넣는다. 
 

프로젝트 생성 후 변경된 디렉터리 구조에 대한 이미지입니다.
프로젝트 생성 후 mysite 확인

 
프로젝트가 정상적으로 생성되었으니 migrate 명령으로 sqlite 데이터베이스 스키마를 아래의 명령어로 생성하자.

python .\manage.py migrate

데이터베이스와 마이그레이션을 실행하는 명령어이다. 여러 Django 앱에서 정의된 데이터 모델을 데이터베이스 스키마로 변환하고, 필요한 데이터베이스 테이블을 생성 또는 갱신한다.

migrate 명령 실행하는 이미지입니다.
migrate 명령 실행

 
그다음, 해당 프로젝트의 핵심인 4.0 버전의 channels[daphne] 라이브러리를 설치하자.

python.exe -m pip install "channels[daphne]~=4.0.0"

 

channels 라이브러리를 설치하기 위해 명령어를 실행한 콘솔 화면입니다.
channels 라이브러리 설치

 
이제 채널스와 다푸네 앱 활성화를 위해 장고 프로젝트의 settings.py에서 Installed Apps List에 해당 앱들을 등록해줘야 한다. 그리고 ASGI_APPLICATION 설정 또한 해줘야 한다. 아래의 이미지를 참고하자.

Installed Apps List에 앱을 추가하는 이미지
Installed Apps List에 앱 추가

 
그 후, mysite 프로젝트 아래에 있는 asgi.py 파일 편집을 통해, 클라이언트로부터의 요청을 채널스에서 먼저 받고 http 요청은 장고를 통해서 처리해 보도록 하자.

"""
ASGI config for mysite project.

It exposes the ASGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/4.1/howto/deployment/asgi/
"""

import os

from channels.routing import ProtocolTypeRouter
from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')

# 변수는 default로 application으로 되있겠지만 django_asgi_app로 변경
django_asgi_app = get_asgi_application() 

application = ProtocolTypeRouter({
    "http" : django_asgi_app, 
})

 
이제 장고 개발서버를 구동하여 ASGI/daphne를 통해, 개발서버가 구동되고 있는지 확인해 보자.

python.exe .\manage.py runserver

위의 명령어를 실행하면 Django 애플리케이션의 설정에 따라 개발 서버가 시작된다. 기본 적으로 서버는 http://127.0.0.1:8000/ 주소에서 실행되며, 이 주소로 브라우저를 열면 Django 애플리케이션을 확인할 수 있다. 

장고 서버를 실행하는 이미지입니다.
Django 서버 실행

 
이번 시간은 장고 프로젝트를 생성하고 필요한 라이브러리들을 설치하고 asgi.py의 설정을 변경해 주었다. 다음 시간에 이어서 포스팅을 하도록 하겠다.

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.