가상환경을 사용하는 이유
Django 프로젝트 생성 루틴
1. 가상환경 생성
2. 가상환경 활성화
3. django 설치
4. 의존성 파일 생성 (패키지 설치시마다 진행)
5. git ignore 설정(이미 있으면 생략)
6. git init
7. firstpjt라는 이름의 장고 프로젝트 생성
8. 서버 실행
9. 로켓 페이지 볼 수 있음
10. 서버 종료
✅ 1. 가상환경(venv) 생성 (window 버전)
cd projects
1) git bash를 켜거나
2) vscode를 켠다.
python -m venv [가상환경 이름]
python -m venv venv
✅ 2. 가상환경 활성화
- 가상환경 안으로 들어온 개념이 아니라 on/off 개념이다.
- cd .. 이런거 필요없음. 어느 위치에서나 가상환경 스위치 on/off 가능.
$ source [가상환경이름]/Scripts/activate
$ source venv/Scripts/activate
$ source [가상환경이름]/Scripts/activate.bat
$ source [가상환경이름]\Scripts\Activate.ps1
$ source [가상환경이름]/bin/activate
$ pip list
⭐ vscode에서 가상환경을 켜는 방법
- vscode에서 현재 사용중인 python환경(혹은 가상환경)을 알 수 있도록 설정하기
- macOS는 ctrl을 command로 대체
- 가상환경 폴더가 있는 곳에서 마우스 우측 버튼
→ Code(으)로 열기
ctrl + shift + p => interpreter


- 어떤 환경을 선택해야할 지 별표시로 추천해준다. 별표가 안되어있는 것은 글로벌 환경이니 별도의 개발환경에서 개발하려면 별표를 클릭해준다.

✅ 3. 장고 설치
pip install django==3.2.18
- pip install django 이렇게만 하면 가장 최신꺼가 다운되기 때문에 3.2까지 붙혀야한다.
- 가상환경마다 새롭게 장고를 설치해 줘야한다.
- pip list해보면 장고 설치 이전보다 4개의 파일이 새롭게 열렸다.
4개의 파일들이 장고와 얽혀있다는 뜻. 그래서 글로벌 환경에서 개발을 하면 문제가 발생하므로 가상환경을 만들어야하는 것이 그 이유다.
- 설치 후 용량도 2배 늘었다.(시간지날 수록 용량이 매우 커지게 될것) 30 MB -> 60 MB
- 그래서 페어 프로그래밍 할 때 파일 자체를 옮겨주는 것이 아니라 기록지를 건내주고, 그 방식대로 다운로드 한다.
✅ 4. 의존성 파일 생성
pip freeze
- 현재 환경에 설치된 패키지 목록을 requirements 포맷으로 출력
- 패키지는 대소문자를 구별하지 않는 정렬 형식으로 나열 됨 (case-insensitive sorted order)
requirements.txt 파일 생성
pip freeze > requirements.txt
- requirements.txt 기록지에 있는 내용을 가지고 자동으로 패키지를 설치해줌으로써
해당 프로젝트가 어떤 버전의 패키지를 썼는지 기억하지 않아도 개발환경을 설정 할 수 있음
- github에서 프로젝트를 받게되는 사람도 해당 파일이 있으면 가상환경 설정 후 바로 설치가 가능
- python 버전은 README에 별도로 명시하는 것이 좋음
- 다른 새로운 팀원이 조인했을 때, venv 파일을 주는 게 아니라 뭐뭐가 설치되어있는지 적혀있는 txt 기록지를 넘겨주게 된다.
pip freeze >
이 출력을 어디에 넣을 거야? requirements.txt에!
의존성목록이라고 부른다. 다른 이름으로 바꾸지 않고 이 이름은 venv와 같이 암묵적 룰이다.
📌usage
requirements.txt를 사용한 패키지 목록 설치 방법
$ pip install -r requirements.txt
✅ 5. .gitignore 파일 생성 (git 관련 설정 시 진행)
https://www.toptal.com/developers/gitignore/
- .gitignore 파일은 첫 git add . 전에 만들어준다.
- venv 가상환경은 .gitignore에 담는다.
- 사용하고 있는 운영체제, 개발환경, 프로그래밍 언어, 프레임워크에 맞게 .gitignore 파일을 만들어준다.

- 전체 드래그한 내용을 vscode의 .gitignore 파일에 복붙 해준다.


✅ 6. git init
- git 초기화 한 후에 원격저장소 push 한다.
git init
- git status해서 첫 commit해야할 파일들을 보면 venv 파일이 안보인다.
git status

git add .
git commit -m 'first commit'
페어프로그래밍을 할 때 이렇게 push된 내용을 다른 팀원이 clone 받아서 쓰면 된다. 그 팀원은 venv 폴더가 없는 파일들을 받게 되고 이에 대한 정보는requirements.txt 기록지 참고해서 다운로드 받으면 된다.
✅ 7. firstpjt라는 이름의 Django 프로젝트 생성
django-admin startproject firstpjt .
⭐ 점 붙혀야한다.
✅ 8. Django 서버 켜기 (ON)
python manage.py runserver
- client가 요청한 부분에 응답을 주기 위해서는 서버가 ON되어있어야한다.
- runserver 명령어는 manage.py 파일이 있는 경로에서 실행을 해줘야한다.
- runserver : server를 on 해주는 명령어
- manage.py는 runserver(명령어)를 실행시켜주는 파일

✅ 9. 로켓페이지 볼 수 있음


10. 서버 종료
ctrl + c
👩💻페어 입장
1. git push 된 파일들을 clone 받기
git clone <github주소>
2. clone된 폴더에 가상환경(venv)이 없기 때문에 만들어야 한다.
python -m venv venv

3. Server ON하기
프로젝트 폴더가 있는 경로로 들어가서 server on하는 명령어를 타이핑해준다.
source venv/Scripts/activate
- requirements.txt 기록지에 있는 내용 다운받기
pip install -r requirements.txt
⭐ 중요
-
페어 프로그래밍 할 때 중요한 것은 가상환경 파일을 공유하는 것이 아니라, 페어 파트너는 가상환경을 새롭게 만들고, 기록지를 다운받으면 서로 같은 상태의 환경에서 개발할 수 있다.
-
새로운 패키지를 설치할 때 마다 pip freeze > requirements.txt로 업데이트 해준다.
-
개발하기
-
git branch (공부 더 필요)❗
git checkout main
git branch -d accounts_follow
git branch
