Django 기본 개념 정리 - 가상환경_(1)

EBAB!·2023년 7월 3일
0

Django 시작하기

목록 보기
2/10
post-thumbnail

가상환경(virtual_environment)

django를 시작하기에 앞서 가상환경을 설정해주어야 합니다.

가상

'가상'이라는 단어는 개발을 하다보면 매우 다양한 상황에서도 자주 만나게 되는데 보통 공통적으로 가지는 의미는 '물리적으로 구현된 것이 아닌'이라는 의미를 가집니다.

예를 들어, 메모리와 가상메모리(virtual memory)라는 개념이 있습니다. 메모리는 컴퓨터가 가지는 저장 공간으로 컴퓨터들의 내부에 실제로 존재하는 장치 중 하나입니다.
그럼 가상메모리는? 위의 말 그대로 실제로 존재하는 메모리가 아닌 것입니다.
컴퓨터에는 메모리밖에 없지만 우리가 이러쿵저러쿵해서(자세한 것은 CS에서!) 메모리같은 역할을 하는 녀석을 만들어서 이렇게 말하는 거죠.

"넌 진짜 메모리는 아니지만 그런 역할을 하게 만들었으니 실제가 아닌 가상(virtual)메모리라 하겠다!"

앞으로 만나게 되는 여러 '가상'개념은 기본적으로 이런 의미를 가지고 있다고 생각하시면 됩니다.

환경

가상환경에 초점을 맞춰 환경을 설명하자면, 환경은 내가 개발할 프로젝트의 작업장입니다.

어떤 환경은 옷을 만들기 좋은 작업장이 있을 것이고, 어떤 작업장은 목자재를 다루는 곳도 있을 것입니다.

중요한 것은 프로젝트 종류만큼 작업장이 다양하게 있어야 겠다는 느낌이 오면 좋습니다.

가상환경

그렇다면 가상환경은?
실제로(물리적으로, 컴퓨터 장치로) 존재하는 건 아니지만 우리가 만들어낸 환경입니다.

만드는 이유는? 우리에게 가상이 아닌 실제 환경은 우리 컴퓨터 하나밖에 없기 때문입니다.

위에서 설명한 작업장 비유를 생각하면, 우리 컴퓨터는 아주 넓은 하나의 작업장입니다. 목공 도구를 들고와서 목공 작업을 해도되고, 하다못해 동물 사료 제조 설비를 들여놓고 만들어도 되죠.
그런데 그렇게하면 동물 사료에 톱밥이 들어갈 수도 있겠죠? 비유없이 말하자면, 우리가 사용하는 개발 모듈이 다른 프로젝트에서 사용하는 모듈에게 영향을 받아 에러가 발생할 수 있게 됩니다.

가상환경은 이런 큰 작업장에 벽을 쳐서 공간을 분리해준다고 생각하시면 됩니다. 독립적으로 작업할 수 있게 해주는 거죠.

그리고 사용한 기술을 정리해야 할 타이밍은 오기 마련인데 누가 어디에 사용된 놈인지 알 수가 없기도 하고, 이전 프로젝트에서 사용한 기술이 다른 프로젝트에서 방해가 되기도 하기 때문입니다.

그래서 우리는 프로젝트를 개발할 때, 가상 환경을 만들어서 그 안에서만 개발을 진행하고, 가상 환경 밖에는 영향을 끼치지 않으므로써 매 프로젝트마다 해당 프로젝트에만 집중할 수 있게 됩니다.

가상환경 라이브러리 종류

가상환경을 위한 도구를 가상환경 라이브러리라 부르는데 이 종류도 다양합니다.

대체로 venv를 사용하고 저는 poetry 라는 가상환경 라이브러리를 사용합니다.

가상환경을 관리해준다는 부분은 똑같기 때문에 크게 신경쓰지 않으셔도 됩니다. 저는 poetry는 poetry만의 장단점이 있기에 이 부분은 다른 게시글로 정리해 보겠습니다.

profile
공부!

0개의 댓글