[Pay-Python] Django 개발환경을 준비해보자

da__ell·2023년 4월 17일
0

Pay-Python

목록 보기
1/1

원격 레포를 로컬에 설치하자

깃허브 공식 문서를 확인하면 다음과 같이 원격 레포지토리를 복사하는 방법이 나와있다.

git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY

Cloning a repository - GitHub Docs


가상환경을 준비해보자

왜 가상환경이 필요한가?

한 프로젝트에서 쓰는 패키지는 다양하고 서로 다른 프로젝트에서 요구하는 패키지의 종류나 버진이 다를 수 있다.
여러가지 프로젝트들을 한 개의 컴퓨터에서 진행할 때 서로 다른 패키지가 충돌을 일으키는 문제 없이 관리하기 위해서는 각 프로젝트마다 가상환경을 만들고 그 안에 필요한 패키지를 설치해주어야 한다.

어떻게 가상환경을 구성할까?

파이썬의 라이브러리에 vnev와 virtualev가 있다.

venv는 파이썬 표준 라이브러리이기 때문에 별도로 설치할 필요가 없다.

virtualvenv는 외부 라이브러리이기 때문에 별도로 설치하여야 한다.

virtualvenv와 venv 비교

virtualvenv 공식 문서에서는 다음과 같이 설명한다.

  1. 기능 - venv는 virtualvev의 일부분을 가져가서 만든 모듈이다. venv는 virtualvenv의 모든 기능을 다 포함하고 있지 않다.
  2. 속도 - venv는 virtualven보다 느리다 (app-data seed method가 없기 때문이라고 한다.)
  3. 확장성 - virtualvenv가 더 좋다
  4. virtualvenv는 가상환경을 버전별로 임의로 만들 수 있다.
  5. pip를 통해서 업그레이드 할 수 없다.

virtualenv

나는 venv를 선택했다.

이유는 기본적으로 파이썬 3.3버전 이상부터는 표준 라이브러리에 내장되어 있고, 가상 환경을 관리하는 데 있어 기본적으로 virtualvenv와 같은 기능을 가진다.

나는 django를 활용하여 mvt 패턴의 Rest API를 구현하는 것에 중점을 두었기 때문에 가상환경을 관리하는데 더 투자할 필요가 없다고 판단하였다. 따라서 별도의 설치 과정없는 venv를 선택하였다.

가상 환경 사용해보기

나의 프로젝트의 루트 디렉토리에서 다음 명령어를 입력하여 가상환경을 만들었다.

python3 -m venv {가상환경 폴더 명} // 대개 .venv를 사용한다

terminal에서 다음 명령어를 통해 가상환경에 진입할 수 있다.

source .venv/bin/activate

진입한 가상환경에서 벗어나려면 다음 명령어를 입력하면 된다.

deactivate

gitignore로 가상환경을 제외하고 깃허브 커밋하기

아래 페이지에 제외하려는 라이브러리를 입력하면 소스코드를 출력해준다. 그리고 .gitignore를 만들어서 복붙하면 된다.

[VSCODE] gitignore로 가상환경 제외하고 깃허브 커밋하기 (python, django, venv)

gitignore.io


Django를 쓸까 FastAPI를 쓸까?

장고는 2005년에 등장하여 10년 이상의 세월을 감내한 베테랑 웹 프레임워크이다. 그동안 정말 무수히 많은 기능이 추가되고 또 다듬어졌다.

장고에는 필요로 하는 웹 프로그램 개발을 위한 도구와 기능이 대부분 준비되어 있다.

빠른 시간 안에 API를 구현하는 것이 목적이었기 때문에 레퍼런스가 더 많은 이유라고 할 수 있을 것이다.

Django를 선택한 이유

Django vs. FastAPI - a detailed comparison | Sunscrapers

1-01 필자가 생각하는 장고란?

웹개발 추천 스택 및 비교 (Django, Bootstrap, FastAPI, React)


