한 걸음씩
[Django] Understanding Django and framework 본문
1. Framework
- 웹 애플리케이션을 빠르게 개발할 수 있도록 도와주는 도구
- 개발에 필요한 기본 구조, 규칙, 라이브러리 등을 제공
- 기본적인 구조와 규칙을 제공하기 떄문에 필수적인 개발에만 집중 할 수 있음(개발 속도 ↑)
- 유지보수와 확장에 용이해 소프트웨어의 품질을 높임
2. django
- python 기반의 대표적인 웹 프레임워크
3. client and server
- Client : 서비스를 요청하는 주체(웹 사용자의 인터넷이 연결된 장치, 웹 브라우저)
- Server : 클라이언트 요청에 응답하는 주체(웹 페이지, 앱을 저장하는 컴퓨터)
4. django 프로젝트 및 가상환경
► django 프로젝트 생성 전 루틴
1. 가상환경 생성(바탕화면에서 폴더 생성 후 터미널 실행) : python -m venv venv(폴더 속에 venv라는 폴더 생성됨)
- 아래의 vs code 실행 방법대로 실행 후 pip list로 가상환경(venv)인지 확인
- git clone했다면 가상환경을 만들어야하는데 requirements.txt 파일 내용 설치 필요하기 때문에 pip install - r requirements.txt 명령어를 통해 설치하고 pip list 명령어를 통해 확인하기
2. 가상환경 활성화(mac)(터미널 사용시에만) : source venv/bin/activate (파이썬 처음 설치한 그 상태로 남아있음, 글로벌과 가상의 차이)
비활성화 : deactivate
3. django 설치 : pip install django==3.2.18
💡django 설치 전 vscode 가상환경 확인하기 : ctrl+shift+p → select interpreter → python 3.9.13('venv': venv) 클릭
4. 의존성 파일 생성(패키지 설치시마다 진행) : pip freeze > requirements.txt
- venv파일을 .gitignore파일에 add할 것!!
- git init(git 초기화)
► git관련 설정
- https://www.toptal.com/developers/gitignore/
- 위의 페이지 접속 후 다음 이미지와 같이 입력해서 gitignore에 넣어야할 내용들을 저장하기
: git add . → git commit -m '메시지' → git push하면 github에 업로드
: pair가 git clone을 통해 파일을 pull하면 venv파일이 없는 상태로 pull이 되는데
본인의 가상환경을 만들어야함 (프로젝트 전 생성 루틴 1번 다음으로 설명)
► django 프로젝트 생성 후 루틴
- django 프로젝트 생성 : django-admin startproject firstpjt . (firstpjt라는 이름의 프로젝트를 현재위치(.)에 생성)
- django 서버 실행 : python manage.py runserver (manage.py와 동일한 경로에서 명령어 진행)
- 로켓 페이지 확인하기
► vs code에서 실행 방법
- cmd + shift + p → python : select interpreter 선택 후 enter → python 버전 (venv:venv) enter하면 생성해 둔 가상환경으로 바꿔짐(터미널에서 가상환경인지 확인)
► 가상환경을 사용하는 이유
- 의존성 관리 : 라이브러리 및 패키지를 각 프로젝트마다 독립적으로 사용 가능
- 팀 프로젝트 협업 : 모든 팀원이 동일한 환경과 의존성 위에서 작업하여 버전간 충동을 방지
- 가상환경이라는 것은 들어갔다 나왔다의 개념이 아니라 스위치 온오프의 개념
► LTS(Long-Term Support)
- 프레임워크나 라이브러리 등의 소프트웨어에서 장기간 지원되는 안정적인 버전을 의미할 때 사용
- 기업이나 대규모 프로젝트에서는 소프트웨어 업그레이드에 많은 비용과 시간이 필요하기 때문에 안정적이고 장기간 지원되는 버전이 필요
'Django' 카테고리의 다른 글
[Django] 템플릿 경로 지정 BASE_DIR (0) | 2023.03.22 |
---|---|
[Django] 로또 번호 생성 프로젝트 (0) | 2023.03.22 |
[Django] Django Template (0) | 2023.03.22 |
[Django] Django design pattern (0) | 2023.03.21 |
django shell_plus (0) | 2023.03.21 |