아까 파이썬을 install할 때, 가상환경을 설정하고 실행했다. 여기에는 선택사항이라고 했지만, 실행하지 않으면 파이썬 파일이 작동되지 않는다. 이 글에서는 이 가상환경이란 무엇이고 왜 하는지 알아보도록 하겠다.
가상환경은 프로젝트마다 독립적인 패키지(프로젝트) 관리를 위해 설정하는 것이라고 한다. 여러 패키지를 진행할 때 각각의 패키지의 의존성(dependencies)와 라이브러리를 구분하여 관리할 수 있게 해주는 역할이다. 이렇게 되면 패키지를 분리하여 여러 프로젝트 간 서로 다른 라이브러리 버전을 사용할 수 있어서 어떤 한 패키지의 변경이 다른 패키지에 영향을 주지 않아 문제가 덜 발생하게 되는 효과가 있다. 또한 의존성 관리를 통해 각각에 필요한 라이브러리와 그 버전을 명확하게 관리할 수 있어 코드의 호환성과 재현성을 높일 수 있게 되는 것이다. 마지막으로 개발환경의 일관성이 생겨 협업 시 같은 환경에서 작업할 수 있다는 특장점이 있다.
이러한 가상환경은 Conda와 Venv가 있다. Conda란 오프소스 패키지 관리 시스템이자 환경 관리 시스템으로 데이터과학과 머신러닝에 특장점을 가지고 있다. 우리가 사용한 것은 Venv(Virtual Environment)으로 파이썬 3.3부터 표준 라이브러리에 포함되어 개별 프로젝트에 독립된 파이썬 환경을 제공한다. 이를 통해 서로 다른 패키지에서 다른 버전의 라이브러리를 사용해도 문제가 되지 않으며, 시스템의 파이썬 환경에 영향을 주지 않게 된다. 이는 일반적인 파이썬 개발과 간단한 작업에 추천되는 가상환경으로 나한테 딱 적합하다. 필요한 경우에 Conda를 한 번 사용해 보겠다.