VM(Virtual Machine)

개념

VM(Virtual Machine)는 소프트웨어로 만든 가상 컴퓨터이다.


핵심 구조

물리적인 하드웨어 위에 하이퍼바이저(Hypervisor) 라는 소프트웨어를 두고, 그 위에 여러개의 독립적인 운영체제를 올리는 방식

  • 호스트(Host): 가상머신이 설치되는 실제 물리적 컴퓨터 (예: 내 노트북)
  • 게스트(Guest): 가상머신 안에서 돌아가는 가상 운영체제 (예: 리눅스, 윈도우 11 등)
  • 하이퍼바이저(Hypervisor): 호스트 하드웨어와 게스트 OS 사이에서 자원을 배분하고 관리하는 역할
장점 상세 설명
완벽한 격리 게스트 OS에서 문제가 생겨도 호스트 컴퓨터는 안전 (보안 테스트 최적)
멀티 OS 환경 재부팅 없이 윈도우에서 리눅스용 프로그램을 실행 가능
스냅샷 기능 현재 상태를 저장했다가, 실수하면 언제든 ‘저장 시점’으로 되돌릴 수 있음
자원 최적화 고성능 서버 한 대를 여러 대의 서버처럼 나눠 사용

VM과 Docker의 차이점

“어디까지 가상화를 하는가”, “얼마나 가벼운가”

  • 가상머신을 쓰는 경우:
    • 윈도우에서 리눅스 전용 프로그램을 돌려야 할 때 (완전히 다른 OS 환경 필요)
    • 보안이 극도로 중요하여 시스템 자원을 완벽하게 분리해야 할 때
  • 도커를 쓰는 경우:
    • 하나의 서버에 여러 개의 서비스를 띄워야 할 때 (마이크로서비스 아키텍처)
    • “내 컴퓨터에선 되는데 서버에선 안 돼!” 같은 환경 차이 문제를 해결하고 싶을 때
    • 빠르게 서비스를 확장하고 배포해야 하는 현대적인 웹 개발 환경
구분 가상머신 (VM) 도커 (Docker)
비유 아파트 한 채 (독립된 집) 게스트하우스 침대 (방은 같이 쓰되 내 공간만 점유)
핵심 OS 전체를 가상화 프로세스(앱)만 가상화
용량 기가바이트(GB) 단위 (무거움) 메가바이트(MB) 단위 (가벼움)
속도 부팅 시 OS가 켜지길 기다려야 함 실행 즉시 바로 켜짐

결론

하드웨어를 통째로 흉내를 내어, 완벽하게 독립된 컴퓨터 환경을 제공하는 가상화 기술

Categories:

Updated:

Leave a comment