파이썬에서 웹 개발할 일이 생겼습니다!
저는 데스크탑은 윈도우, 노트북은 맥을 사용하고 있기 때문에 맥에 먼저 세팅을 해주려 합니다
올드 맥북이라 벽돌 되는 게 무서워서 업데이트를 잘 안 해요… 지금 버전은 Catalina(10.15.7)입니다
Python3 설치하자
1. 맥북에는 파이썬이 이미 설치되어 있다??
맥북에서 터미널(terminal)을 실행시킵니다
아래 명령어를 치면 2.7.x버전의 파이썬이 설치되어 있다고 나옵니다
python —-version
찾아보니 파이썬이 기본 프로그램으로 깔려있다고 합니다
개발에는 3 버전이 필요합니다
저는 파이썬3를 지난번에 설치해 놨었어요
python3 —-version
Python 3.8.2
2. Python3 설치 방법
파이썬 공식 홈페이지에서 파이썬 파일을 다운로드합니다
https://www.python.org/downloads/
Download Python
The official home of the Python Programming Language
www.python.org

공식 페이지에서 추천해 주는 버전 👉 노란 버튼을 눌러 설치
다른 버전이 필요하다 하면 아래에서 받을 수 있습니다

pkg 파일을 받아 실행시키고 ‘계속‘버튼을 눌러주면 설치가 완료됩니다
3. 설치 확인 및 설치 경로 확인

- 설치 확인 명령어

python3 —-version
python3 -V
- 설치 경로 확인

which python3
👉python3의 경로가 잘 확인된다면 설치가 제대로 완료된 상태입니다
가상환경을 구축하고, Django를 설치하자
1. Django?
Python으로 작성된 오픈소스 웹 프레임워크로, MVT(Model-View-Template) 방식은 자바의 MVC패턴(Model-View-Controller)과 동일한 개념입니다
장고 웹 프로그래밍의 특징은 쉽고 빠르다는 것입니다
2. 가상환경이 왜 필요할까?
파이썬에서는 가상환경을 사용할 수 있습니다
독립된 가상환경이 필요한 이유는 인터넷에서 다운로드한 파이썬 라이브러리들이 충돌하는 것을 방지하기 위함입니다
외부 라이브러리들은 서로 의존성을 갖고 있는 경우가 많아 버전이 맞지 않는 경우 오작동을 일으키기도 합니다
그래서 파이썬 실제 프로젝트를 개발하는 경우에는 가상 환경을 구성하는 것이 필수라고 할 수 있습니다
별도로 가상환경을 만들면 맥에 기본으로 깔려있는 파이썬 2 버전과 위에 설치해 준 파이썬 3 버전을 선택하여 개발할 수 있습니다
3. 가상환경 구축
python에서는 프로젝트 별로 독립된 가상환경을 만들어주는 virtualenv 툴을 제공합니다
이제 venv 모듈을 이용해 독립된 가상환경을 구축하고 라이브러리들을 설치해 보겠습니다
3-1. 프로젝트 폴더 생성
원하는 위치에 폴더를 만들어 프로젝트를 관리해 보겠습니다
mac OS에서 터미널 오픈해 VENV 폴더를 생성해 줍니다
저는 좀 깔끔하게 정리하기 위해 python3 폴더 안에 생성해 줬어요
$ mkdir python3
$ cd python3
python3 $ mkdir VENV
python3 $ cd VENV
3-2. 가상환경 생성
VENV 폴더 안에 venv_proj라는 이름의 가상환경을 만들어줍니다

VENV $ python3 -m venv venv_proj

3-3. 가상환경을 활성화
👉 venv_proj로 이동
cd venv_proj
👉 가상환경 안으로 진입
venv_proj $ source bin/active
가상환경 내에 있다는 것을 알려주기 위해 프롬프트에 (venv_proj)가 표시된다

👉 가상환경 내에서 쓰는 파이썬 버전과 위치를 확인해 본다

(venv_proj) $ python3 -V
(venv_proj) $ which python3
👉 가상환경 종료
이 명령어가 실행되면 프롬프트가 바뀌면서 가상 환경 밖에 있음을 알 수 있다
(venv_proj) $ deactivate
4. Django 설치하는 방법
장고(Django)는 가상환경 안에서 설치해 줍니다
📌 가상환경을 활성화하지 않고 명령어를 실행하면, 맥 전체(글로벌 환경)에 설치될 수 있으니 주의
📌 가상환경 활성화 후 설치하는 습관을 들이자!
추가 설명 : 맥 전체(글로벌 환경)에 설치하면 위에서 설명한 것처럼 환경이 꼬일 수 있다
가상환경에서 설치했을 때의 장점 :
- 각 프로젝트마다 독립적인 환경 유지 가능
- 버전 충돌 없이 프로젝트마다 원하는 패키지 버전 설치 가능
- 잘못 설치하거나 삭제해도 다름 프로젝트나 시스템에 영향을 주지 않음
4-1. 가상환경 실행
venv_proj $ source bin/activate
4-2. 장고(Django) 설치
맥이나 리눅스에는 python 2가 기본으로 설치되어 있기 때문에 pip install django 대신,
python 3용 pip을 사용해 pip3 install django를 쓰겠습니다
(venv_proj) $ pip3 install django

Successfully installed 메시지로 Django가 정상적으로 설치되었음을 확인할 수 있습니다
근데 주의가 떴네요
WARNING : You are using pip version 19.2.3, however version 25.0.1 is available.
You should consider upgrading via the ‘pip install —upgrade pip’ command.
메시지를 확인해 보니 pip 버전이 오래되었다고 업데이트하라 합니다
꼭 해야 하는 건 아니지만 최신 버전이 보안 및 성능 개선이 포함되어 있어 업그레이드를 권장한다 하네요
터미널에서 해당 명령어를 실행해 업데이트를 진행합니다

