깃허브 공식 문서를 확인하면 다음과 같이 원격 레포지토리를 복사하는 방법이 나와있다.
git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
Cloning a repository - GitHub Docs
한 프로젝트에서 쓰는 패키지는 다양하고 서로 다른 프로젝트에서 요구하는 패키지의 종류나 버진이 다를 수 있다.
여러가지 프로젝트들을 한 개의 컴퓨터에서 진행할 때 서로 다른 패키지가 충돌을 일으키는 문제 없이 관리하기 위해서는 각 프로젝트마다 가상환경을 만들고 그 안에 필요한 패키지를 설치해주어야 한다.
파이썬의 라이브러리에 vnev와 virtualev가 있다.
venv는 파이썬 표준 라이브러리이기 때문에 별도로 설치할 필요가 없다.
virtualvenv는 외부 라이브러리이기 때문에 별도로 설치하여야 한다.
virtualvenv 공식 문서에서는 다음과 같이 설명한다.
이유는 기본적으로 파이썬 3.3버전 이상부터는 표준 라이브러리에 내장되어 있고, 가상 환경을 관리하는 데 있어 기본적으로 virtualvenv와 같은 기능을 가진다.
나는 django를 활용하여 mvt 패턴의 Rest API를 구현하는 것에 중점을 두었기 때문에 가상환경을 관리하는데 더 투자할 필요가 없다고 판단하였다. 따라서 별도의 설치 과정없는 venv를 선택하였다.
나의 프로젝트의 루트 디렉토리에서 다음 명령어를 입력하여 가상환경을 만들었다.
python3 -m venv {가상환경 폴더 명} // 대개 .venv를 사용한다
terminal에서 다음 명령어를 통해 가상환경에 진입할 수 있다.
source .venv/bin/activate
진입한 가상환경에서 벗어나려면 다음 명령어를 입력하면 된다.
deactivate
아래 페이지에 제외하려는 라이브러리를 입력하면 소스코드를 출력해준다. 그리고 .gitignore를 만들어서 복붙하면 된다.
[VSCODE] gitignore로 가상환경 제외하고 깃허브 커밋하기 (python, django, venv)
장고는 2005년에 등장하여 10년 이상의 세월을 감내한 베테랑 웹 프레임워크이다. 그동안 정말 무수히 많은 기능이 추가되고 또 다듬어졌다.
장고에는 필요로 하는 웹 프로그램 개발을 위한 도구와 기능이 대부분 준비되어 있다.
빠른 시간 안에 API를 구현하는 것이 목적이었기 때문에 레퍼런스가 더 많은 이유라고 할 수 있을 것이다.
Django vs. FastAPI - a detailed comparison | Sunscrapers
웹개발 추천 스택 및 비교 (Django, Bootstrap, FastAPI, React)
Django란 보안이 우수하고 유지보수가 편리한 웹사이트를 신속하게 개발하는 하도록 도움을 주는 파이썬 웹 프레임워크다. 웹 개발을 하는데 많은 도움을 주기 때문에 새롭게 웹 개발을 시작할 필요없이 그저 프레임워크를 활용하여 앱 개발에만 집중할 수 있다. 무료 오픈소스인데다가, 활발한 커뮤니티들이 있고, 좋은 참고자료와 무료 및 유료 지원을 하는 옵션들이 제공된다.
Django에서는 어플리케이션의 개념을 웹 서버 개발 측면에서 보다 구체화 한다.
웹 사이트에 대한 전체 프로그램을 프로젝트로 정의하고, 모듈화된 단위 프로그램을 애플리케이션으로 정의한다.
Django는 기본적으로 MVT패턴에 따라 애플리케이션을 개발하도록 유도한다.
mvc 패턴이라고도 불린다. 데이터(Model), 사용자(View), 데이터 처리 로직(Controller)를 구분해서 서로 다른 요소 간에 영향을 주지 않도록 설계하는 방식이다. python에서는 이러한 개념을 mvt라고 표현할 뿐이다.
DB에 저장되는 데이터를 의미한다. DB의 데이터를 다루기 위해서 SQL이라는 언어를 알아야 하지만. Django를 활용하면 DB작업을 가능하게 해주는 ORM을 제공한다. 이를 통해 SQL query없이 DB를 다룰 수 있게 된다.ㅇ
웹요청을 받고 프로그램 로직에 따라 데이터를 처리하고 처리된 결과를 template에 전달한다.
사용자에게 보여주는 UI부분이다. 이를 통해 보여지는 부분을 만드는 사람은 그 부분에만 집중하여 만들 수 있게 된다.
View와 template을 이어주는 역할을 하고 이 부분을 설계하는 작업을 의미한다.
이렇게 각 요소에 따라 분리함으로써 작업에 따라 어떤 부분을 수정해야할지 명확하게 구분할 수 있게 된다.
데이터 저장과 관련된 부분을 작업할 때는 Model 부분을 수정한다.
유저에게 보여지는 부분을 작업할 때는 Template 부분을 수정한다.
데이터를 처리하는 비즈니스 로직을 작업할 때는 View 부분을 수정한다.
라고 정리할 수 있다.
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