[Django] VSCode에서 장고 설치하고 프로젝트 만들기
- -
오늘은 VSCode(Visual Studio Code)에서 Django를 설치하고 프로젝트까지 만들어보는 시간을 가져보자.
VSCode에서 장고 설치하고 프로젝트 만들기
장고를 설치하고 프로젝트를 생성하기에 앞서 VSCode와 Python이 설치되어있지 않은 분들이라면 아래 게시글들을 참고하여 먼저 설치해 두도록 하자, 이미 설치가 돼있는 분들은 해당 과정을 넘어가고 다음 과정을 살펴보자.
VSCode 설치하기
파이썬 설치하기
1. 가상환경 설정
Django 프로젝트를 개발할 때 프로젝트를 더 깔끔하게 관리하고 의존성 관리를 효과적으로 수행하기 위해 Django 개발에 있어 가상 환경(Virtual environment)을 이용한 방법이 권장된다. 다음은 가상 환경을 사용하는 이유들이다.
사용 이유 | 세부내용 |
프로젝트 간의 격리 | 각각의 Django 프로젝트는 해당 프로젝트에 필요한 패키지와 의존성을 가지고 있다. 가상 환경을 사용하면 프로젝트 간에 패키지 충돌을 방지하고 프로젝트마다 독립된 환경을 유지할 수 있다. 이로 인해 다수의 Django 프로젝트를 개발할 때 각각의 프로젝트에 필요한 패키지 버전을 분리하여 관리할 수 있다. |
패키지 버전 관리 | 가상 환경을 사용하면 Django와 같은 프레임워크와 라이브러리의 버전을 프로젝트별로 선택하고 관리할 수 있다. 이것은 프로젝트가 의존하는 패키지의 업그레이드나 변경으로 인한 예기치 않은 동작 문제를 방지하는 데 도움이 된다. |
클린한 프로젝트 환경 | 가상 환경을 사용하면 Django 프로젝트를 깨끗하게 유지할 수 있다. 필요한 패키지만 가상 환경에 설치되므로 프로젝트 디렉터리가 불필요한 파일로 오염되지 않는다. |
배포와 호환성 | 가상 환경을 사용하면 개발 중인 환경과 프로덕션 환경 간의 일관성을 유지하기 쉽다. 프로덕션 서버에서도 동일한 패키지 버전을 사용하여 Django 애플리케이션을 실행할 수 있으므로 예상치 못한 호환성 문제를 방지할 수 있다. |
1.1 가상 환경 만들기
처음 아무것도 없는 폴더에서 본인이 프로젝트를 만들고자 하는 폴더에서 VSCode를 실행하게 되면 위의 사진과 같이 아무것도 없는 VSCode가 열릴 것이다. 여기서 좌측 상단에 있는 "Terminal" → "New Terminal"을 눌러 새로운 터미널 창을 열어주자.
터미널창이 열렸다면 위와 같이 python -m venv 가상환경이름 명령어를 입력하여 가상 환경을 만들어주자. 필자의 경우에는 가상환경 이름을 venv로 하였다.
가상 환경의 설치가 완료되면 위의 사진처럼 본인이 설정한 가상 환경의 이름(필자의 경우 venv)으로 새로운 폴더가 생성된 것을 확인할 수 있고 하위 폴더로 include, Lib, Scripts 폴더가 생성된 것을 확인할 수 있다. 각 폴더에 대한 설명은 다음과 같다.
폴더이름 | 폴더목적 |
include | Python 인터프리터의 헤더 파일이 저장된다. 일반적으로 이 폴더는 개발 환경에서 Python 패키지를 빌드할 때 필요하다. 일반 사용자나 대부분의 프로젝트에서는 이 폴더를 직접 사용할 일이 거의 없다. |
Lib | 가상 환경에서 사용할 Python 라이브러리와 모듈이 포함되어 있다. 가상 환경을 생성할 때 기본 Python 라이브러리와 모듈을 포함한 복제본이 생성되므로, 가상 환경에서 패키지를 설치하고 사용할 때 이 폴더가 참조된다. |
Scripts(또는 bin) | 가상 환경 내에서 실행할 수 있는 Python 인터프리터와 다양한 스크립트 파일이 포함되어 있다. Windows에서는 Scripts 폴더가 생성되며, UNIX 기반 시스템에서는 bin 폴더가 생성된다. 이 폴더에 있는 python.exe(Windows) 또는 python(UNIX) 파일은 가상 환경의 Python 인터프리터를 실행하는 데 사용된다. 또한 pip와 같은 패키지 관리자도 이 폴더에 위치하며, 가상 환경 내에서 패키지를 설치하고 관리할 때 사용된다. |
1.2 가상 환경 활성화
가상 환경을 설치했다면 이제 활성화를 해야 한다. 가상 환경 활성화 명령어는 운영체제에 따라 다르므로 운영체제별 가상 환경 명령어를 다음에서 참고하자.
운영체제 | 가상 환경 실행 명령어 |
Windows(Command Prompt) | .\가상환경이름\Scripts\activate |
macOS 및 리눅스 | source 가상환경이름\bin\activate |
가상 환경을 실행하기 위해 명령어를 입력할 때 Windows의 경우 각 명령어의 앞글자만 입력하고 tab 버튼을 누르게 되면 자동완성이 되니 참고하자.(예: v 누르고 tab, s 누르고 tab, a 누르고 tab)
가상 환경이 활성화가 된다면 위의 사진과 같이 (가상 환경이름) 이 출력되는데, 이는 자신의 위치에서 가상 환경이 실행되고 있음을 의미한다.
2. Django 설치 및 실행
가상 환경까지 모두 준비가 되었다면 이제는 드디어 장고를 설치하고 실행할 시간이다. 현재 가상 환경이 실행되어 있는 위치에서 다음과 같은 명령어를 입력하자.
2.1 장고 설치
pip install django
위의 사진과 같이 장고가 성공적으로 설치되었다면 이제는 장고 프로젝트를 만들어보자.
2.2 장고 프로젝트 생성
django-admin startproject 프로젝트이름 .
django-admin startproject 명령어를 사용하여 Django 프로젝트를 생성할 때, 마지막에 마침표(.)를 붙이거나 붙이지 않는 것은 생성된 프로젝트의 디렉터리 구조에 영향을 미친다.
1. 마침표를 붙이지 않은 경우
새로운 디렉터리가 생성되고 해당 디렉터리 내부에 프로젝트 파일과 디렉터리가 생성된다. 프로젝트 이름과 동일한 디렉터리가 생성되며, 그 안에 프로젝트 파일들이 위치하게 된다. 이렇게 하면 프로젝트 이름과 동일한 디렉터리로 Django 프로젝트가 생성된다.
2. 마침표를 붙이는 경우
현재 작업 디렉터리에 Django 프로젝트 파일과 디렉터리가 직접 생성된다. 따라서 새로운 디렉터리를 생성하지 않고 현재 디렉터리에 프로젝트 파일들을 생성하게 된다. 이 경우, 현재 디렉터리에서 Django 프로젝트를 직접 관리하게 된다.
필자의 경우 현재 작업하고 있는 디렉터리에 Django 프로젝트를 생성할 것임으로 마침표를 붙였다.
장고 프로젝트를 생성하면 위와 같이 설정한 프로젝트 이름으로 장고 프로젝트 폴더가 생성되고 그 아래 하위로 위와 같은 파일들이 생성되는데, 각 파일들의 역할은 다음과 같다.
파일명 | 파일 역할 |
__init__.py | 해당 디렉토리를 Python 패키지로 인식하도록 하는 빈 Python 파일이다. 패키지 내에서 Python 모듈을 가져오고 임포트할 때 사용된다. |
asgi.py(Asynchronous Server Gateway Interface) | Django 애플리케이션을 ASGI 서버(예 :Daphne)와 연동하기 위한 설정 파일이다. ASGI는 비동기 웹 서버와 Django 애플리케이션 간의 통신을 처리하는 프로토콜이다. |
settings.py | Django 프로젝트의 설정을 정의하는 핵심 파일이다. 데이터베이스 설정, 애플리케이션 설정, 로깅, 시간대 설정 및 기타 다양한 옵셩을 포함한다. Django 애플리케이션의 동작을 커스터마이즈하고 프로젝트를 구성하는 데 중요한 역할을 한다. |
urls.py | URL 패턴을 정의하고 URL 경로를 뷰 함수 또는 클래스와 연결하는 데 사용된다. Django 웹 애플리케이션의 URL을 관리하는 핵심 파일로, 클라이언트 요청을 처리할 뷰로 라우팅하는 데 사용된다. |
wsgi.py(Web Server Gateway Interface) | Django 애플리에키션을 WSGI 서버(예 : Gunicorn, uWSGI)와 연동하기 위한 설정 파일이다. WSGI는 Python 웹 어플리케이션과 웹 서버 간의 통신을 처리하는 표준 인터페이스이다. 이 파일은 일반적으로 배포 시에 사용된다. |
2.3 장고 프로젝트 실행
장고 설치가 완료되었다면 이제 장고를 한 번 실행해 볼 차례이다. 장고의 실행 명령어는 다음과 같다.
python manage.py runserver
필자는 장고 프로젝트를 생성할 때 현재 작업하고 있는 위치에서 장고 프로젝트를 만들어서 위와 같이 명령어를 바로 입력해서 장고를 실행시킬 수 있지만 다른 경로에 장고 프로젝트를 만들었을 경우 해당 폴더로 이동 한 뒤, 위의 명령어를 실행시켜 주자.
장고 프로젝트를 실행시키고 나면 위와 같은 메시지가 출력될 것이다, 빨간색으로 오류가 나오는 이유는 데이터베이스 마이그레이션을 적용하지 않았기 때문이다. 마이그레이션은 데이터베이스 스키마를 정의하고 업데이트하는 프로세스이다. 이 오류는 데이터베이스 스키마를 최신 상태로 업데이트하지 않았을 때 발생한다.
해결 방법은 다음과 같이 makemigrations와 migrate를 차례대로 실행해주면 된다.
python manage.py makemigrations
makemigrations 명령어는 데이터베이스 모델에서 발생한 변경 사항을 마이그레이션 파일로 만드는 데 사용된다. 이 명령으 실행하면 Django는 현재의 모델 상태와 이전 모델 상태를 비교하여 데이터베이스 스키마를 변경하는 데 필요한 SQL 문장을 생성하고 이를 마이그레이션 파일에 저장한다. 마이그레이션 파일은 migrations 디렉토리 아래에 저장되며, 각 마이그레이션 파일은 데이터베이스 스키마의 한 단계 변경을 설명한다. 새로운 모델을 추가하거나 필드를 수정하는 등의 변경 사항은 이 명령을 통해 마이그레이션 파일로 기록한다.
python manage.py migrate
migrate 명령어는 마이그레이션 파일을 실행하여 데이터베이스 스키마를 변경하는 데 사용된다. 이 명령을 실행하면 Django는 makemigrations 명령을 통해 생성된 마이그레이션 파일을 기반으로 데이터베이스 스키마를 업데이트 한다. 데이터베이스 스키마 변경 사항은 데이터베이스에 적용되며, 데이터베이스 테이블이나 인덱스를 생성 또는 수정한다. migrate 명령은 데이터베이스를 최시 상태로 유지하며, 모델의 변경 사항을 데이터베이스에 반영한다.
장고가 실행되고 나면 웹 브라우저에서 http://127.0.0.1:8000/ 로 들어가 보자.
장고가 정상적으로 실행된다면 http://127.0.0.1:8000/ 주소로 들어갔을 때 다음과 같은 웹 페이지가 보일 것이다.
'Framework > Django' 카테고리의 다른 글
[Django] 장고 URL 설계 (0) | 2023.12.17 |
---|---|
[Django] 장고 뷰(View) (0) | 2023.12.15 |
[Django] 장고에서의 요청 처리 (0) | 2023.12.14 |
[Django] 장고의 설계 철학 (1) | 2023.12.12 |
[Django] 장고 app 생성 (0) | 2023.11.01 |
소중한 공감 감사합니다