Interview Question

[Interview Question] Docker를 써본 경험이 있나요? 컨테이너 vs VM 차이는 무엇인가요?

sagecode 2025. 9. 4. 17:25

주로 백엔드 서버(Spring Boot), 데이터베이스(PostgreSQL, MongoDB), 캐시 서버(Redis) 같은 환경을 Docker 컨테이너로 띄워 개발과 테스트를 진행했습니다. 로컬 환경에서 팀원들마다 설정 차이가 생기는 문제를 줄이고, 동일한 환경을 빠르게 구성할 수 있어 협업에 큰 도움이 되었습니다.

 

VM은 하이퍼바이저(VMware, VirtureBox) 위에 각각의 운영체제를 올려서 실행하기 때문에 하나하나가 독립적인 서버처럼 동작합니다. 그래서 보안과 안정성 측면에서는 강점이 있지만, 운영체제를 포함해야 하므로 무겁고 부팅 속도가 느린 단점이 있습니다.

 

컨테이너는 우리가 실행하려는 애플리케이션 파일, 런타임 환경, 환경변수 파일, 라이브러리 등을 하나의 이미지로 묶습니다.

컨테이너는 운영체제(Host OS)를 공유하면서 애플리케이션과 필요한 라이브러리만 격리 실행하기 때문에 훨씬 가볍고 실행 속도가 빠릅니다. 그래서 컨테이너는 배포 자동화나 마이크로서비스 같은 환경에서 적합하고, VM은 강력한 격리나 다양한 OS 실행이 필요한 상황에 적합하다고 할 수 있습니다.