상세 컨텐츠

본문 제목

피로그래밍14기: day7 오전 <DJANGO, 가상환경>

환 codes web/DJANGO

by 퍼블리셔환 2021. 1. 14. 23:14

본문

 

 

1. 가장 기대되는 세션이었다. 장고, 이름의 간지가 미쳤다.

간지가 미쳤다. 코딩하는데 문열고 갑자기 들어와서 "the D is silent"라고 말할 것만 같다

아쉽게도, 멋진 이름에는 걸맞지 않게 내가 수업을 잘 이해하지 못했다. 그런 의미에서, 장고 주제곡 한 번 듣고 오자.

www.youtube.com/watch?v=VsxOPWtrnko

쿠엔틴 타란티노의 영화 장고의 주제곡

물론 이 장고는 아니고 우리가 사용하는 장고는 웹 프레임워크다. 풀어서 이야기하자면 웹사이트를 개발하고 서버를 구성하는데에 필요한 기능을 제공해 주는 툴이라고 볼 수 있다.

 

장고에 대한 실습과 실질적으로 웹을 구현하는 것은 다음 세션에 하고, 이번 세션에는 가상 환경을 구현하는 작업을 먼저 진행해보자.

 

2. 가상 환경

파이썬을 이용해서 가상 환경을 만드는 것은 중요하다. 예를 들어, 내가 지금껏 열심히 만들어 놓은 작업물이 파이썬 3.8 기반으로 작성된 내용이라고 하자. 그런데, 갑자기 파이썬 2.9를 사용해서 과제를 제출하라고 하면 방법은 두 가지가 있다. 첫 번째는 과제를 안 하는 것이고, 두 번째는 파이썬 3.8을 지우고 2.9 버전을 다시 다운받는 것이다. 그런데 둘 다 방법이 탐탁지 않다. 기존에 깔려있던 파이썬 3.8을 멋모르고 지웠다가는 이전까지 내가 만든 작업물들이 오류가 생길 수도 있다. 

 

그래서 이런 경우에는 가상 환경을 만들어서 작업한다. 노마드 코더로 유명한 유튜버 니콜라스의 비유를 빌리자면, 가상 환경을 만드는 것은 내 컴퓨터에 독립적인 버블을 만드는 것과 같다. 원래 universe(내 컴퓨터 기본 설정)에는 내가 이전까지 사용하던, 나에게 익숙한 세팅이 있지만 이 버블에는 기존의 universe에 영향을 주지 않으면서 새로운 작업물에 필요한 환경을 구축할 수 있다. 위의 경우에는, 내 컴퓨터에는 그대로 파이썬 3.8이, 가상 환경에는 파이썬 2.9가 설치되어 있지만 충돌을 일으키지 않고 잘 돌아가는 것을 의미한다. 

 

3. 파이썬 실습, 가상 환경 만들기

우선 가상 환경을 만들어보자. 빈 폴더를 하나 만들고, git bash를 실행해서 다음 코드를 입력한다.

python -m venv <venv> # 가상 환경 만들기

여기서 <venv>는 내가 임의로 만들 가상 환경의 이름이다. virtual environment의 약자이다. 따라서 여러분들은 코드를 입력할 때 아래와 같이 입력하면 된다. 

만약 정상적으로 실행이 됐다면, 빈 폴더에 venv 하위 폴더가 생성되어 있을 것이다. 내 컴퓨터의 경우에는 이렇게 폴더가 생성되었다. 

이 내용은 git bash 커맨드에서 ls (venv)를 입력해서도 확인할 수 있다. 

 

그러면 이제 우리가 만든 가상 환경을 실행해 보자.

source venv/Scripts/activate # 가상 환경 실행하기

코드를 실행한 뒤에 아래에 (venv)가 뜨면 성공이다. 현재 들어와 있는 공간이 venv라는 가상 환경임을 나타내 준다. 

 

만약 가상 환경을 종료하고 싶으면

deactivate # 가상 환경 종료하기

를 입력하면 된다. 

 

이제 가상 환경에서 설치된 파이썬 버전을 확인해 보자. 

pip --version # 설치된 파이썬 버전 확인

내 컴퓨터의 경우에는 파이썬 3.8이 잘 설치되어 있다고 나온다. 

 

가상 환경을 추가로 더 구성하기 위해서 패키지를 설치할 수 있다. 설치 코드는 다음과 같다. 

pip install <package> # <패키지> 설치

 

지금의 경우에는, 장고를 설치할 것이기 때문에 위 <package>에 django가 들어간다. 

pip install django # 장고 설치

위와 같이 Successfully installed ~가 뜨면 성공적으로 설치가 된 것이다. 

 

여기서 어떤 패키지들이 설치가 됐는지를 보려면 다음과 같은 코드를 입력하면 된다. 

pip freeze # 설치된 패키지 확인

asgiref가 3.3.1 버전으로,

Django가 3.1.5 버전으로,

...

이렇게 설치된 패키지의 이름과 버전을 확인할 수 있다. 

 

이제 다음은 장고의 프로젝트를 생성할 차례이다. 맨 끝에 있는 점은 현재의 디렉토리에 프로젝트를 생성한다는 뜻이므로, 점까지 포함해서 입력해야 한다. 

django-admin startproject piro14 . # piro14라는 프로젝트를 시작함

생성됐다!

 

이제 ls를 입력해서 생성된 piro14폴더를 확인할 수도 있다. 

원래의 venv폴더 이외에도 piro14폴더와 manage.py파일이 새로 생겼다. 

 

지금부터는 본격적으로 가상 환경에서 생성한 장고의 서버를 실행할 수 있다. 이 작업은 생각보다 시간이 오래 걸린다...

python manage.py runserver # 서버 실행

원래대로라면 이런 메시지가 떠야 한다. 

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
January 08, 2021 - 09:56:54 Django version 3.1.5, using settings 'config.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.

그런데 만약 Watching for file changes with StatReloader 이 커맨드에서 아무 일도 일어나지 않는다면 http://127.0.0.1:8000 이 링크에 들어가 보자. 만약 이 링크를 들어갔는데 아래와 같은 페이지가 떴다면 성공이다. 

로켓이 흔들거리며 반겨준다.

만약 서버를 종료하고 싶으면 ctrl+c를 누르면 된다. ctrl+c를 누르고 다시 위 사이트에 접속하면 에러 메시지가 뜬다. 

 

여기까지 파이썬을 활용해서 가상 환경을 만들고, 가상 환경에서 서버에 접속하는 과정이었다. 이제 다음부터는 실질적으로 페이지를 연결하고 데이터를 받아오는 등 서버에 대한 세션이 될 것이다. 

관련글 더보기

댓글 영역