본문 바로가기
Python

Python 가상 환경이 필요한 이유 3가지

by Lee David 2022. 8. 5.
반응형

파이썬 문법만 공부를 하고 간단한 스크립트를 짜서 사용할땐 몰랐지만 

막상 Flask, Fast Api, Django 등을 사용할때 일어나는 이슈들로 가상환경 설정을 하며

여러가지 이유들 중 제일 와닿는 이유를 정리해 보았습니다.

 

1. 독립적인 개발 환경 구성

개발 할때 가장 시간이 많이 소요되고 귀찮지만 꼭 필요한 작업이 개발 환경 셋팅일 것입니다.

하지만 파이썬 개발시에 처음 셋팅해 놓은 환경을 유지하고 해야 하는 경우 유용하게 사용됩니다.

2. 버전 관리의 유효성

지금 내가 맡아서 진행하는 프로젝트가 파이썬 버전 혹은 사용하는 패키지등의 버전 이슈등으로

프로젝트 전체의 버전을 올리거나 한가지 패키지의 버전을 올리거나 내려야 할때에도 지금 프로젝트의

패키지들을 잘못 건드렸다가는 모든 패키지를 지우고 처음으로 돌아가 돌아올수 없는 강에 빠져버릴수도 있지만

가상환경으로 작업을 할때에는 현재 가상환경을 유지하고 추가 가상환경을 만들어 내가 원하는 테스트를

마친후에 또 다른 작업을 이어 나갈 수 있도록 유연한 작업을 제공 합니다.

3. 여러 프로젝트를 한 os에서 작업 가능

만약 같이 작업을 해야하는 A, B 프로젝트가 있다 가정하에 설명하겠습니다.

A 프로젝트에서는 TEST 패키지의 1.5 버전을 사용해야 내가 원하는 서비스를 할 수 있고 B 프로젝트에서

같은 패키지지만 버전이 다른 2.1 버전을 사용해야 한다고 가정했을때 두 패키지 모두 동일한 기능을 제공하면

문제가 없겠지만 한 os 상에서 두개의 다른 버전을 사용하며 작업하기에는 설치/제거 무한루프에 빠지게 되며

이것 또한 작업자의 상당한 리소스를 소모 시킬수 있다고 생각합니다.

하지만 두개의 가상환경에 각각 필요에 따른 버전을 설치하여 작업을 할 수 있다면 무의미하진 않지만 귀찮은

시간 소모를 최소화 시킬 수 있습니다.

 

결론

java 진영에서 사용하는 gradle, maven의 고마움을 모르고 살다가 python을 접하면서 새로운 시각으로 개발을 하게 된것 같습니다. node 개발과 비슷하지만 node에서 프로젝트(directory) 단위별로 라이브러리, 패키지들을 사용 가능 했다면 아직 python 진영에서는 jvm이나 v8 엔진처럼 중간 역할이 없고 os에 직접 접근 하는 방식으로 동작을 하기 때문에 가상환경을 사용하는 개발 환경이 폭 넓게 사용되는것 같습니다.

 

개인적인 견해임으로 혹시 잘못된 부분이 있다면 댓글 부탁드립니다.

반응형