Docker란?
도커는 리눅스의 App들의 프로세스를 격리하여 컨테이너로 실행하고 관리하는 오픈소스 프로젝트입니다. 막상 사용해보면 VM과 같은 내 컴퓨터에 독립된 리눅스 운영체제 환경이라고 생각할 수 있습니다.
틀리진 않은 설명입니다. VM은 아니지만 VM같은 무언가가 설치되기는 하거든요.
그리고 무엇보다 매우 가볍습니다. VM을 돌려보신분들 이라면, VM을 하나 키면 잡아먹는 리소스가 상당히 거대하다는 걸 알 수 있습니다.
어떻게 이렇게 가볍냐고 하면, 여러 VM은 Linux Kernel이 따로 존재하는 반면에 도커는 여러개의 컨테이너가 하나의 Linux Kernel을 공유합니다. 하나의 머신에 여러 이미지를 사용할 수 있게 만들었습니다.
개발환경이나 특정 프로그램을 도커에 설치하는 이유는 간단합니다. VM도 마찬가지로, 온전히 하나의 개발 환경으로만 해당 머신을 사용할 수 있다는 겁니다.
개발 환경 구성 독립
한 컴퓨터의 여러가지의 프로젝트를 구성할 경우 당연히 모든 구성 환경이 같으면 좋겠지만 그렇지 않을 경우가 꽤 많죠.
만약 도커를 이용해 개발 환경을 구성한다면 결론적으로는 VM을 사용하는 효과는 같지만 더욱 가벼운 도커 컨테이너를 구축해 개발할 수 있게됩니다.
생성, 제거의 자유로움
다시 강조하지만 도커의 컨테이너는 매우 가볍습니다. 해당 특성으로 인해 생성과 제거가 굉장히 자유롭습니다. 로컬에서 OS를 설치, 삭제를 반복하기보다 몇배는 빠르고 간편합니다.
개발 환경 공유
도커 컨테이너는 스크립트를 사용 가능합니다.
즉, 스크립트를 통해 다른 사람들과 똑같은 환경을 얻을 수 있습니다. 만약 새로운 팀원이 들어온다면 어떤것을 설치하고 말고 할 것이아닌, Docker를 설치하고 스크립트를 실행하라 라고 말할 수 있습니다.
이 스크립트를 통해 CI/CD 서버를 이용해 테스트에도 활용할 수 있습니다.
'SpringBoot > 프로젝트 게시판 만들기' 카테고리의 다른 글
[쇼핑몰 프로젝트] 로그인 : JWT Session의 차이 (1) | 2024.01.09 |
---|---|
쇼핑몰 프로젝트 - Spring Security Principal (1) | 2023.12.26 |
SpringBoot 쇼핑몰 쿠폰 기능 구현하기 (1) | 2023.12.08 |
[DB설계] 요구사항 정의하기 - ERD 설계하기 (1) | 2023.11.23 |
[DB설계] 요구사항 정의하기 (1) | 2023.11.17 |