개발을 하다 보면 "도커"나 "가상머신" 같은 용어를 자주 듣게 된다.
처음엔 헷갈릴 수 있지만 개념을 이해하고 나면 아주 유용하게 활용할 수 있다.
컨테이너란?
컨테이너는 애플리케이션과 그 실행에 필요한 모든 것을 하나로 묶은 실행 단위이다.
필요한 라이브러리, 설정, 의존성 등을 모두 포함해서 어디서 실행하든 항상 같은 환경을 보장한다.
📦 컨테이너 = 앱 + 필요한 실행 환경 → "상자에 담아서" 어디서든 동일하게 실행!
왜 사용할까?
- 환경 차이를 없애기 위해
→ 내 컴퓨터에서 잘 되던 코드가 서버에선 안 되는 문제 방지 - 빠른 배포와 실행
→ 가볍고 부팅이 필요 없어 즉시 실행 가능 - 이식성과 확장성
→ 클라우드든 다른 컴퓨터든 문제없이 실행됨
🐳 도커(Docker)란?
도커는 위에서 말한 컨테이너를 만들고 실행하는 도구다.
- Dockerfile로 실행 환경을 정의하고
- 명령어 한 줄로 컨테이너를 만들고 실행할 수 있다.
개발, 테스트, 배포까지 모든 과정을 도커로 동일한 환경에서 처리할 수 있기 때문에 개발자들이 아주 많이 사용한다.
💻 가상머신(VM)이란?
가상머신은 물리적인 컴퓨터 안에 또 다른 컴퓨터(OS)를 설치하는 기술이다.
예를 들어:
- 내 실제 PC는 Windows인데 그 위에 Ubuntu 같은 리눅스를 가상으로 설치해서 동시에 사용 가능하다.
특징:
- 장점
- 각 가상 머신은 자신만의 OS를 가지고 있다.
- 격리 수준이 강해서 보안에 유리하다.
- 단점
- 무겁고 느리며 리소스를 많이 사용한다.
도커 vs 가상머신 비교
항목도커 (컨테이너)가상머신 (VM)
OS | 호스트 OS 공유 | 각자 독립된 OS 설치 |
속도 | 빠름 (바로 실행) | 느림 (OS 부팅 필요) |
무게 | 가벼움 (MB~수백 MB) | 무거움 (GB 단위) |
격리 | 약함 (같은 커널 공유) | 강함 (OS 단위 격리) |
사용 목적 | 빠른 배포, 마이크로서비스 | 완전한 분리 환경, 테스트 서버 등 |
비유로 이해하기
- 가상머신: 아예 다른 집 한 채를 새로 짓는 것 (모든 설비 독립)
- 도커: 같은 건물 안에서 방만 따로 나눠 쓰는 것 (기본 설비 공유)
'기타' 카테고리의 다른 글
웹 프레임워크 기본 개념 (0) | 2025.04.06 |
---|---|
OZ 초격차 캠프 수료 후기: 개발자로 도약한 나의 도전기 (0) | 2025.04.02 |
초격차 캠프: AWS 해커톤 후기 - MangGom 팀의 도전과 성장 이야기 (3) | 2024.12.06 |