개발시 가상환경을 사용하는 이유 (+ .exe 설치 파일)

하스레·2023년 5월 6일
1
post-thumbnail

예전부터 Anaconda를 사용해서 가상환경을 만들고 가상환경위에서 애플리케이션을 개발해왔지만, 그 원리에 대해 깊게 생각해본적이 없었다. 최근에 그 개념에 대해 명확하게 알게되어 정리해놓고자 한다.

가상환경을 사용하는 이유

예를 들어보자. A라는 프로젝트와 B라는 프로젝트가 있다. A 프로젝트를 진행하며, 가상환경을 만들지 않고 그냥 내 로컬 PC에서 A라는 프로젝트에 필요한 라이브러리나 모듈 등을 다운받아서 열심히 개발을 했다.
이후, 다른 컴퓨터에서 잘 동작하던 B 프로젝트의 프로그램을 내 로컬 PC에서 실행하려고 하자, 작동되지 않는 문제가 발생한다!

그 이유는, A 프로젝트에서 사용하기 위해 내 로컬 PC에 받아놨던 라이브러리들과 B 프로젝트에서 사용되는 것들이 꼬여서, B 프로젝트의 프로그램이 동작하지 않았던 것이다.

이를 해결하기 위해, 가상환경을 사용한다.

env_A라는 가상환경을 만들어 그 안에서 A 프로젝트에 필요한 라이브러리들을 다운받아 개발하고, env_B라는 가상환경을 만들어 그 안에서 B 프로젝트에 맞는 라이브러리나 모듈을 사용해서 개발해보자.
그러면, 어떤 컴퓨터를 사용하든 상관없이, 환경설정 등이 꼬일 걱정없이, 가상환경만 옮겨가면서 프로그램을 개발하고 실행할 수 있다.

가상환경을 사용하는 이유 ++

추가적으로, 가상환경을 사용했을 때 또다른 이점이 있다. 이를 설명하기 전에, 프로그램 설치 및 .exe 파일에 대한 이해가 필요하다.

우리가 게임을 다운받거나 어떤 프로그램을 컴퓨터에 설치할 때, 우리는 .exe 확장자를 가진 파일을 다운받는다. 그리고 이 파일을 실행하면 우리 컴퓨터에 해당 프로그램이 설치된다.

이때, .exe 라는 파일 안에는, 해당 프로그램을 개발할 때 사용되었던 라이브러리, 모듈 등이 들어있다. 이들이 .exe라는 박스안에 숨겨져 있다가 그를 실행했을 때 설치되고, 빌드되어 실행된다.

가상환경의 장점은, 가상환경 안에서 개발하던 그대로 포장하여 배포할 수 있다는 것이다. 그러면 해당 프로그램을 개발하며 사용했던 모듈들을 그대로 감싸서 배포할 수 있다. 그리고 이전에 개발할 때 가상환경을 사용해서 어느 컴퓨터든 상관없이 개발할 수 있었던 것과 마찬가지로 배포했을 때도 어느 PC에서 상관없이 해당 프로그램을 설치하고 이용할 수 있게 된다.

여기까지 가상환경의 장점 및 사용 이유에 대해서 알아보았다~!

profile
Software Developer

0개의 댓글