Django를 접한 이후로 Django 와 관련된 글을 읽고 여러 실습을 해왔습니다. 그 와중에 Django Rest Framework(DRF)를 알게 되었고, 여러가지 실습을 진행했습니다.
실습을 진행하면서 아쉬웠던 부분은 DRF를 이용한 여러 기능을 설명하는 블로그, 책 등은 있었으나 실제 Project성으로 실시한 것은 없었다는 점입니다. 따라서 저는 영문판 DRF Tutorial인 realworld 를 참고해 한글판 DRF Tutorial Project를 만들고자 합니다.
Project에서 언급되는 부분을 각 블로그 부분에서 설명할 예정이기 때문에 DRF Project 카테고리를 따라오시면서 같이 올라오는 링크를 따라 공부하시면 됩니다.
추후에는 DRF Project에서 진행한 내용과 Front Project에서 진행한 내용을 연결하는 것까지 진행해보도록 하겠습니다. 그럼 첫 번째 "실습환경 구축 및 Project 실행" 을 진행하겠습니다.
Django Rest Framework
실습환경을 위한 설치
먼저 실습환경을 만들기 위해 VScode를 설치하고, 가상환경을 설정해야 합니다. 설치과정은 아래 경로를 따라 설치해주시기 바랍니다. 또 Github로 확인하시기 어려운 부분은 전부 제 blog에 올려놓도록 하겠습니다. 궁금한 부분이 있으시면 그 부분에 댓글을 남겨주시기 바랍니다.
Part.1
이번 파트에서는 Django를 설치하고, Project, App을 생성해보도록 하겠습니다. 추가로 보안상으로 중요한 SecretKey를 분리하는 방법에 대해 공부하도록 하겠습니다.
목차
1. django 설치(django rest framework)
2. Project 생성하기
3. SecretKey 분리하기
4. Project App 만들기(User)
1. Django 설치(django rest framework)
가상환경까지 설치가 끝났다고 생각하고 진행하도록 하겠습니다. 현재 Directory 모양은 다음과 같은 모양이어야 합니다.
- 절차에 따라 가상환경 설정이 끝나면 이제 django를 VScode 가상환경에 설치해주어야 합니다. VScode의 (Terminal)을 열면 Terminal의 상태는 그림2와 같아야 합니다.
- 다음 명령어를 차례대로 입력해주시면 설치가 완료됩니다.
python pip upgrade 명령어 : python -m pip install --upgrade pip
django 및 DRF 설치 명령어 : python -m pip install django djangorestframework
2. Project 생성하기
- 설치가 완료되면 Django의 Project를 만들어보록 하겠습니다.
Project 생성 명령어 : django-admin startproject setting
위 명령어를 입력하면 setting이라는 파일이 생깁니다. 폴더 내부를 살펴보도록 하겠습니다. 그림3을 참고하시면 됩니다.
- 새로 만든 Project의 최상위 폴더 이름은 setting입니다. 그 아래 setting 폴더가 하나 더 있습니다. 처음 project를 생성할 때 최상위 폴더와 내부 처음 생성되는 폴더의 이름은 같은 이름으로 생성됩니다. 처음 Project를 생성할 때 setting으로 설치한 이유가 여기에 있습니다.
나중에 작업을 할 때 폴더 이름이 같으면 경로를 정하거나 여타 작업 시 혼동이 올 수 있습니다. 그래서 둘 중 하나의 폴더 이름을 변경해주어야 하는데, 최상위 폴더인 setting 폴더는 이름 변경이 손쉽게 가능합니다. 하지만 하위 setting 폴더를 변경하려면 폴더 내부의 파일들에서 몇 가지 추가로 변경해야합니다. 변경하지 않으면 Project가 실행되지 않기 때문입니다.
따라서 최상위 폴더의 이름을 원하는 이름으로 바꾸겠습니다. 저는 shop으로 변경하겠습니다. 아래 그림4를 참고하시기 바랍니다.
- 하위 setting 폴더의 구성에 대해서 알아보겠습니다. setting 폴더는 기본적으로 Django의 setting을 위한 폴더입니다. 이곳에서 권한, App 설정, DRF 설정 등을 할 수 있습니다. 파일을 하나씩 확인해보겠습니다.
settings.py: 우리가 앞으로 프로젝트를 진행하면서 가장 많이 수정할 파일입니다. Django의 setting은 모두 이곳에서 한다고 생각하시면 됩니다.
urls.py : 앞으로 생성할 App 등의 url을 연결해주는 파일입니다.
__init__.py, asgi.py, wsgi.py 파일들은 이 Project에서 건드리지 않습니다.
3. SecretKey 분리하기
Django Project를 실행하면, 기본적으로 main 폴더(여기서는 setting 폴더)에 settings.py 파일이 생성됩니다. 그 안에는 SECRET_KEY라는 부분이 있습니다.
SECRET_KEY는 특정 django 설치를 위한 암호키이고, 보안상 고유하고 예측할 수 없는 값으로 설정되어야 합니다. 해당 키를 암호인증 등에 사용하기 때문에 아무도 알 수 없게 관리해야 합니다. 따라서 우리는 SECRET_KEY를 따로 분리해서 json 파일로 관리하도록 하도록 하겠습니다.
SECRET_KEY를 분리하는 과정은 제 블로그에 이미 정리되어 있습니다. 아래 주소를 참고하시기 바랍니다.
만약 본인이 해당 Project를 github에서 관리하고 싶으시면 제 글로그에서 github 사용법과 .gitignore 파일 사용법에 대해 읽어보시기 바랍니다.
아직 많이 부족한 글입니다. github 사용법과 .gitignore를 사용해 project를 관리하는 방법은 다른 blog에도 많이 나와있습니다. 참고해서 사용하시면 됩니다. 이 부분은 django, drf와는 무관한 부분이기 때문에 그냥 진행하실 분들은 그냥 진행하셔도 문제가 되지 않습니다.
위의 과정이 끝나면, 장고를 실행해 제대로 작동하고 있는지 확인해보도록 하겠습니다.
python manage.py makemigrations
python manage.py migrate
방금 사용한 명령어 migrtaions는 model에 작성된 내용(필드의 추가, 삭제, 수정 등)을 Database에 반영시키는 명령어 입니다. 만약 위의 과정을 거치지 않고 장고를 실행하게 되면 database와 관련된 파일인 models.py 파일의 변경사항이 Database에 반영되지 않아 원하는 작업을 수행하지 못할 수도 있습니다.
지금까지 만든 장고가 실행되는지 확인해보도록 하겠습니다. 성공적으로 실행이 되면 아래 그림7과 그림8의 화면을 확인할 수 있습니다.
python manage.py runserver
실행을 중지하고 터미널로 돌아올 때는 터미널에 커서를 두고 ctrl + c 를 누르시면 됩니다.
4. Project App 만들기(authentication)
이번 파트에서는 앞으로 사용할 App을 만들어보도록 하겠습니다. 이 App에는 자신의 model, view, serializer, url 등을 독자적으로 가지고 있습니다. App은 특정한 기능을 수행하는 웹 어플리케이션을 말합니다. Project는 이런 App들과 설정을 모아둔 패키지를 말합니다.
터미널에 다음과 같은 명령어를 작성해주겠습니다.
django-admin startapp authentication
startapp은 App을 생성하는 명령어 입니다.
authentication부분은 App 이름으로 자유롭게 작성하셔도 됩니다. 다만 초기에 작성한 app의 이름은 추후에 변경하려면 다소 귀찮기 때문에 처음 만드실 때 기능을 고려해서 만드시는 것을 추천합니다.
정리
위의 과정을 성공적으로 따라오셨다면 아래와 같은 형태의 폴더 구성을 확인하실 수 있습니다. 여기서 .gitignore 파일과 requirements.txt, secrets.json은 git을 사용하지 않거나 SecretKey를 분리하지 않은 경우 없을 수 있습니다.
requirements.txt 파일은 pip install 명령어를 통해서 설치한 package를 보여줍니다. 추후에 이 파일을 통해 다른 환경에서 django를 실행할 때 같은 버전의 package들을 설치할 수 있습니다.
requirements.txt 파일을 만드는 방법: pip freeze > requirements.txt
다음 과정에서는 authentication App에 User 모델을 만들고, 새로운 User를 등록하는 과정을 실습해보도록 하겠습니다.
'BackEnd > DRF Project' 카테고리의 다른 글
[# DRF Project] Postman 사용 방법 - 2 (0) | 2021.12.30 |
---|---|
[# DRF Project] Postman 사용 방법 - 1 (2) | 2021.12.27 |
[# DRF Project_User] 2. Custom User model(커스텀 User) (2) | 2021.12.22 |
[# Django Project ] VScode 장고 실행(Django 가상환경:venv) (7) | 2021.08.23 |
[# Django Project ] VScode Python 설치 (0) | 2021.08.23 |