[Django] Node.js 개발자를 위한 Django REST Framework 급하게 배워보기 - 1

2023. 2. 22. 22:00나는 이렇게 학습한다/Framework

갑자기 웬 DRF?

이번 학기에 대학교 개인 프로젝트에서 공공데이터포털의 부동산 데이터를 이용할 일이 생겨서 어떤 식으로 데이터를 처리하고 가공할지 고민하다가 파이썬을 사용하기로 마음 먹었다. 자바스크립트에 Node.js가 있다면, 파이썬에는 DRF(Django REST Framework)가 있었다. DRF는 Django 안에서 RESTful API 서버를 쉽게 구축할 수 있도록 도와주는 오픈소스 라이브러리(프레임워크)이다. 이 포스팅에서는 Node.js 개발자 입장에서 이해하기 쉽게 서술하겠다.

개발 환경 준비

따로 Python을 설치하는 과정은 넣지 않았습니다.
macOS 환경을 기준으로 설명합니다.

1. 가상 환경 생성하기

'엥? 무슨 프로젝트를 하나 만드는데 가상 환경이 필요해?' 라고 생각할 수도 있다. 나도 그랬으니..

파이썬에서 외부 패키지를 설치할 때는 일반적으로 'pip' 이라는 패키지 매니저를 사용하는데, 기본적으로 운영체제에서 파이썬이 설치된 위치의 'site-packages' 디렉터리 안에 설치된다.

노드의 npm과 같은 패키지 매니저가 프로젝트 별 패키지 설치를 지원하는 반면에, 아직 파이썬은 시스템 전역으로만 패키지를 설치할 수 있다 (...)

그래서, 파이썬의 가상 환경을 이용해서 프로젝트 별로 따로 패키지를 설치하기 위해서 가상 환경을 생성한다.

 

가상 환경을 구성할 프로젝트 디렉터리에 들어가서 아래와 같이 커맨드를 날리면 .venv 라는 디렉터리가 생긴다.

여기서 반드시 디렉터리 이름을 .venv로 할 필요는 없지만, 대부분의 파이썬 프로젝트들이 따르는 관행이라고 하니 지켜주는게 좋다.

$ cd <프로젝트 디렉터리>
$ python -m venv .venv
$ ls
.venv

가상 환경은 굳이 Git과 같은 소스 버전 관리 시스템에 올릴 필요가 없기에 .gitignore 파일에 추가해준다.

echo '.venv' >> .gitignore

다 됐으면 가상 환경을 실행해준다.

# macOS
source .venv/bin/activate

# window
. .venv/Scripts/activate

그러면 cmd 라인 맨 왼쪽에 (가상환경이름)이 붙어 있는 걸 볼 수 있는데, 활성화 되었다는 뜻이다.

which 커맨드를 통해 어떤 파이썬 인터프리터가 사용되는지 확인할 수도 있다.

venv 디렉터리 안에 있는 bin/python이 운영체제에 기본 설치된 파이썬 대신에 사용됨을 알 수 있다.

(.venv) $ which python
/Users/dongho/Desktop/Github/my-project/.venv/bin/python

혹시라도 가상 환경을 빠져나오고 싶다면 'deactivate'를 입력해주면 된다.

(.venv) $ deactivate
which python
/usr/local/bin/python3

2. Django와 Django Rest Framework 설치하기

pip install django
pip install djangorestframework

3. Django 프로젝트 생성하기

django-admin startproject my-project

4. app 생성하기

다음으로는 프로젝트의 구성단위인 app을 만들어준다.

app은 보통 manage.py 파일이 존재하는 경로에 만들어주는 것이 일반적이다.

python manage.py startapp project

5. 생성한 app 등록하기

settings.py를 통해 이전에 등록한 app의 존재를 project에게 알려준다.

이전에 설치한 DjangoRestFramework 명령어를 통해 설치한 rest_framework도 함께 추가해준다.

INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    'rest_framework',
    'project',
]

6. 마이그레이션

마이그레이션을 통해 Django 프로젝트의 기본 테이블을 생성한다.

마이그레이션은 model을 생성, 혹은 수정 시에 계속 수행해주어야 한다.

python manage.py migrate

7. 웹 서버 실행하기

manage.py 파일이 존재하는 경로에서 아래의 명령어를 입력하여 Django 서버를 실행시켜 줍니다.

python manage.py runserver

서버를 실행하고 브라우저에 '127.0.0.1:8000' 로 접속하면,

아래의 사진과 같이 초기 페이지 화면이 나오는걸 확인할 수 있다.

 

이제 Django REST Framework를 개발하기 위한 기본적인 세팅이 완료되었다.

다음번에는 실제로 백엔드 API 서버를 구현해보도록 하겠다.

초기 페이지

Reference

[D.R.F] Django REST Framework 시작하기

Node.js 개발자를 위한 Python 급하게 배워보기 - (1/3)

파이썬 가상환경 venv 사용하기

파이썬 venv로 가상 환경 사용하기

반응형