부록: 비개발자를 위한 가상화와 클라우드 이야기 (feat. 집 짓기)

서버, 가상머신(VM), 컨테이너… IT 인프라의 발전 과정을 ‘집을 짓는 방식’의 변화에 비유하여 설명합니다. 이 글을 통해 개발자들이 왜 이런 기술들을 사용하는지 그 배경을 쉽게 이해할 수 있습니다.


1. 전통적인 서버: “튼튼한 단독주택 짓기”

  • IT 개념: 물리 서버 (Physical Server)
  • 비유: 기초 공사부터 시작해서 짓는 ‘단독주택’

과거에는 서비스를 하나 운영하려면, 실제 컴퓨터(서버) 한 대를 통째로 사용했습니다. 이는 마치 한 가족이 살기 위해 땅(하드웨어)을 사서, 그 위에 집(운영체제, OS)을 짓고, 그 안에서 사는(애플리케이션 실행) 것과 같습니다.

  • 문제점: “방 하나만 더 필요한데, 집을 새로 지어야 하나?” 안방만 사용하고 건넌방과 사랑방은 비어있다면(서버 자원 낭비), 집 한 채를 더 짓는 것은 매우 비효율적입니다. 서버 한 대의 성능을 100% 활용하기 어려웠습니다.

2. 가상화: “한 지붕 여러 가족, 다세대 주택”

  • IT 개념: 가상화 (Virtualization), 가상 머신 (VM)
  • 비유: 하나의 큰 건물에 여러 세대가 독립적으로 사는 ‘다세대 주택’

이 비효율을 해결하기 위해 ‘가상화’ 기술이 등장했습니다. 이는 큰 건물(물리 서버) 하나를 짓고, 그 안에 ‘하이퍼바이저(Hypervisor)’ 라는 똑똑한 건축 관리인을 두는 것과 같습니다.

  • 하이퍼바이저 (건축 관리인): 이 관리인은 건물 내부를 여러 개의 완벽히 독립된 ‘아파트’(가상 머신, VM)로 나누어 세를 줍니다.
  • 가상 머신 (독립된 아파트): 각 아파트는 저마다의 현관문, 주방, 화장실, 전기 계량기(독자적인 운영체제, OS)를 갖추고 있습니다. 옆집에 누가 사는지 전혀 신경 쓸 필요 없이 독립적인 생활이 가능합니다.

핵심 인사이트: 가상화 덕분에, 하나의 물리적인 집(서버)을 여러 개의 독립된 집처럼 나누어 쓸 수 있게 되어 자원 효율성이 크게 높아졌습니다. 이것이 오늘날 대부분의 클라우드 서비스가 사용하는 방식입니다.


3. 컨테이너: “방만 빌려 쓰는 셰어하우스”

  • IT 개념: 컨테이너 (Container), 도커 (Docker)
  • 비유: 주방과 화장실은 공유하고, 각자의 방만 독립적으로 사용하는 ‘셰어하우스’

가상화 기술이 훌륭했지만, 각 아파트마다 주방과 화장실을 모두 새로 만들어야 하니 여전히 무겁고 비효율적인 면이 있었습니다. 그래서 더 똑똑한 방식인 ‘컨테이너’가 등장합니다.

  • 컨테이너 (개인 침실): 셰어하우스에서는 모든 입주민이 하나의 큰 주방과 화장실(운영체제 커널)을 공유합니다. 대신 각자의 ‘방’(프로세스)은 완벽히 격리되어 사생활을 보장받습니다.
  • 장점: 아파트를 새로 짓는 것보다, 방 하나를 새로 꾸미는 것이 훨씬 빠르고 저렴합니다. 그래서 컨테이너는 가상 머신보다 훨씬 가볍고 빠릅니다.

핵심 인사이트: 컨테이너는 집 전체(OS)를 새로 짓지 않고 방(프로세스)만 격리하기 때문에, 가상 머신보다 훨씬 가볍고 빠릅니다. 더 많은 세입자를 더 효율적으로 받을 수 있게 된 거죠. (이전 글의 ‘밀키트’ 비유는 이 컨테이너를 어떻게 표준화해서 배포하는지에 대한 이야기입니다.)


4. 클라우드 서비스(IaaS, PaaS, SaaS): “부동산 서비스의 종류”

클라우드는 위와 같은 가상화/컨테이너 기술을 활용해 IT 자원을 빌려주는 서비스입니다. 어떤 부동산 서비스를 이용할지와 비슷합니다.

IaaS (Infrastructure as a Service)

  • 비유: “토지 + 건축 허가만 받아주기”
  • 설명: 클라우드 업체가 땅(서버 자원)만 빌려줍니다. 어떤 집(OS)을 짓고, 내부는 어떻게 꾸밀지(애플리케이션 설치)는 모두 당신의 몫입니다. 자유도가 가장 높지만, 가장 많은 전문 지식이 필요합니다.
  • 예시: AWS EC2, Azure VM (가상머신을 빌리는 것)

PaaS (Platform as a Service)

  • 비유: “기본 골조와 수도/전기가 완비된 집”
  • 설명: 집의 기본 구조와 설비(플랫폼, OS, 미들웨어)는 이미 완성되어 있습니다. 당신은 인테리어와 가구 배치(코드 배포)에만 신경 쓰면 됩니다. IaaS보다 편리하지만, 정해진 구조 안에서만 움직여야 합니다.
  • 예시: Heroku, AWS Elastic Beanstalk

SaaS (Software as a Service)

  • 비유: “풀옵션 가구가 완비된 호텔이나 레지던스”
  • 설명: 모든 것이 완벽하게 준비되어 있습니다. 당신은 몸만 들어가서 서비스를 이용(소프트웨어 사용)하면 됩니다. 가장 편리하지만, 자유도는 거의 없습니다.
  • 예시: Gmail, Slack, Notion

최종 정리

IT 용어집 짓기 비유역할
물리 서버단독주택하나의 하드웨어, 하나의 OS
가상 머신(VM)다세대 주택 (독립된 아파트)하드웨어는 공유, OS는 독립
컨테이너셰어하우스 (개인 침실)하드웨어와 OS 커널까지 공유, 프로세스만 격리
IaaS토지 임대가장 기초적인 인프라만 제공
PaaS기본 골조가 있는 집 임대개발/실행 환경(플랫폼) 제공
SaaS풀옵션 호텔완성된 소프트웨어 제공

이제 개발자들이 이런 용어들을 사용할 때, ‘집 짓기’ 비유를 떠올려 보시면 대화의 흐름을 이해하는 데 큰 도움이 될 것입니다.


작성일: 2025-10-30