VM(Virtual Machine)
개념
VM(Virtual Machine)는 소프트웨어로 만든 가상 컴퓨터이다.
핵심 구조
물리적인 하드웨어 위에 하이퍼바이저(Hypervisor) 라는 소프트웨어를 두고, 그 위에 여러개의 독립적인 운영체제를 올리는 방식
- 호스트(Host): 가상머신이 설치되는 실제 물리적 컴퓨터 (예: 내 노트북)
- 게스트(Guest): 가상머신 안에서 돌아가는 가상 운영체제 (예: 리눅스, 윈도우 11 등)
- 하이퍼바이저(Hypervisor): 호스트 하드웨어와 게스트 OS 사이에서 자원을 배분하고 관리하는 역할
| 장점 | 상세 설명 |
|---|---|
| 완벽한 격리 | 게스트 OS에서 문제가 생겨도 호스트 컴퓨터는 안전 (보안 테스트 최적) |
| 멀티 OS 환경 | 재부팅 없이 윈도우에서 리눅스용 프로그램을 실행 가능 |
| 스냅샷 기능 | 현재 상태를 저장했다가, 실수하면 언제든 ‘저장 시점’으로 되돌릴 수 있음 |
| 자원 최적화 | 고성능 서버 한 대를 여러 대의 서버처럼 나눠 사용 |
VM과 Docker의 차이점
“어디까지 가상화를 하는가”, “얼마나 가벼운가”
- 가상머신을 쓰는 경우:
- 윈도우에서 리눅스 전용 프로그램을 돌려야 할 때 (완전히 다른 OS 환경 필요)
- 보안이 극도로 중요하여 시스템 자원을 완벽하게 분리해야 할 때
- 도커를 쓰는 경우:
- 하나의 서버에 여러 개의 서비스를 띄워야 할 때 (마이크로서비스 아키텍처)
- “내 컴퓨터에선 되는데 서버에선 안 돼!” 같은 환경 차이 문제를 해결하고 싶을 때
- 빠르게 서비스를 확장하고 배포해야 하는 현대적인 웹 개발 환경
| 구분 | 가상머신 (VM) | 도커 (Docker) |
|---|---|---|
| 비유 | 아파트 한 채 (독립된 집) | 게스트하우스 침대 (방은 같이 쓰되 내 공간만 점유) |
| 핵심 | OS 전체를 가상화 | 프로세스(앱)만 가상화 |
| 용량 | 기가바이트(GB) 단위 (무거움) | 메가바이트(MB) 단위 (가벼움) |
| 속도 | 부팅 시 OS가 켜지길 기다려야 함 | 실행 즉시 바로 켜짐 |
결론
하드웨어를 통째로 흉내를 내어, 완벽하게 독립된 컴퓨터 환경을 제공하는 가상화 기술
Leave a comment