프로젝트 폴더 생성
$ mkdir redhorse
$ cd redhorse
가상환경 생성 및 활성화
$ virtualenv venv
$ . venv/bin/activate
이 프로젝트에서는 가상환경을 virtualenv로 사용하였습니다. 패키지 의존성 + 가상환경까지 관리 및 셋팅할 수 있는 pipenv 또는 poetry 사용을 고민했으나 virtualenv만 익숙하신 분들도 있기 때문에 virtualenv만을 사용하였습니다.
Django 설치 및 프로젝트 생성
$ pip install django
$ django-admin startproject redhorse .
django-extensions 설치
$ pip install django-extensions
저는 두 가지를 목적으로 사용하였습니다.
1. 스크립트 파일 실행 용도
- 사전에 필요한 Profile의 옵션값(취미 리스트, MBTI 리스트)들을 OptionCode 테이블에 넣어주는 스크립트, 즉 프로젝트 운영을 위한 기본 데이터를 넣어주는 스크립트 실행
- 테스트를 위한 가짜 데이터들을 넣어주는 스크립트
위 두 가지 스크립트를 실행시켜줄 때 runscript 명령어를 사용하여 사용합니다.
$ python manage.py runscript 파일명.py
2. 파이썬 쉘 실행
장고에서 기본으로 사용하는 'python manage.py shell' 쉘 실행은 환경변수 셋팅만 해주고 나머지 필요한 부분은 직접 import 해주어야합니다. 특히 쉘 실행을 종료했다가 다시 실행하면 처음 상태로 초기화되기 때문에 또다시 import를 해줘야합니다. 그러나 shell_plus 명령어를 이용하면 프로젝트에 있는 기본 모델들 및 모델 관련 쿼리 라이브러리 등을 자동으로 import 해줘서 너무 편해서 좋은 것 같습니다.
$ python manage.py shell_plus
settings 파일 변경
생성된 순수 django 프로젝트에서 약간 변형을 주었습니다. 배포 환경에 따라 셋팅 값을 달리줘야하니 저는 settings 폴더를 만들어주고 그 안에 base, local, dev, prod를 만들었습니다.
base는 공통적으로 적용되는 셋팅값(ex: BASE_DIR)을 넣어주고 local, dev, prod에는 각자 개별적으로 적용되는 셋팅값(대표적으로 DB 설정)을 넣어주었습니다.
추가로 Cookiecutter와 같은 패키지를 이용하여 프로젝트를 구성할 수도 있는데 저는 저 settings 구성을 제외하고는 순수 그대로 사용하였습니다.
환경변수 관리 패키지 설치 및 .env 파일 생성
$ pip install django-environ
$ touch .env
기타 설치 파일
Django REST Framework
$ pip install djangorestframework
$ pip install markdown
$ pip install django-filter
Simple JWT (JSON 토큰 로그인)
$ pip install djangorestframework-simplejwt
Pillow (업로드된 프로필 이미지 변환 과정에 사용)
$ pip install Pillow
django-cors-headers (Frontend 연동을 위한 패키지)
$ pip install django-cors-headers
Pusher (실시간 채팅을 위한 Pusher 서비스 패키지)
$ pip install pusher
jsonschema (JSONField 스키마 작업을 위한 패키지)
$ pip install jsonschema
Factory Boy (테스트를 위한 모델 데이터 생성에 도움)
$ pip install factory_boy
'Project > [Project] Red Horse' 카테고리의 다른 글
[Backend] 정리 - 1 (0) | 2023.06.13 |
---|---|
[Backend] env 환경변수 (0) | 2023.06.12 |
[Backend] API 설계 (0) | 2023.06.09 |
[Backend] DB 설계 (4) | 2023.06.08 |
[Backend] 화면 설계 (0) | 2023.06.06 |