Docker는 왜 사용할까?

Gunju Kim·2025년 3월 19일
0

필수시청 영상

목록 보기
8/32
post-thumbnail

🚩 Docker란?

Docker는 애플리케이션과 그 실행환경을 컨테이너(container)라는 표준화된 패키지로 묶어서 관리하는 기술입니다.

쉽게 말해,
“내 컴퓨터에선 잘 됐는데, 왜 서버에서는 안 되지?” 같은 문제를 해결하기 위한 기술입니다.

📌 Docker를 사용하는 이유 (장점)

① 환경 일관성
내 로컬 환경과 운영환경(서버)의 차이를 없애줍니다.
어느 환경에서나 똑같이 동작하도록 보장합니다.
“내 컴퓨터에서는 잘 되는데?”라는 문제가 사라집니다.

💡 예시
개발자 PC에서 Docker로 만든 컨테이너를 서버에서 그대로 실행하면 완벽하게 같은 환경이 됩니다.

② 빠른 배포 및 확장성
Docker 이미지를 사용하여 빠르게 앱을 배포할 수 있습니다.
필요할 때 언제든 쉽게 컨테이너를 늘리고 줄이며 확장 가능합니다.

💡 예시
사용자가 갑자기 늘어나도 Docker 컨테이너를 쉽게 늘려 대응 가능.

③ 가벼운 실행환경 (가상머신 대비)
Docker는 가상머신(VM)과 달리 컨테이너를 사용합니다.
가상머신은 OS 전체를 실행하는 반면, Docker는 이미 존재하는 OS 위에서 필요한 앱 환경만을 빠르게 띄우기 때문에 매우 가볍고 빠릅니다.

④ 효율적 자원 관리
같은 컴퓨터에서 여러 Docker 컨테이너를 독립적으로 띄울 수 있어, 자원을 효율적으로 활용할 수 있습니다.

💡 예시
한 서버에서 여러 개의 독립된 웹 애플리케이션 실행 가능.

⑤ 쉽고 안전한 롤백(Rollback) 및 버전 관리
Docker 이미지는 버전 관리가 가능합니다.
문제가 생겼을 때 이전 버전으로 쉽게 돌아갈 수 있습니다.

💡 예시
업데이트 중 문제가 발생하면 이전 Docker 이미지를 바로 실행하여 서비스 복구 가능.

⑥ 쉬운 협업 및 공유
Docker 이미지를 공유하여 개발팀 전체가 같은 개발 환경을 쉽게 구축할 수 있습니다.
팀 내 환경설정의 어려움이 줄어듭니다.

💡 예시
팀원이 새로운 프로젝트에 참여할 때 Docker만 있으면 환경 설정이 단 몇 분만에 끝납니다.

⑦ 마이크로서비스(MSA) 구성 용이
여러 개의 작은 서비스를 독립적인 컨테이너로 나눠 실행하면 복잡한 시스템 관리가 쉬워집니다.

💡 예시
API 서버, DB, 캐시 시스템을 각 컨테이너로 분리하여 유지보수 효율성 증가.

📌 Docker 사용 사례

  • 웹 앱 및 API 서버 배포
  • 데이터베이스(DB) 환경 관리
  • CI/CD 자동화 환경 구축 (지속적 통합 및 배포)
  • 머신러닝/딥러닝 환경 공유
  • 테스트 환경 구축 및 관리

📝 Docker를 쓰지 않았을 때의 문제

  • 개발 환경과 운영 환경의 불일치로 인한 오류 발생
  • 새로운 개발자의 환경 세팅에 긴 시간 소모
  • 배포와 확장 과정이 복잡하고 어려움
  • 자원의 비효율적인 사용과 관리의 어려움

🚩 한 줄 정리

Docker를 사용하는 이유는 어디서나 동일한 환경 제공, 효율적인 배포 및 확장, 자원 활용 효율성, 그리고 쉬운 유지보수와 협업을 위해서입니다.

profile
처음이라서 그래 가본적 없던 길에

0개의 댓글