일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 파이썬
- 코딩테스트준비
- 리그오브레전드
- greedy
- 알고리즘
- 라이엇
- 스파르타내일배움캠프TIL
- 그리디
- API
- java
- 장고
- 프로그래머스
- 자바
- 탐욕알고리즘
- SQL
- sort
- 백준
- drf
- Riot
- github
- 스파르타내일배움캠프
- lol
- 내일배움캠프
- programmers
- python
- git
- 그리디알고리즘
- 롤
- 코딩테스트
- Django
- Today
- Total
Lina's Toolbox
Django 설치하기/ 장고란? 본문
웹 페이지에서의 기능 구현 방법
1️⃣ 프로그래밍 언어를 이용해서 하나하나 모두 만드는 방법
- 장점
- 자신이 모든것을 이해할 수 있습니다.
- 모든것을 뜻대로 동작하게 만들 수 있습니다.
- 단점
- 모든것을 아주 잘 알아야 합니다.
- → 웹의 특성, 보안, 데이터베이스 등 정말 많은 부분들이 있어요.
- 너무 많은 시간이 걸립니다.
2️⃣ 이미 만들어진 것을 가져와서 사용하는 방법
→ 로그인 / 로그아웃 같이 많은 기능들이 웹사이트 마다 비슷해요!
- 장점
- 모든것을 만들 필요없이 가져다가 사용하는 방식으로 개발이 가능합니다.
- 아주 빠르게 웹 사이트를 만들 수 있습니다.
- 단점
- 처음에 러닝 커브(학습 비용)가 존재합니다.
- → 다른 개발자들이 만들어놓은 코드를 어느정도 이해하고 사용법을 알아야 해요!
- 모든것을 원하는대로 커스텀하기 어렵습니다.
- → 가져다가 쓰는 것이기 때문에 한계가 존재해요.
프레임워크(Framework)란?
📚 소프트웨어 개발을 위한 구조적인 틀
- 개발자들이 프로그램을 만들때 자주 사용하는 여러 도구를 모아놓은 것입니다.
- 특정한 작업이나 목적을 수행하기 위한 코드 뭉치입니다.
- 파이썬에는 Django, Flask, FastAPI 등의 여러 프레임워크가 있습니다.
📚 왜 사용할까요?
- 프레임워크를 사용하면 생산성이 아주 높아집니다.
- 부가적인 부분은 프레임워크에 맡기고, 핵심 로직에만 집중할 수 있습니다.
- 구조적으로 안정적인 형태로 개발이 가능합니다.
- → 프레임워크는 슈퍼개발자, 한명도 아니고 여러명이 모여 논의를 통해 만들어져요! 즉, 굉장히 단단하고 안정적인 코드예요!
- 빠르고 안정적이며, 높은 품질의 소프트웨어 개발 가능합니다.
Django 란
다양한 프레임워크 중에서도 Python 기반의 웹 프레임워크인 Django를 배워야하는 이유는 뭘까요?
Python 기반
- Django를 다루기위해 다른 언어를 배울 필요가 없습니다.
- Python을 사용해서 웹개발이 가능합니다! 👍
웹 프레임워크
- 웹을 만들기 위한 프레임워크입니다.
- 빠른 웹개발을 위한 모든 것이 준비되어 있습니다.
Why Django?
- DRY(Don’t Repeat Yourself) 원칙
- 코드 중복을 최소로하는 개발 원칙을 따릅니다.
- 모든것이 갖춰진 프레임워크
- 보안, 관리자기능, Auth 등의 필요한 모든것이 준비되어있습니다.
- 풍부한 레퍼런스
- Google과 함께라면 두렵지 않겠죠?
- 여러분의 모든 에러는 이미 해결책이 있습니다.
- 검증된 프레임워크
- 어떠한 도구(프레임워크)를 고를때는 그것을 어디에 사용했는지 봐야합니다.
이밖에도 토스, 화해, 번개장터, 에이블리 …
우리가 알만한 앱들이 장고로 개발되었다.
이러한 앱들이 이미 검증을 마친 것이니, 우리가 개발하려는 웹은 다 만들수 있다고 해도 무방할 것이다!
Django 설치
그럼 이제 실습을 위해 장고를 본격적으로 설치해보자.
먼저 파이썬 부터 설치해야한다.
1. Python 설치
- 3.10.x 버전을 사용합니다.
→ 3.9.x도 가능해요. 이상없어요!
파이썬 3.10 버전 설치하기
window
https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe
mac OS
https://www.python.org/ftp/python/3.10.11/python-3.10.11-macos11.pkg
🚨 주의) Add Python to PATH 에 체크해야 합니다!!
![](https://blog.kakaocdn.net/dn/dF335g/btsIYalbnTN/noUC12hjIjRMqXgPmqkfb1/img.png)
![](https://blog.kakaocdn.net/dn/dAQUt2/btsIXwWCnAg/H6PbMC830KHk3AVkX2yGPK/img.png)
소프트웨어 버전 넘버링
보통 소프트웨어 버전은 A.B.C 형태를 취합니다.
📚 왜 그럴까요? 🤔 Major.Minor.Patch
- Major : 주요 버전은 소프트웨어의 큰 변화나 기능 추가를 나타냅니다. 주요 버전이 변경되면 호환성이 없는 변경사항이 있을 수 있으며, 이는 이전 버전과의 호환성을 보장하지 않을 수 있음을 의미합니다.
- Minor : 부 버전은 주요 버전 안에서의 작은 변화를 나타냅니다. 주로 새로운 기능의 추가나 개선된 기능 등을 포함합니다. 부 버전의 변경은 주요 버전과의 호환성을 유지하면서 새로운 기능을 추가하는 것이 일반적입니다.
- Patch : 패치 버전은 보통 버그 수정, 보안 업데이트, 또는 작은 수정 사항을 나타냅니다. 주요 버전과 부 버전은 변경되지 않지만, 코드의 수정이 있을 수 있습니다. 일반적으로 패치 업데이트는 호환성을 유지하면서 이전 버전의 안정성을 향상시킵니다.
💡 버전 번호 체계가 존재하며 이는 소프트웨어 개발자에게 번호만 보고도 어떠한 변경사항이 적용되었고, 업그레이드 등의 작업을 해야할 지 말아야할 지 알려주는데 도움을 준다!
2. 가상환경 (optional)
이제 가상환경을 만들어보자.
가상환경이란?
- 하나의 컴퓨터에 여러개의 개발 환경을 셋팅하는 것입니다.
왜 해야할까요?
- 프로젝트별 환경 분리를 위해서 해야합니다.
- Global 환경과 개별 환경 설정을 위해서 해야합니다.
가상환경 생성 및 적용
1️⃣ venv 폴더 만들기
python -m venv venv
이 명령어를 실행하면 현재 디렉토리 안에 venv라는 이름의 가상 환경 디렉토리가 생성됩니다.
2️⃣ 가상환경 활성화
windows
source venv/Scripts/activate
윈도우에서는 이런식으로, activate 파일이 가상환경 디렉토리 안의 Scripts 폴더 안에 존재한다.
macOS
source venv/bin/activate
맥에서는 이렇게, venv/bin 폴더 안에 activate 파일이 있는 것을 확인할 수 있다.
3️⃣ 설치된 파이썬 패키지 보기
이제 맞게 잘 설치 된 것인지 확인해보자!
pip list
설치된 패키지 와 그 버전의 리스트를 확인할 수 있다.
가상환경을 꼭 설치해야할까?
답은 NO🙅🏻♀️!
가상환경은 프로젝트마다 서로 다른 패키지 버전을 관리하기 위해 Python의 전역 환경에서 독립적인 작업 공간을 제공하는 것입니다.
가상환경을 굳이 사용하고 싶지 않다면, Django를 전역(global) 환경에 설치할 수도 있습니다.
이 경우, 시스템의 Python 환경에 직접 패키지를 설치하게 되어,
굳이 매번 가상환경을 키지 않아도 되므로 관리가 간편할 수 있습니다.
🚨 하지만 이 방법은 여러 프로젝트에서 서로 다른 패키지 버전이 필요할 때 충돌을 일으킬 수 있습니다.
또한, 패키지와 종속성을 전역 환경에 설치하면, 다른 프로젝트나 시스템의 Python 환경과의 의존성 충돌을 일으킬 위험이 있습니다.
➡️ 전역 환경에는 훨씬 많은 패키지가 깔려있는데 가상환경에는 없네? ➡️ 서로 다른 독립적인 환경임을 알 수 있다.
03. Django 설치하기
1️⃣ 설치
pip install django==4.2
2️⃣ 설치 패키지 확인하기
pip list
Django 만 설치했는데, 다른 것도 설치되는 이유? → 의존성 때문입니다. Django도 결국 또 다른 것들의 도움을 받아 만들어집니다.
따라서 장고를 사용하기 위해서는 저것들이 함께 설치되어야합니다.
→ 이 버전들은 항상 동일해야해요!
→ 그래서 적어서 전달해야합니다.
3️⃣ requirements.txt에 freeze하기
pip freeze > requirements.txt
→ 현재 설치된 목록을 requirements.txt에 명시합니다.
→ 앞으로 설치를 하고 나서 항상 이 과정을 진행해야합니다.
🚨 단, 전역환경에서 설치해줬다면, 다른 파일들도 함께 있을 거기때문에 큰 의미가 없겠죠. -> 가상환경은 사용하는 게 더 좋습니다.
4️⃣ 만들어진 requirements.txt를 읽어오는 법
pip install -r requirements.txt
→ requirements.txt를 한줄씩 읽으면서 모두 설치를 해줍니다.
📌 pip install을 한 다음에는 항상 pip freeze > requirements.txt 도 쳐주는 습관을 들이자!
우리는 장고의 최신버전이 아닌, 4.2버전을 설치했다. 그 이유는 뭘까?
LTS(Long Term Support)
모든것은 진화하고 발전합니다. 각 최신 버전은 더욱 많은 기능을 포함할 것입니다.
그럼 가장 최신버전이 늘 제일 좋을까요? ➡️ NO! 최신 버전이 만사 OK인 것은 아닙니다!
- 어떤 패키지를 선택 & 설치할 때는 반드시 호환성을 고려해야합니다.
- 가장 최신버전을 설치한다고해서 모든 것이 호환되지는 않습니다.
ex) macOS M1 Chip 🤔 - 프로젝트 호환성이 높고 오래 사용할 수 있는 버전을 선택해야 합니다.
→ 안정적이고 장기적으로 지원을 받을 수 있는 버전을 선택해야해요! - 소프트웨어나 기술 제품의 장기 지원을 나타내며 LTS 버전은 보다 오랜 기간 동안 지원되며 보안 업데이트, 버그 수정, 백포트된 기능 업데이트 등을 포함합니다.
→ 사용자들이 해당 소프트웨어를 안정적으로 운영하고 유지보수할 수 있도록 도와줘요!
현업에서는, 안정성을 더 중요시하므로,
최신버전보다는 구버전을 사용하는 경우가 많습니다.
LTS를 받을 수 있는 버전을 선택하는 것이 좋겠죠.
- 그럼 우리는 이걸 어떻게 알 수 있을까요?
→ 관련내용을 검색하고, 읽어서 찾을 수 있어요!
https://www.djangoproject.com/download/
Python도 이런 LTS가 존재합니다.
https://devguide.python.org/versions/
'스파르타 내일 배움 캠프 AI 웹개발 과정 > Django framework' 카테고리의 다른 글
Django Template 시작하기 (0) | 2024.08.12 |
---|---|
Django의 MTV Pattern (0) | 2024.08.10 |
웹, 네트워크, 서버, 클라이언트 이해하기 (0) | 2024.08.10 |
Django 앱(App) 생성하고 등록하기 (0) | 2024.08.09 |
Django 프로젝트 생성, 실행하기 (0) | 2024.08.08 |