(venv_proj) $ pip3 install —-upgrade pip
4-3. 장고 설치 확인

(venv_proj) $ python3 -m django —-version
4-4. 가상 환경에 설치된 패키지 리스트를 확인해 보는 법

(venv_proj) $ pip3 list
방금 설치한 장고도 확인 가능합니다!
5. 외부 라이브러리 설치(선택)
마찬가지로 가상환경에서 설치합니다
1) 태그 달기 기능 개발
블로그에서 포스팅마다 태그를 달 수 있는 기능

(venv_proj) $ pip3 install django-taggit
(venv_proj) $ pip3 install django-taggit-templatetags2
2) 폼 처리에 사용하는 패키지

(venv_proj) $ pip3 install django-widget-tweaks
3) 이미지 처리 패키지
포토앱(웹 사이트에 사진을 올리고, 업로드한 사진을 그룹화하여 앨범과 사진을 열람할 수 있는 애플리케이션)을 만들 때 사용

(venv_proj) $ pip3 install Pillow
4) 파이썬, 장고(Django) 패키지 검색 사이트
파이썬용 패키지 검색 사이트
https://pypi.python.org/
PyPI · 파이썬 패키지 인덱스
파이썬 패키지 인덱스(PyPI)는 파이썬 프로그래밍 언어를 위한 소프트웨어 리포지터리입니다.
pypi.org
장고용 패키지 검색 사이트
https://www.djangopackages.com/
Django Packages : Reusable apps, sites and tools directory for Django
Django Packages stores information on fetched packages and provides easy comparison tools for them. Public APIs include PyPI, GitHub, and Bitbucket.
djangopackages.org
6. pytz 설치 확인하기
장고(Django) 프로그램을 설치하면 타임존을 관리하는 pytz 패키지가 함께 설치됩니다
장고는 기본적으로 다국어를 지원하므로 각 나라마다 로컬 시간을 계산할 수 있습니다
포스트를 올리는 시간, 날짜와 시간 정보를 사용할 때 필요합니다
# 설치 확인
(venv_proj) $ pip3 list
$ pip3 list로 목록을 확인해 보니 설치가 안되어있어서 설치해 주었습니다

# 설치가 안 되어있다면 pytz 패키지를 다시 설치해준다
(venv_proj) $ pip3 install pytz
7. 가상환경 편하게 구축하기
가상 환경 복사 + 붙여넣기
freeze 명령어를 사용해 가상환경을 복사할 수 있습니다
다른 시스템이나 다른 디렉토리에 동일한 가상환경을 구성하고자 할 때 쓰는 명령어입니다
👉 가상환경에 설치된 패키지 리스트를 확인할 수 있는 두 가지 명령어
(venv_proj) $ pip3 list
(venv_proj) $ pip3 freeze

결과는 같지만 $ pip3 list가 더 보기 편합니다
👉 첫 번째 명령어로 현재 가상환경에 설치된 패키지 목록을 구합니다
# 패키지 목록 파일 requirements.txt를 생성
(venv_proj) $ pip3 freeze > requirements.txt
- 명령어를 실행하면 requirements.txt 파일이 생성됩니다 (복사)

- 파일을 열어보면 $ pip3 freeze 실행 내용과 동일합니다

👉 두 번째 명령어로 조금 전 가상환경과 동일한 패키지를 새로운 가상환경에 설치합니다
# 가상환경의 패키지와 동일하게 othervenv 가상환경에 설치
(othervenv) $ pip3 install -r requirements.txt
- 지금 실행되던 venv_proj의 가상환경 종료
(venv-proj) $ deactivate
- 새로운 가상환경 만들기 (계획)

구조를 후에 수정할 수도 있지만 지근은 이렇게 계획해 봅니다
python3 / VENV 폴더 밑에 가상환경을 생성해서 관리해 볼게요
- 새로운 가상환경 생성
new_venv라는 이름의 가상환경을 만들어보겠습니다
VENV $ python3 -m venv new_venv
명령어 실행을 하면 새 폴더가 생성됩니다

- 새 가상환경 실행하기
VENV $ cd new_venv
new_venv $ source bin/activate
- 기존과 동일한 패키지 설치 (붙여넣기)
(new_venv) $ pip3 install -r /경로/requirements.txt
경로를 추가한 명령어는 이렇게 됩니다
(new_venv) $ pip3 install -r ~/Desktop/python3/VENV/venv_proj/requirements.txt

👉 제대로 되었는지 확인
(new_venv) $ pip3 list
똑같은 가상환경이 구성되었습니다

다음번 포스팅은 블로그 앱 기능구현이 되지 않을까 합니다
'개발 기록 > backend' 카테고리의 다른 글
Mac OS에 MySQL 설치, 진행, 커넥션 테스트 (1) | 2025.03.19 |
---|---|
에러 해결) ER_NOT_SUPPORTED_AUTH_MODE : Node.js에서 MySQL을 접근할 때 발생하는 에러 (0) | 2024.10.10 |
[백엔드] 프리온보딩 - AWS, docker 사전미션 (2) | 2024.02.21 |
[review] <객체지향의 사실과 오해> (0) | 2024.01.25 |
[백엔드]프리온보딩 객체지향 마지막 후기 - 내 코드를 안전하게 변경하는 방법 (0) | 2024.01.22 |