가상환경
요약
하나의 컴퓨터에서 프로젝트마다 독립적인 Python 실행 환경과 라이브러리를 사용할 수 있도록 만드는 기술이다.
가상환경이 필요한 이유
버전 충돌 방지: 개발자가 두가지의 프로젝트를 진행 중이다. 이 두 프로젝트에서 사용해야 하는 언어는 같은데, 다른 버전을 사용해야 하는 경우 버전충돌을 방지하기 위해 사용하게 된다.
정리: 프로젝트마다 필요한 tool만 담을 수 있어 컴퓨터 시스템이 지저분해지지 않는다.
협업 용이: 내가 어떤 라이브러리를 썼는지 리스트를 뽑아 다른 사람에게 전달하기 쉽다.
가상환경 구조
가상환경을 만들면 프로젝트 폴더 안에 특정 폴더(venv / .venv)가 생긴다. 이 안에는 다음 파일들이 들어가있다.
| 구성 요소 | 역할 |
|---|---|
| Python 인터프리터 | 해당 환경에서 사용할 파이썬 실행 파일 |
| Lib/site-packages | 해당 환경에만 설치된 외부 라이브러리들 |
| Scripts/bin | 가상환경을 켜고 끄는 실행 스크립트 |
자주 사용하는 도구들
- venv : 파이썬에 기본으로 내장된 가장 표준적인 도구
- Conda : 데이터 사이언스나 머신러닝 분야에서 필수다.
Docker와의 차이점
가상환경을 써도 해결되지 않는 문제점이 있을 수 있다. (가상환경을 맞췄는데도 컴퓨터에 따라 서버가 안되는 경우), 서버에 배포해야 하는 경우
이런 경우 Docker을 사용한다.
| 구분 | 파이썬 가상환경 (venv, Conda) | 도커 (Docker) |
|---|---|---|
| 격리 범위 | 파이썬 라이브러리, 패키지 버전만 격리 | 운영체제(OS), 라이브러리, 네트워크 설정까지 통째로 격리 |
| 의존성 | 내 컴퓨터의 OS(Windows/Mac)에 의존 | OS에 상관없이 컨테이너 내부 OS 환경에서 실행 |
| 주요 목적 | 파이썬 프로젝트 간 버전 충돌 방지 | “내 컴퓨터에서 돌아가면 어디서든 돌아가게” 만들기 |
| 파일 구성 | 특정 폴더 내의 라이브러리 파일들 | 이미지(Image)라는 독립된 실행 파일 뭉치 |
Leave a comment