Django 개발환경을 준비해보자

Django란 무엇일까?

Django란 보안이 우수하고 유지보수가 편리한 웹사이트를 신속하게 개발하는 하도록 도움을 주는 파이썬 웹 프레임워크다. 웹 개발을 하는데 많은 도움을 주기 때문에 새롭게 웹 개발을 시작할 필요없이 그저 프레임워크를 활용하여 앱 개발에만 집중할 수 있다. 무료 오픈소스인데다가, 활발한 커뮤니티들이 있고, 좋은 참고자료와 무료 및 유료 지원을 하는 옵션들이 제공된다.

Django 소개 - Web 개발 학습하기 | MDN

Django에서는 어플리케이션의 개념을 웹 서버 개발 측면에서 보다 구체화 한다.
웹 사이트에 대한 전체 프로그램을 프로젝트로 정의하고, 모듈화된 단위 프로그램을 애플리케이션으로 정의한다.

Django 웹 어플리케이션은 어떻게 구성되어 있을까?

Django는 기본적으로 MVT패턴에 따라 애플리케이션을 개발하도록 유도한다.

MVT 패턴이란?

mvc 패턴이라고도 불린다. 데이터(Model), 사용자(View), 데이터 처리 로직(Controller)를 구분해서 서로 다른 요소 간에 영향을 주지 않도록 설계하는 방식이다. python에서는 이러한 개념을 mvt라고 표현할 뿐이다.

Model

DB에 저장되는 데이터를 의미한다. DB의 데이터를 다루기 위해서 SQL이라는 언어를 알아야 하지만. Django를 활용하면 DB작업을 가능하게 해주는 ORM을 제공한다. 이를 통해 SQL query없이 DB를 다룰 수 있게 된다.ㅇ

View

웹요청을 받고 프로그램 로직에 따라 데이터를 처리하고 처리된 결과를 template에 전달한다.

Template

사용자에게 보여주는 UI부분이다. 이를 통해 보여지는 부분을 만드는 사람은 그 부분에만 집중하여 만들 수 있게 된다.

URLconf

View와 template을 이어주는 역할을 하고 이 부분을 설계하는 작업을 의미한다.

이렇게 각 요소에 따라 분리함으로써 작업에 따라 어떤 부분을 수정해야할지 명확하게 구분할 수 있게 된다.

데이터 저장과 관련된 부분을 작업할 때는 Model 부분을 수정한다.

유저에게 보여지는 부분을 작업할 때는 Template 부분을 수정한다.

데이터를 처리하는 비즈니스 로직을 작업할 때는 View 부분을 수정한다.

라고 정리할 수 있다.

Django에서 MVT 패턴에 따라 요청을 어떻게 처리할까?

  1. Client에서 요청이 들어오면 URL conf를 사용해서 URL을 분석한다.
  2. URL 분석 결과에 따라 URL에 대한 처리를 담당할 View를 결정한다.
  3. View는 로직을 실행하면서 DB 처리가 필요하면 Model을 통해 DB에서 데이터를 처리하고 그 결과를 반환받는다.
  4. View는 로직 처리가 끝나면 Template을 사용해서 Client에 전송할 HTML 파일을 생성한다.
  5. View는 최종적으로 HTML 파일을 Client에 보내 응답한다.

가상환경에 Django를 설치해보자

Python은 외부의 프레임워크나 패키지(라이브러리)를 설치하기 위해서 pip를 활용한다.

가상환경에서 다음과 같은 명령어를 통해 django를 설치할 수 있다.

pip install django

이후 pip list 명령어를 통해 django가 설치된 것을 확인할 수 있다.

❯ pip list
Package            Version
------------------ -------
asgiref            3.6.0
backports.zoneinfo 0.2.1
Django             4.1.7
pip                23.0.1
setuptools         49.2.1
sqlparse           0.4.3

Django

profile
daelkdev@gmail.com

0개의 댓글