[컴퓨터 지식] 가상 머신, WSL2, 컨테이너, 가상 환경

김명섭·2024년 9월 10일

[Computer]

목록 보기
5/5

Virtual Machine


가상 머신은 Host OS 위에 하드웨어를 할당 받은 가상의 머신을 만들어, 그 머신에 Guest OS를 설치하여 APP을 구동할 수 있게 하는 기술이다.
Hypervisor라는 VM Monitor를 사용한다.

WSL2(Windows Subsystem for Linux)


WSL은 서브시스템으로 Hypervisor를 이용하여 가벼운 VM을 사용한다.
WSL2는 완전한 Linux Kernel를 사용한다는 것이 특징이고, 독립적이 아니고, Window에서 Linux 도구와 환경을 쉽게 이용할 수 있다.

Container


VM과 다르게 독립적인 하드웨어를 할당하지 않고, Guest OS 없이 Host OS 위에서 돌아간다.

Virtual Environment

독립적인 프로젝트를 위한 개별적인 공간으로 이해하면 된다.
어쨌든 프로그램을 실행한다는 것은 파일들이 설치되어 있고, 이를 사용하는 방식이기 때문에, 경로가 중요하다.
Python을 예로 들면, 라이브러리나 모듈등을 조회할 때, 미리 정해둔 경로에서 검색을 한다.
가상 환경은 그 경로를 독자적으로 관리함으로써, 마치 독립적인 컴퓨터에서 실행하는 것과 같은 효과를 볼 수 있다.
Anaconda, miniconda에서 사용하는 conda 가상 환경과 파이썬이 자체적으로 가지고 있는 venv 가상 환경이 있다.
conda 가상 환경은 python 언어에 국한되어있지 않고, 더 많은 기능 덕분에 복잡한 의존성 관리와 다양한 패키지 설치를 쉽게 도와주기 때문에 규모가 큰 프로젝트에 어울린다.
venv 가상 환경은 비교적 간단한 기능만을 제공하고, 파이썬 자체 내장 라이브러리를 사용하는 것이므로 파이썬만을 이용하는 간단한 프로젝트에 어울린다.

profile
ML Engineer

0개의 댓글