마지막으로 작성한 글이 5월 27일..
학기 중에 수행하였던 팀 프로젝트, 공모전 참여, UMC 팀 프로젝트 등등 여러 일정들이 겹치니 시간이 빨리 지나갔습니다..ㄷㄷ
아니 그래도 이정도로 빨리 지나갈 줄은 몰랐는데 곧 있으면 개강이네요
뭐했지..?
막상 뭔가 한 건 많은데 종강할 때와 비교해서 실력이 크게 늘었다 말할 정도는 아닌 것 같아요.
그나마 새로 배웠다고 말할 수 있는 것들이 Querydsl, 도커, 쿠버네티스 정도..?
그마저도 아직 완벽하게 숙지하고 있다는 아닌 것 같아서 배웠던 내용들을 다시 정리하고자 이렇게 블로그에 글을 적게 되었습니다.
배웠던 내용들 중에서 무엇을 먼저 정리할지 생각해보다가, 내가 프로젝트하면서 불편했던 점들을 해결할 수 있는 기술이 좋다고 판단하였고, 자연스럽게 도커가 떠올라 이렇게 설명하게 되었습니다.
일단 도커부터 설명하는 시간을 가지도록 하겠습니다.
[Reference : https://www.docker.com/company/]
도커에 대하여 아시는 분이 계실 수도 있고, 모르는 분이 계실 수도 있는데, 도커 홈페이지 공식 문서에서 설명하고 있는 도커의 기능은 다음과 같습니다.
[Reference : https://docs.docker.com/get-started/overview/]
이를 간단하게 번역하자면,
도커는 어플리케이션 개발, 배포, 운영에 도움을 주는 오픈소스 플랫폼으로, 이를 통하여 어플리케이션 실행에 필요한 환경을 쉽게 구축할 수 있다는 의미입니다.
그런데 솔직히 간단하게 축약해도 아직 무슨 소리인지 감이 안와요 ㅋㅋ
그래서 제 경험을 토대로 예시를 들어보겠습니다.
저만 그런지는 모르겠는데, 저는 백엔드를 공부하다보니 백엔드와 관련된 프로그램들만이 노트북에 설치되어있습니다.
뭐 약간 이런식으로요..
그러다보니 제 노트북 환경에서 프론트엔드 프로젝트를 구동시키기 위해서는 해당 프로젝트를 구동하기 위한 환경을 따로 구축해야하는데, 지난 학기 팀 프로젝트에서 어쩌다보니 이런 상황이 만들어졌습니다.
솔직히 어려운 일은 아니었으나, 좀 많이 귀찮기도하고 시간도 좀 잡아먹었습니다.
VSCode 설치.. Node 설치.. NPM 설치.. 등등
아무래도 프로그램 설치하는 과정도 있고, 공부하는 분야가 아니다보니까 명령어 하나하나 구글로 검색해봐야 한다는 점에서 불편함을 많이 느꼈습니다.
그 당시에는 어찌저찌 문제를 해결하였으나, 나중에 보니까 도커를 통해서 제가 겪었던 문제점들을 해결할 수 있더라구요.
도커 파일이라는 것을 통하여 어플리케이션 실행에 필요한 환경을 입력하면, 도커는 그 파일을 통하여 환경을 구축하고, 이러한 환경에서 우리는 별도의 프로그램 설치 없이 동일한 어플리케이션 결과를 얻을 수 있게 됩니다.
대충 어플리케이션 실행에 필요한 환경을 구축해준다는 것까지 알았으니 다음으로는 동작 방식에 대해서 살펴보겠습니다.
[Reference : https://docs.docker.com/get-started/overview/]
다음은 도커 공식 홈페이지에서 확인할 수 있는 도커의 동작 방식입니다.
도커는 이미지 가운데에서 확인할 수 있는 것처럼, 이미지와 컨테이너를 주로 활용하여 동작한다고 볼 수 있습니다.
사용자는 Dockerfile에 도커가 구축해야할 환경, 즉 어플리케이션을 실행하기 위하여 구축되어야 하는 환경에 대한 정보를 기입합니다.
그리고 build 명령어를 사용할 경우, 도커는 이 Dockerfile을 통하여 '이미지'를 생성합니다.
도커는 생성된 이미지를 통하여 컨테이너를 생성할 수 있고, 이 컨테이너를 통하여 어플리케이션 실행에 필요한 환경을 구축할 수 있게됩니다.
대략적으로 설명하면 다음과 같은 단계로 동작한다고 볼 수 있는데,
Dockerfile을 통하여 생성한 이미지의 경우, DockerHub라는 외부 저장소에 저장함으로써 배포에 활용할 수도 있습니다.
일단 간단하게나마 설명하면 이렇게 설명할 수 있을 것 같네요.
자세한 부분은 앞으로 프로젝트 진행하면서 설명할 것 같습니다.
솔직히 저도 이론만 공부해봤지 실질적으로 프로젝트에 활용해보는건 처음이라 천천히 배워가면서 할 것 같아요.
이렇게 유용한 정보를 공유해주셔서 감사합니다.