[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/개발상식

Docker란?

inu 2021. 7. 17. 21:58
반응형
  • 서버를 구축하는 것은 귀찮은 일이다. 새로운 환경인 서버에 언어, 웹서버, DB, 자동배포툴 등을 모두 설치해야하기 때문이다. 거기다 개발환경에 따라 도구의 버전 역시 중요하기 때문에 이 역시 신경써줘야 한다.
  • 서버를 운영하다보면 서버를 옮기거나 확장할 일이 많다. 이 때마다 서버환경을 똑같이 구축해주는 것은 상당히 귀찮다.
  • 거기다 다른 사람이 구축한 서버를 처리해야하는 일이 발생할 경우 매우 번거로운 상황이 된다.
  • 또한 한 서버에서 여러 서비스를 돌릴 때 각 서비스의 개발환경이 다른 경우 이를 처리해주기 어렵다.

Docker?

  • 이런 서버운영의 어려움을 해결해주는 것이 Docker이다.
  • 개발도구들이 설치된 모습을 '이미지'화하여 DockerHubd에 업로드하고 다운로드한다.
  • 이미지로 저장된 항목들이 함께 연결되어 동작할 수 있도록 설정 상태를 명령어 텍스트나 문서 형태로 저장할 수 있다.
  • 이러한 이미지를 통해 개발환경 전체를 다른 서버환경에서 똑같이 재현할 수 있도록 처리한다.
  • 각 환경을 컨테이너라는 독립된 가상공간에 만드는 형태로 재현하기 때문에 한 컴퓨터(서버)에 여러 환경을 저장할 수 있다.

Virtualization(가상컴퓨팅)과 Docker의 차이

  • VM Ware같은 가상컴퓨팅 환경은 각 가상의 OS들이 물리적자원을 분할하여 사용하기 때문에 성능적 한계가 있다.

  • 하지만 Docker는 이를 컴퓨터에 직접적으로 설치하는 것이 아니다.

  • 실행환경만 독립적으로 만들어줄 뿐, 물리적자원을 불할하여 사용하지 않기 때문에 훨씬 유용하고 빠르다.

    참고 및 내용출처 : https://youtu.be/tPjpcsgxgWc

반응형

'🛠 기타 > 개발상식' 카테고리의 다른 글

CI/CD란?  (0) 2021.07.17
유데미(Udemy) 한글자막 undefined 해결 (21.07.15)  (0) 2021.07.15
함수형 프로그래밍이란?  (0) 2021.05.02
명령형 UI와 선언형 UI  (0) 2021.05.02
SSH(Secure Shell Protocol)  (0) 2021.01.22